Seditio Source
Root |
./othercms/phpBB3/phpbb/install/helper/iohandler/iohandler_base.php
<?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;

   
/**
     * @var bool
     */
   
protected $restart_progress_bar;

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

       
$this->restart_progress_bar        = false;
       
$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)
    {
        if (!
is_array($error_title) && strpos($error_title, '<br />') !== false)
        {
           
$error_title = strip_tags(html_entity_decode($error_title, ENT_COMPAT));
        }
       
$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, $restart = false)
    {
       
$this->task_progress_count = $task_count;
       
$this->restart_progress_bar = $restart;
    }

   
/**
     * {@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;
    }

   
/**
     * {@inheritdoc}
     */
   
public function generate_form_render_data($title, $form)
    {
        return
'';
    }

   
/**
     * 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;
    }
}