1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 22:10:45 +02:00

Merge pull request #3613 from nickvergessen/ticket/13844

Ticket/13844 Better FAQ language files
This commit is contained in:
Tristan Darricau
2015-05-29 15:44:39 +02:00
21 changed files with 1265 additions and 32 deletions

View 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');
}
}

View File

@@ -0,0 +1,76 @@
<?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\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\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\help\manager $manager, \phpbb\template\template $template, \phpbb\language\language $language, $root_path, $php_ext)
{
$this->helper = $helper;
$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);
}
}

View File

@@ -0,0 +1,165 @@
<?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;
/**
* FAQ help page
*/
class faq extends controller
{
/**
* @return string The title of the page
*/
public function display()
{
$this->language->add_lang('help/faq');
$this->manager->add_block(
'HELP_FAQ_BLOCK_LOGIN',
false,
array(
'HELP_FAQ_LOGIN_REGISTER_QUESTION' => 'HELP_FAQ_LOGIN_REGISTER_ANSWER',
'HELP_FAQ_LOGIN_COPPA_QUESTION' => 'HELP_FAQ_LOGIN_COPPA_ANSWER',
'HELP_FAQ_LOGIN_CANNOT_REGISTER_QUESTION' => 'HELP_FAQ_LOGIN_CANNOT_REGISTER_ANSWER',
'HELP_FAQ_LOGIN_REGISTER_CONFIRM_QUESTION' => 'HELP_FAQ_LOGIN_REGISTER_CONFIRM_ANSWER',
'HELP_FAQ_LOGIN_CANNOT_LOGIN_QUESTION' => 'HELP_FAQ_LOGIN_CANNOT_LOGIN_ANSWER',
'HELP_FAQ_LOGIN_CANNOT_LOGIN_ANYMORE_QUESTION' => 'HELP_FAQ_LOGIN_CANNOT_LOGIN_ANYMORE_ANSWER',
'HELP_FAQ_LOGIN_LOST_PASSWORD_QUESTION' => 'HELP_FAQ_LOGIN_LOST_PASSWORD_ANSWER',
'HELP_FAQ_LOGIN_AUTO_LOGOUT_QUESTION' => 'HELP_FAQ_LOGIN_AUTO_LOGOUT_ANSWER',
'HELP_FAQ_LOGIN_DELETE_COOKIES_QUESTION' => 'HELP_FAQ_LOGIN_DELETE_COOKIES_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_USERSETTINGS',
false,
array(
'HELP_FAQ_USERSETTINGS_CHANGE_SETTINGS_QUESTION' => 'HELP_FAQ_USERSETTINGS_CHANGE_SETTINGS_ANSWER',
'HELP_FAQ_USERSETTINGS_HIDE_ONLINE_QUESTION' => 'HELP_FAQ_USERSETTINGS_HIDE_ONLINE_ANSWER',
'HELP_FAQ_USERSETTINGS_TIMEZONE_QUESTION' => 'HELP_FAQ_USERSETTINGS_TIMEZONE_ANSWER',
'HELP_FAQ_USERSETTINGS_SERVERTIME_QUESTION' => 'HELP_FAQ_USERSETTINGS_SERVERTIME_ANSWER',
'HELP_FAQ_USERSETTINGS_LANGUAGE_QUESTION' => 'HELP_FAQ_USERSETTINGS_LANGUAGE_ANSWER',
'HELP_FAQ_USERSETTINGS_AVATAR_QUESTION' => 'HELP_FAQ_USERSETTINGS_AVATAR_ANSWER',
'HELP_FAQ_USERSETTINGS_AVATAR_DISPLAY_QUESTION' => 'HELP_FAQ_USERSETTINGS_AVATAR_DISPLAY_ANSWER',
'HELP_FAQ_USERSETTINGS_RANK_QUESTION' => 'HELP_FAQ_USERSETTINGS_RANK_ANSWER',
'HELP_FAQ_USERSETTINGS_EMAIL_LOGIN_QUESTION' => 'HELP_FAQ_USERSETTINGS_EMAIL_LOGIN_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_POSTING',
false,
array(
'HELP_FAQ_POSTING_CREATE_QUESTION' => 'HELP_FAQ_POSTING_CREATE_ANSWER',
'HELP_FAQ_POSTING_EDIT_DELETE_QUESTION' => 'HELP_FAQ_POSTING_EDIT_DELETE_ANSWER',
'HELP_FAQ_POSTING_SIGNATURE_QUESTION' => 'HELP_FAQ_POSTING_SIGNATURE_ANSWER',
'HELP_FAQ_POSTING_POLL_CREATE_QUESTION' => 'HELP_FAQ_POSTING_POLL_CREATE_ANSWER',
'HELP_FAQ_POSTING_POLL_ADD_QUESTION' => 'HELP_FAQ_POSTING_POLL_ADD_ANSWER',
'HELP_FAQ_POSTING_POLL_EDIT_QUESTION' => 'HELP_FAQ_POSTING_POLL_EDIT_ANSWER',
'HELP_FAQ_POSTING_FORUM_RESTRICTED_QUESTION' => 'HELP_FAQ_POSTING_FORUM_RESTRICTED_ANSWER',
'HELP_FAQ_POSTING_NO_ATTACHMENTS_QUESTION' => 'HELP_FAQ_POSTING_NO_ATTACHMENTS_ANSWER',
'HELP_FAQ_POSTING_WARNING_QUESTION' => 'HELP_FAQ_POSTING_WARNING_ANSWER',
'HELP_FAQ_POSTING_REPORT_QUESTION' => 'HELP_FAQ_POSTING_REPORT_ANSWER',
'HELP_FAQ_POSTING_DRAFT_QUESTION' => 'HELP_FAQ_POSTING_DRAFT_ANSWER',
'HELP_FAQ_POSTING_QUEUE_QUESTION' => 'HELP_FAQ_POSTING_QUEUE_ANSWER',
'HELP_FAQ_POSTING_BUMP_QUESTION' => 'HELP_FAQ_POSTING_BUMP_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_FORMATTING',
false,
array(
'HELP_FAQ_FORMATTING_BBOCDE_QUESTION' => 'HELP_FAQ_FORMATTING_BBOCDE_ANSWER',
'HELP_FAQ_FORMATTING_HTML_QUESTION' => 'HELP_FAQ_FORMATTING_HTML_ANSWER',
'HELP_FAQ_FORMATTING_SMILIES_QUESTION' => 'HELP_FAQ_FORMATTING_SMILIES_ANSWER',
'HELP_FAQ_FORMATTING_IMAGES_QUESTION' => 'HELP_FAQ_FORMATTING_IMAGES_ANSWER',
'HELP_FAQ_FORMATTING_GLOBAL_ANNOUNCE_QUESTION' => 'HELP_FAQ_FORMATTING_GLOBAL_ANNOUNCE_ANSWER',
'HELP_FAQ_FORMATTING_ANNOUNCEMENT_QUESTION' => 'HELP_FAQ_FORMATTING_ANNOUNCEMENT_ANSWER',
'HELP_FAQ_FORMATTING_STICKIES_QUESTION' => 'HELP_FAQ_FORMATTING_STICKIES_ANSWER',
'HELP_FAQ_FORMATTING_LOCKED_QUESTION' => 'HELP_FAQ_FORMATTING_LOCKED_ANSWER',
'HELP_FAQ_FORMATTING_ICONS_QUESTION' => 'HELP_FAQ_FORMATTING_ICONS_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_GROUPS',
true,
array(
'HELP_FAQ_GROUPS_ADMINISTRATORS_QUESTION' => 'HELP_FAQ_GROUPS_ADMINISTRATORS_ANSWER',
'HELP_FAQ_GROUPS_MODERATORS_QUESTION' => 'HELP_FAQ_GROUPS_MODERATORS_ANSWER',
'HELP_FAQ_GROUPS_USERGROUPS_QUESTION' => 'HELP_FAQ_GROUPS_USERGROUPS_ANSWER',
'HELP_FAQ_GROUPS_USERGROUPS_JOIN_QUESTION' => 'HELP_FAQ_GROUPS_USERGROUPS_JOIN_ANSWER',
'HELP_FAQ_GROUPS_USERGROUPS_LEAD_QUESTION' => 'HELP_FAQ_GROUPS_USERGROUPS_LEAD_ANSWER',
'HELP_FAQ_GROUPS_COLORS_QUESTION' => 'HELP_FAQ_GROUPS_COLORS_ANSWER',
'HELP_FAQ_GROUPS_DEFAULT_QUESTION' => 'HELP_FAQ_GROUPS_DEFAULT_ANSWER',
'HELP_FAQ_GROUPS_TEAM_QUESTION' => 'HELP_FAQ_GROUPS_TEAM_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_PMS',
false,
array(
'HELP_FAQ_PMS_CANNOT_SEND_QUESTION' => 'HELP_FAQ_PMS_CANNOT_SEND_ANSWER',
'HELP_FAQ_PMS_UNWANTED_QUESTION' => 'HELP_FAQ_PMS_UNWANTED_ANSWER',
'HELP_FAQ_PMS_SPAM_QUESTION' => 'HELP_FAQ_PMS_SPAM_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_FRIENDS',
false,
array(
'HELP_FAQ_FRIENDS_BASIC_QUESTION' => 'HELP_FAQ_FRIENDS_BASIC_ANSWER',
'HELP_FAQ_FRIENDS_MANAGE_QUESTION' => 'HELP_FAQ_FRIENDS_MANAGE_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_SEARCH',
false,
array(
'HELP_FAQ_SEARCH_FORUM_QUESTION' => 'HELP_FAQ_SEARCH_FORUM_ANSWER',
'HELP_FAQ_SEARCH_NO_RESULT_QUESTION' => 'HELP_FAQ_SEARCH_NO_RESULT_ANSWER',
'HELP_FAQ_SEARCH_BLANK_QUESTION' => 'HELP_FAQ_SEARCH_BLANK_ANSWER',
'HELP_FAQ_SEARCH_MEMBERS_QUESTION' => 'HELP_FAQ_SEARCH_MEMBERS_ANSWER',
'HELP_FAQ_SEARCH_OWN_QUESTION' => 'HELP_FAQ_SEARCH_OWN_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_BOOKMARKS',
false,
array(
'HELP_FAQ_BOOKMARKS_DIFFERENCE_QUESTION' => 'HELP_FAQ_BOOKMARKS_DIFFERENCE_ANSWER',
'HELP_FAQ_BOOKMARKS_TOPIC_QUESTION' => 'HELP_FAQ_BOOKMARKS_TOPIC_ANSWER',
'HELP_FAQ_BOOKMARKS_FORUM_QUESTION' => 'HELP_FAQ_BOOKMARKS_FORUM_ANSWER',
'HELP_FAQ_BOOKMARKS_REMOVE_QUESTION' => 'HELP_FAQ_BOOKMARKS_REMOVE_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_ATTACHMENTS',
false,
array(
'HELP_FAQ_ATTACHMENTS_ALLOWED_QUESTION' => 'HELP_FAQ_ATTACHMENTS_ALLOWED_ANSWER',
'HELP_FAQ_ATTACHMENTS_OWN_QUESTION' => 'HELP_FAQ_ATTACHMENTS_OWN_ANSWER',
)
);
$this->manager->add_block(
'HELP_FAQ_BLOCK_ISSUES',
false,
array(
'HELP_FAQ_ISSUES_WHOIS_PHPBB_QUESTION' => 'HELP_FAQ_ISSUES_WHOIS_PHPBB_ANSWER',
'HELP_FAQ_ISSUES_FEATURE_QUESTION' => 'HELP_FAQ_ISSUES_FEATURE_ANSWER',
'HELP_FAQ_ISSUES_LEGAL_QUESTION' => 'HELP_FAQ_ISSUES_LEGAL_ANSWER',
'HELP_FAQ_ISSUES_ADMIN_QUESTION' => 'HELP_FAQ_ISSUES_ADMIN_ANSWER',
)
);
return $this->language->lang('FAQ_EXPLAIN');
}
}

View File

@@ -0,0 +1,136 @@
<?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 */
protected $dispatcher;
/** @var \phpbb\language\language */
protected $language;
/** @var \phpbb\template\template */
protected $template;
/** @var bool */
protected $switched_column;
/**
* Constructor
*
* @param \phpbb\event\dispatcher $dispatcher
* @param \phpbb\language\language $language
* @param \phpbb\template\template $template
*/
public function __construct(\phpbb\event\dispatcher $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
*/
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;
}
}

View File

@@ -83,10 +83,7 @@ class language
// Set up default information
$this->user_language = false;
$this->default_language = false;
$this->lang = array(
// For BC with user::help array
'__help' => array(),
);
$this->lang = array();
$this->loaded_language_sets = array(
'core' => array(),
'ext' => array(),
@@ -155,8 +152,6 @@ class language
/**
* Add Language Items
*
* Note: $use_help is assigned where needed (only use them to force inclusion).
*
* Examples:
* <code>
* $component = array('posting');

View File

@@ -154,10 +154,12 @@ class language_file_loader
*
* @return string Relative path to language file
*
* @throws \phpbb\language\exception\language_file_not_exists When the path to the file cannot be resolved
* @throws \phpbb\language\exception\language_file_not_found When the path to the file cannot be resolved
*/
protected function get_language_file_path($path, $filename, $locales)
{
$language_file_path = $filename;
// Language fallback logic
foreach ($locales as $locale)
{
@@ -191,9 +193,6 @@ class language_file_loader
*/
protected function load_language_file($path, &$lang)
{
// BC code for language files with help
$help = array();
// Do not suppress error if in DEBUG mode
if (defined('DEBUG'))
{
@@ -203,10 +202,5 @@ class language_file_loader
{
@include $path;
}
if (!empty($help))
{
$lang['__help'] = array_merge($lang['__help'], $help);
}
}
}