aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/install/helper/iohandler/iohandler_base.php
diff options
context:
space:
mode:
authorTristan Darricau <tristan.darricau@sensiolabs.com>2015-07-27 11:24:43 +0200
committerTristan Darricau <tristan.darricau@sensiolabs.com>2015-07-27 11:24:43 +0200
commita0258ae25ce31101241f0873b21e4582cd47a368 (patch)
treea828a84d8d57cf1b817e0f5adee83ea6cc288b5d /phpBB/phpbb/install/helper/iohandler/iohandler_base.php
parent0e3b7e2de6e152960026a6533a1150e5fb1135aa (diff)
parent11dfe503aac699b88a333967a1d0e594998414ae (diff)
downloadforums-a0258ae25ce31101241f0873b21e4582cd47a368.tar
forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.gz
forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.bz2
forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.xz
forums-a0258ae25ce31101241f0873b21e4582cd47a368.zip
Merge pull request #3514 from CHItA/ticket/13740
[ticket/13740] Refactoring installer * CHItA/ticket/13740: (75 commits) [ticket/13740] Reduce number of references in nav provider [ticket/13740] Move handle_language_select calls to the controllers [ticket/13740] Fix infinite config.php check loop [ticket/13740] Move default data settings out of constructors [ticket/13740] Deduplicate container builder's checks [ticket/13740] Use JSON for installer config [ticket/13740] Fix comment [ticket/13740] Use language service in console application [ticket/13740] Fix CS in compatibilty_globals.php [ticket/13740] Fix message element creation in JS [ticket/13740] Replace more spaces with tabs [ticket/13740] Fix CS [ticket/13740] Filter basic directory change attempts in lang change [ticket/13740] Use tabs instead of spaces in JS file [ticket/13740] Add success message when install finished [ticket/13740] Fix $script_path in obtain_data [ticket/13740] Fix is_phpbb_installed() method [ticket/13740] Login admin when install finished [ticket/13740] Enhance server output buffer bypass [ticket/13740] Secure installer config against corrupted config data ...
Diffstat (limited to 'phpBB/phpbb/install/helper/iohandler/iohandler_base.php')
-rw-r--r--phpBB/phpbb/install/helper/iohandler/iohandler_base.php190
1 files changed, 190 insertions, 0 deletions
diff --git a/phpBB/phpbb/install/helper/iohandler/iohandler_base.php b/phpBB/phpbb/install/helper/iohandler/iohandler_base.php
new file mode 100644
index 0000000000..006411f1e3
--- /dev/null
+++ b/phpBB/phpbb/install/helper/iohandler/iohandler_base.php
@@ -0,0 +1,190 @@
+<?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;
+
+ /**
+ * Array of success messages
+ *
+ * @var array
+ */
+ protected $success;
+
+ /**
+ * @var \phpbb\language\language
+ */
+ protected $language;
+
+ /**
+ * @var int
+ */
+ protected $task_progress_count;
+
+ /**
+ * @var int
+ */
+ protected $current_task_progress;
+
+ /**
+ * @var string
+ */
+ protected $current_task_name;
+
+ /**
+ * Constructor
+ */
+ public function __construct()
+ {
+ $this->errors = array();
+ $this->warnings = array();
+ $this->logs = array();
+ $this->success = array();
+
+ $this->task_progress_count = 0;
+ $this->current_task_progress = 0;
+ $this->current_task_name = '';
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function add_success_message($success_title, $success_description = false)
+ {
+ $this->success[] = $this->translate_message($success_title, $success_description);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function set_task_count($task_count)
+ {
+ $this->task_progress_count = $task_count;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function set_progress($task_lang_key, $task_number)
+ {
+ $this->current_task_name = '';
+
+ if (!empty($task_lang_key))
+ {
+ $this->current_task_name = $this->language->lang($task_lang_key);
+ }
+
+ $this->current_task_progress = $task_number;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function finish_progress($message_lang_key)
+ {
+ if (!empty($message_lang_key))
+ {
+ $this->current_task_name = $this->language->lang($message_lang_key);
+ }
+
+ $this->current_task_progress = $this->task_progress_count;
+ }
+
+ /**
+ * 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;
+ }
+}