Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
CRAP | |
100.00% |
27 / 27 |
manager | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
7 | |
100.00% |
27 / 27 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
add_block | |
100.00% |
1 / 1 |
4 | |
100.00% |
13 / 13 |
|||
add_question | |
100.00% |
1 / 1 |
1 | |
100.00% |
9 / 9 |
|||
switched_column | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?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; | |
} | |
} |