mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[ticket/13844] Refactor bbcode help to the new system
PHPBB3-13844
This commit is contained in:
parent
5586cbbcfe
commit
ff7e9dc912
5 changed files with 271 additions and 0 deletions
|
@ -1,4 +1,10 @@
|
|||
services:
|
||||
phpbb.help.manager:
|
||||
class: phpbb\help\manager
|
||||
arguments:
|
||||
- @template
|
||||
- @language
|
||||
|
||||
phpbb.help.controller:
|
||||
class: phpbb\help\controller\help
|
||||
arguments:
|
||||
|
@ -8,3 +14,14 @@ services:
|
|||
- @user
|
||||
- %core.root_path%
|
||||
- %core.php_ext%
|
||||
|
||||
phpbb.help.controller.bbcode:
|
||||
class: phpbb\help\controller\bbcode
|
||||
arguments:
|
||||
- @controller.helper
|
||||
- @dispatcher
|
||||
- @phpbb.help.manager
|
||||
- @template
|
||||
- @language
|
||||
- %core.root_path%
|
||||
- %core.php_ext%
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
phpbb_help_controller:
|
||||
path: /bbcode
|
||||
defaults: { _controller: phpbb.help.controller.bbcode:handle }
|
||||
|
||||
path: /{mode}
|
||||
defaults: { _controller: phpbb.help.controller:handle }
|
||||
|
|
85
phpBB/phpbb/help/controller/bbcode.php
Normal file
85
phpBB/phpbb/help/controller/bbcode.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?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;
|
||||
|
||||
/**
|
||||
* BBCode help page
|
||||
*/
|
||||
class bbcode extends controller
|
||||
{
|
||||
/**
|
||||
* @return string The title of the page
|
||||
*/
|
||||
public function display()
|
||||
{
|
||||
$this->language->add_lang('help/bbcode');
|
||||
|
||||
$this->manager->add_block(
|
||||
'HELP_BBCODE_BLOCK_INTRO',
|
||||
false,
|
||||
array(
|
||||
'HELP_BBCODE_INTRO_BBCODE_QUESTION' => 'HELP_BBCODE_INTRO_BBCODE_ANSWER',
|
||||
)
|
||||
);
|
||||
$this->manager->add_block(
|
||||
'HELP_BBCODE_BLOCK_TEXT',
|
||||
false,
|
||||
array(
|
||||
'HELP_BBCODE_TEXT_BASIC_QUESTION' => 'HELP_BBCODE_TEXT_BASIC_ANSWER',
|
||||
'HELP_BBCODE_TEXT_COLOR_QUESTION' => 'HELP_BBCODE_TEXT_COLOR_ANSWER',
|
||||
'HELP_BBCODE_TEXT_COMBINE_QUESTION' => 'HELP_BBCODE_TEXT_COMBINE_ANSWER',
|
||||
)
|
||||
);
|
||||
$this->manager->add_block(
|
||||
'HELP_BBCODE_BLOCK_QUOTES',
|
||||
false,
|
||||
array(
|
||||
'HELP_BBCODE_QUOTES_TEXT_QUESTION' => 'HELP_BBCODE_QUOTES_TEXT_ANSWER',
|
||||
'HELP_BBCODE_QUOTES_CODE_QUESTION' => 'HELP_BBCODE_QUOTES_CODE_ANSWER',
|
||||
)
|
||||
);
|
||||
$this->manager->add_block(
|
||||
'HELP_BBCODE_BLOCK_LISTS',
|
||||
false,
|
||||
array(
|
||||
'HELP_BBCODE_LISTS_UNORDERER_QUESTION' => 'HELP_BBCODE_LISTS_UNORDERER_ANSWER',
|
||||
'HELP_BBCODE_LISTS_ORDERER_QUESTION' => 'HELP_BBCODE_LISTS_ORDERER_ANSWER',
|
||||
)
|
||||
);
|
||||
$this->manager->add_block(
|
||||
'HELP_BBCODE_BLOCK_LINKS',
|
||||
true,
|
||||
array(
|
||||
'HELP_BBCODE_LINKS_BASIC_QUESTION' => 'HELP_BBCODE_LINKS_BASIC_ANSWER',
|
||||
)
|
||||
);
|
||||
$this->manager->add_block(
|
||||
'HELP_BBCODE_BLOCK_IMAGES',
|
||||
false,
|
||||
array(
|
||||
'HELP_BBCODE_IMAGES_BASIC_QUESTION' => 'HELP_BBCODE_IMAGES_BASIC_ANSWER',
|
||||
'HELP_BBCODE_IMAGES_ATTACHMENT_QUESTION' => 'HELP_BBCODE_IMAGES_ATTACHMENT_ANSWER',
|
||||
)
|
||||
);
|
||||
$this->manager->add_block(
|
||||
'HELP_BBCODE_BLOCK_OTHERS',
|
||||
false,
|
||||
array(
|
||||
'HELP_BBCODE_OTHERS_CUSTOM_QUESTION' => 'HELP_BBCODE_OTHERS_CUSTOM_ANSWER',
|
||||
)
|
||||
);
|
||||
|
||||
return $this->language->lang('BBCODE_GUIDE');
|
||||
}
|
||||
}
|
81
phpBB/phpbb/help/controller/controller.php
Normal file
81
phpBB/phpbb/help/controller/controller.php
Normal file
|
@ -0,0 +1,81 @@
|
|||
<?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;
|
||||
|
||||
/**
|
||||
* BBCode help page
|
||||
*/
|
||||
abstract class controller
|
||||
{
|
||||
/** @var \phpbb\controller\helper */
|
||||
protected $helper;
|
||||
|
||||
/** @var \phpbb\event\dispatcher_interface */
|
||||
protected $dispatcher;
|
||||
|
||||
/** @var \phpbb\help\manager */
|
||||
protected $manager;
|
||||
|
||||
/** @var \phpbb\template\template */
|
||||
protected $template;
|
||||
|
||||
/** @var \phpbb\language\language */
|
||||
protected $language;
|
||||
|
||||
/** @var string */
|
||||
protected $root_path;
|
||||
|
||||
/** @var string */
|
||||
protected $php_ext;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param \phpbb\controller\helper $helper
|
||||
* @param \phpbb\event\dispatcher_interface $dispatcher
|
||||
* @param \phpbb\help\manager $manager
|
||||
* @param \phpbb\template\template $template
|
||||
* @param \phpbb\language\language $language
|
||||
* @param string $root_path
|
||||
* @param string $php_ext
|
||||
*/
|
||||
public function __construct(\phpbb\controller\helper $helper, \phpbb\event\dispatcher_interface $dispatcher, \phpbb\help\manager $manager, \phpbb\template\template $template, \phpbb\language\language $language, $root_path, $php_ext)
|
||||
{
|
||||
$this->helper = $helper;
|
||||
$this->dispatcher = $dispatcher;
|
||||
$this->manager = $manager;
|
||||
$this->template = $template;
|
||||
$this->language = $language;
|
||||
$this->root_path = $root_path;
|
||||
$this->php_ext = $php_ext;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function display();
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$title = $this->display();
|
||||
|
||||
$this->template->assign_vars(array(
|
||||
'L_FAQ_TITLE' => $title,
|
||||
'S_IN_FAQ' => true,
|
||||
));
|
||||
|
||||
make_jumpbox(append_sid("{$this->root_path}viewforum.{$this->php_ext}"));
|
||||
return $this->helper->render('faq_body.html', $title);
|
||||
}
|
||||
}
|
85
phpBB/phpbb/help/manager.php
Normal file
85
phpBB/phpbb/help/manager.php
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?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\template\template */
|
||||
protected $template;
|
||||
|
||||
/** @var \phpbb\language\language */
|
||||
protected $language;
|
||||
|
||||
/** @var bool */
|
||||
protected $switched_column;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param \phpbb\template\template $template
|
||||
* @param \phpbb\language\language $language
|
||||
*/
|
||||
public function __construct(\phpbb\template\template $template, \phpbb\language\language $language)
|
||||
{
|
||||
$this->template = $template;
|
||||
$this->language = $language;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
public function add_block($block_name, $switch_column = false, $questions = array())
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
$this->template->assign_block_vars('faq_block.faq_row', array(
|
||||
'FAQ_QUESTION' => $this->language->lang($question),
|
||||
'FAQ_ANSWER' => $this->language->lang($answer),
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the block titles switched side
|
||||
* @return bool
|
||||
*/
|
||||
public function switched_column()
|
||||
{
|
||||
return $this->switched_column;
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue