aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/helper/iohandler/iohandler_base.php
blob: c0e6921fb2b54fc682e950032bca92d1a0844681 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
/**
 *
 * This file is part of the phpBB Forum Software package.
 *
 * @copyright (c) phpBB Limited <https://www.phpbb.com>
 * @license GNU General Public License, version 2 (GPL-2.0)
 *
 * For full copyright and license information, please see
 * the docs/CREDITS.txt file.
 *
 */

namespace phpbb\install\helper\iohandler;

/**
 * Base class for installer input-output handlers
 */
abstract class iohandler_base implements iohandler_interface
{
	/**
	 * Array of errors
	 *
	 * Errors should be added, when the installation cannot continue without
	 * user interaction. If the aim is to notify the user about something, please
	 * use a warning instead.
	 *
	 * @var array
	 */
	protected $errors;

	/**
	 * Array of warnings
	 *
	 * @var array
	 */
	protected $warnings;

	/**
	 * Array of logs
	 *
	 * @var array
	 */
	protected $logs;

	/**
	 * @var \phpbb\language\language
	 */
	protected $language;

	/**
	 * Constructor
	 */
	public function __construct()
	{
		$this->errors	= array();
		$this->warnings	= array();
		$this->logs		= array();
	}

	/**
	 * Set language service
	 *
	 * @param \phpbb\language\language $language
	 */
	public function set_language(\phpbb\language\language $language)
	{
		$this->language = $language;
	}

	/**
	 * {@inheritdoc}
	 */
	public function add_error_message($error_title, $error_description = false)
	{
		$this->errors[] = $this->translate_message($error_title, $error_description);
	}

	/**
	 * {@inheritdoc}
	 */
	public function add_warning_message($warning_title, $warning_description = false)
	{
		$this->warnings[] = $this->translate_message($warning_title, $warning_description);
	}

	/**
	 * {@inheritdoc}
	 */
	public function add_log_message($log_title, $log_description = false)
	{
		$this->logs[] = $this->translate_message($log_title, $log_description);
	}

	/**
	 * Localize message.
	 *
	 * Note: When an array is passed into the parameters below, it will be
	 * resolved as printf($param[0], $param[1], ...).
	 *
	 * @param array|string		$title			Title of the message
	 * @param array|string|bool	$description	Description of the message
	 *
	 * @return array	Localized message in an array
	 */
	protected function translate_message($title, $description)
	{
		$message_array = array();

		$message_array['title'] = call_user_func_array(array($this->language, 'lang'), (array) $title);

		if ($description !== false)
		{
			$message_array['description'] = call_user_func_array(array($this->language, 'lang'), (array) $description);
		}

		return $message_array;
	}
}