Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 30
0.00% covered (danger)
0.00%
0 / 11
CRAP
0.00% covered (danger)
0.00%
0 / 1
iohandler_base
0.00% covered (danger)
0.00%
0 / 30
0.00% covered (danger)
0.00%
0 / 11
272
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
2
 set_language
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 add_error_message
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
12
 add_warning_message
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 add_log_message
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 add_success_message
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 set_task_count
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 set_progress
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 finish_progress
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 generate_form_render_data
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 translate_message
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2/**
3 *
4 * This file is part of the phpBB Forum Software package.
5 *
6 * @copyright (c) phpBB Limited <https://www.phpbb.com>
7 * @license GNU General Public License, version 2 (GPL-2.0)
8 *
9 * For full copyright and license information, please see
10 * the docs/CREDITS.txt file.
11 *
12 */
13
14namespace phpbb\install\helper\iohandler;
15
16/**
17 * Base class for installer input-output handlers
18 */
19abstract class iohandler_base implements iohandler_interface
20{
21    /**
22     * Array of errors
23     *
24     * Errors should be added, when the installation cannot continue without
25     * user interaction. If the aim is to notify the user about something, please
26     * use a warning instead.
27     *
28     * @var array
29     */
30    protected $errors;
31
32    /**
33     * Array of warnings
34     *
35     * @var array
36     */
37    protected $warnings;
38
39    /**
40     * Array of logs
41     *
42     * @var array
43     */
44    protected $logs;
45
46    /**
47     * Array of success messages
48     *
49     * @var array
50     */
51    protected $success;
52
53    /**
54     * @var \phpbb\language\language
55     */
56    protected $language;
57
58    /**
59     * @var int
60     */
61    protected $task_progress_count;
62
63    /**
64     * @var int
65     */
66    protected $current_task_progress;
67
68    /**
69     * @var string
70     */
71    protected $current_task_name;
72
73    /**
74     * @var bool
75     */
76    protected $restart_progress_bar;
77
78    /**
79     * Constructor
80     */
81    public function __construct()
82    {
83        $this->errors    = array();
84        $this->warnings    = array();
85        $this->logs        = array();
86        $this->success    = array();
87
88        $this->restart_progress_bar        = false;
89        $this->task_progress_count        = 0;
90        $this->current_task_progress    = 0;
91        $this->current_task_name        = '';
92    }
93
94    /**
95     * Set language service
96     *
97     * @param \phpbb\language\language $language
98     */
99    public function set_language(\phpbb\language\language $language)
100    {
101        $this->language = $language;
102    }
103
104    /**
105     * {@inheritdoc}
106     */
107    public function add_error_message($error_title, $error_description = false)
108    {
109        if (!is_array($error_title) && strpos($error_title, '<br />') !== false)
110        {
111            $error_title = strip_tags(html_entity_decode($error_title, ENT_COMPAT));
112        }
113        $this->errors[] = $this->translate_message($error_title, $error_description);
114    }
115
116    /**
117     * {@inheritdoc}
118     */
119    public function add_warning_message($warning_title, $warning_description = false)
120    {
121        $this->warnings[] = $this->translate_message($warning_title, $warning_description);
122    }
123
124    /**
125     * {@inheritdoc}
126     */
127    public function add_log_message($log_title, $log_description = false)
128    {
129        $this->logs[] = $this->translate_message($log_title, $log_description);
130    }
131
132    /**
133     * {@inheritdoc}
134     */
135    public function add_success_message($success_title, $success_description = false)
136    {
137        $this->success[] = $this->translate_message($success_title, $success_description);
138    }
139
140    /**
141     * {@inheritdoc}
142     */
143    public function set_task_count($task_count, $restart = false)
144    {
145        $this->task_progress_count = $task_count;
146        $this->restart_progress_bar = $restart;
147    }
148
149    /**
150     * {@inheritdoc}
151     */
152    public function set_progress($task_lang_key, $task_number)
153    {
154        $this->current_task_name = '';
155
156        if (!empty($task_lang_key))
157        {
158            $this->current_task_name = $this->language->lang($task_lang_key);
159        }
160
161        $this->current_task_progress = $task_number;
162    }
163
164    /**
165     * {@inheritdoc}
166     */
167    public function finish_progress($message_lang_key)
168    {
169        if (!empty($message_lang_key))
170        {
171            $this->current_task_name = $this->language->lang($message_lang_key);
172        }
173
174        $this->current_task_progress = $this->task_progress_count;
175    }
176
177    /**
178     * {@inheritdoc}
179     */
180    public function generate_form_render_data($title, $form)
181    {
182        return '';
183    }
184
185    /**
186     * Localize message.
187     *
188     * Note: When an array is passed into the parameters below, it will be
189     * resolved as printf($param[0], $param[1], ...).
190     *
191     * @param array|string        $title            Title of the message
192     * @param array|string|bool    $description    Description of the message
193     *
194     * @return array    Localized message in an array
195     */
196    protected function translate_message($title, $description)
197    {
198        $message_array = array();
199
200        $message_array['title'] = call_user_func_array(array($this->language, 'lang'), (array) $title);
201
202        if ($description !== false)
203        {
204            $message_array['description'] = call_user_func_array(array($this->language, 'lang'), (array) $description);
205        }
206
207        return $message_array;
208    }
209}