Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 72 |
| help | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
156 | |
0.00% |
0 / 72 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 8 |
|||
| handle | |
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 35 |
|||
| assign_to_template | |
0.00% |
0 / 1 |
30 | |
0.00% |
0 / 29 |
|||
| <?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\controller; | |
| use phpbb\exception\http_exception; | |
| class help | |
| { | |
| /** @var \phpbb\controller\helper */ | |
| protected $helper; | |
| /** @var \phpbb\event\dispatcher_interface */ | |
| protected $dispatcher; | |
| /** @var \phpbb\template\template */ | |
| protected $template; | |
| /** @var \phpbb\user */ | |
| protected $user; | |
| /** @var string */ | |
| protected $root_path; | |
| /** @var string */ | |
| protected $php_ext; | |
| /** | |
| * Constructor | |
| * | |
| * @param \phpbb\controller\helper $helper | |
| * @param \phpbb\event\dispatcher_interface $dispatcher | |
| * @param \phpbb\template\template $template | |
| * @param \phpbb\user $user | |
| * @param string $root_path | |
| * @param string $php_ext | |
| */ | |
| public function __construct(\phpbb\controller\helper $helper, \phpbb\event\dispatcher_interface $dispatcher, \phpbb\template\template $template, \phpbb\user $user, $root_path, $php_ext) | |
| { | |
| $this->helper = $helper; | |
| $this->dispatcher = $dispatcher; | |
| $this->template = $template; | |
| $this->user = $user; | |
| $this->root_path = $root_path; | |
| $this->php_ext = $php_ext; | |
| } | |
| /** | |
| * Controller for /help/{mode} routes | |
| * | |
| * @param string $mode | |
| * @return \Symfony\Component\HttpFoundation\Response A Symfony Response object | |
| * @throws http_exception when the $mode is not known by any extension | |
| */ | |
| public function handle($mode) | |
| { | |
| $template_file = 'faq_body.html'; | |
| switch ($mode) | |
| { | |
| case 'faq': | |
| case 'bbcode': | |
| $page_title = ($mode === 'faq') ? $this->user->lang['FAQ_EXPLAIN'] : $this->user->lang['BBCODE_GUIDE']; | |
| $this->user->add_lang($mode, false, true); | |
| break; | |
| default: | |
| $page_title = $this->user->lang['FAQ_EXPLAIN']; | |
| $ext_name = $lang_file = ''; | |
| /** | |
| * You can use this event display a custom help page | |
| * | |
| * @event core.faq_mode_validation | |
| * @var string page_title Title of the page | |
| * @var string mode FAQ that is going to be displayed | |
| * @var string lang_file Language file containing the help data | |
| * @var string ext_name Vendor and extension name where the help | |
| * language file can be loaded from | |
| * @var string template_file Template file name | |
| * @since 3.1.4-RC1 | |
| * @changed 3.1.11-RC1 Added template_file var | |
| */ | |
| $vars = array( | |
| 'page_title', | |
| 'mode', | |
| 'lang_file', | |
| 'ext_name', | |
| 'template_file', | |
| ); | |
| extract($this->dispatcher->trigger_event('core.faq_mode_validation', compact($vars))); | |
| if ($ext_name === '' || $lang_file === '') | |
| { | |
| throw new http_exception(404, 'Not Found'); | |
| } | |
| $this->user->add_lang($lang_file, false, true, $ext_name); | |
| break; | |
| } | |
| $this->template->assign_vars(array( | |
| 'L_FAQ_TITLE' => $page_title, | |
| 'S_IN_FAQ' => true, | |
| )); | |
| $this->assign_to_template($this->user->help); | |
| make_jumpbox(append_sid("{$this->root_path}viewforum.{$this->php_ext}")); | |
| return $this->helper->render($template_file, $page_title); | |
| } | |
| /** | |
| * Assigns the help data to the template blocks | |
| * | |
| * @param array $help_data | |
| * @return null | |
| */ | |
| protected function assign_to_template(array $help_data) | |
| { | |
| // Pull the array data from the lang pack | |
| $switch_column = $found_switch = false; | |
| foreach ($help_data as $help_ary) | |
| { | |
| if ($help_ary[0] == '--') | |
| { | |
| if ($help_ary[1] == '--') | |
| { | |
| $switch_column = true; | |
| $found_switch = true; | |
| continue; | |
| } | |
| $this->template->assign_block_vars('faq_block', array( | |
| 'BLOCK_TITLE' => $help_ary[1], | |
| 'SWITCH_COLUMN' => $switch_column, | |
| )); | |
| if ($switch_column) | |
| { | |
| $switch_column = false; | |
| } | |
| continue; | |
| } | |
| $this->template->assign_block_vars('faq_block.faq_row', array( | |
| 'FAQ_QUESTION' => $help_ary[0], | |
| 'FAQ_ANSWER' => $help_ary[1], | |
| )); | |
| } | |
| $this->template->assign_var('SWITCH_COLUMN_MANUALLY', !$found_switch); | |
| } | |
| } |