Seditio Source
Root |
./othercms/phpBB3/phpbb/help/manager.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\help;

/**
 * Class help page manager
 */
class manager
{
   
/** @var \phpbb\event\dispatcher_interface */
   
protected $dispatcher;

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

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

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

   
/**
     * Constructor
     *
     * @param \phpbb\event\dispatcher_interface $dispatcher
     * @param \phpbb\language\language $language
     * @param \phpbb\template\template $template
     */
   
public function __construct(\phpbb\event\dispatcher_interface $dispatcher, \phpbb\language\language $language, \phpbb\template\template $template)
    {
       
$this->dispatcher = $dispatcher;
       
$this->language = $language;
       
$this->template = $template;
    }

   
/**
     * Add a new faq block
     *
     * @param string $block_name    Name or language key with the name of the block
     * @param bool $switch_column    Switch the column of the menu
     * @param array $questions        Array of frequently asked questions
     */
   
public function add_block($block_name, $switch_column = false, $questions = array())
    {
       
/**
         * You can use this event to add a block before the current one.
         *
         * @event core.help_manager_add_block_before
         * @var    string    block_name        Language key of the block headline
         * @var    bool    switch_column    Should we switch the menu column before this headline
         * @var    array    questions        Array with questions
         * @since 3.2.0-a1
         */
       
$vars = array('block_name', 'switch_column', 'questions');
       
extract($this->dispatcher->trigger_event('core.help_manager_add_block_before', compact($vars)));

       
$this->template->assign_block_vars('faq_block', array(
           
'BLOCK_TITLE'        => $this->language->lang($block_name),
           
'SWITCH_COLUMN'        => !$this->switched_column && $switch_column,
        ));

        foreach (
$questions as $question => $answer)
        {
           
$this->add_question($question, $answer);
        }

       
$this->switched_column = $this->switched_column || $switch_column;

       
/**
         * You can use this event to add a block after the current one.
         *
         * @event core.help_manager_add_block_after
         * @var    string    block_name        Language key of the block headline
         * @var    bool    switch_column    Should we switch the menu column before this headline
         * @var    array    questions        Array with questions
         * @since 3.2.0-a1
         */
       
$vars = array('block_name', 'switch_column', 'questions');
       
extract($this->dispatcher->trigger_event('core.help_manager_add_block_after', compact($vars)));
    }

   
/**
     * Add a new faq question
     *
     * @param string $question    Question or language key with the question of the block
     * @param string $answer    Answer or language key with the answer of the block
     */
   
public function add_question($question, $answer)
    {
       
/**
         * You can use this event to add a question before the current one.
         *
         * @event core.help_manager_add_question_before
         * @var    string    question    Language key of the question
         * @var    string    answer        Language key of the answer
         * @since 3.2.0-a1
         */
       
$vars = array('question', 'answer');
       
extract($this->dispatcher->trigger_event('core.help_manager_add_question_before', compact($vars)));

       
$this->template->assign_block_vars('faq_block.faq_row', array(
           
'FAQ_QUESTION'        => $this->language->lang($question),
           
'FAQ_ANSWER'        => $this->language->lang($answer),
        ));

       
/**
         * You can use this event to add a question after the current one.
         *
         * @event core.help_manager_add_question_after
         * @var    string    question    Language key of the question
         * @var    string    answer        Language key of the answer
         * @since 3.2.0-a1
         */
       
$vars = array('question', 'answer');
       
extract($this->dispatcher->trigger_event('core.help_manager_add_question_after', compact($vars)));
    }

   
/**
     * Returns whether the block titles switched side
     * @return bool
     */
   
public function switched_column()
    {
        return
$this->switched_column;
    }
}