diff --git a/help.php b/help.php index a9c19a0b475..66a0e2c0f11 100644 --- a/help.php +++ b/help.php @@ -1,21 +1,36 @@ . + /** - * help.php - Displays help page. + * Displays help via AJAX call or in a new page * - * Prints a very simple page and includes - * page content or a string from elsewhere. - * Usually this will appear in a popup - * See {@link helpbutton()} in {@link lib/moodlelib.php} + * Use {@link core_renderer::help_icon()} or {@link addHelpButton()} to display + * the help icon. * - * @author Martin Dougiamas - * @package moodlecore + * @copyright 2002 onwards Martin Dougiamas + * @package core + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define('NO_MOODLE_COOKIES', true); -require_once('config.php'); +require_once(dirname(__FILE__) . '/config.php'); -$identifier = required_param('identifier', PARAM_SAFEDIR); +$identifier = required_param('identifier', PARAM_STRINGID); $component = required_param('component', PARAM_SAFEDIR); $lang = required_param('component', PARAM_LANG); // TODO: maybe split into separate scripts $ajax = optional_param('ajax', 0, PARAM_BOOL); @@ -23,7 +38,6 @@ $ajax = optional_param('ajax', 0, PARAM_BOOL); if (!$lang) { $lang = 'en'; } - $SESSION->lang = $lang; // does not actually modify session because we do not use cookies here $sm = get_string_manager(); @@ -47,8 +61,9 @@ if ($sm->string_exists($identifier.'_help', $component)) { $options->para = true; $options->newlines = false; + echo $OUTPUT->heading(format_string(get_string($identifier, $component)), 1, 'helpheading'); // Should be simple wiki only MDL-21695 - echo format_text(get_string($identifier.'_help', $component), FORMAT_MOODLE, $options); + echo format_text(get_string($identifier.'_help', $component), FORMAT_MOODLE, $options); if ($sm->string_exists($identifier.'_link', $component)) { // Link to further info in Moodle docs $link = get_string($identifier.'_link', $component); @@ -57,7 +72,7 @@ if ($sm->string_exists($identifier.'_help', $component)) { } } else { - echo "

TODO: fix help for [{$identifier}_help, $component]

"; + echo "

TODO: missing help string [{$identifier}_help, $component]

"; } if (!$ajax) { diff --git a/lib/formslib.php b/lib/formslib.php index 957b40a1bb2..0ff5c0f61b9 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -1327,6 +1327,7 @@ class MoodleQuickForm extends HTML_QuickForm_DHTMLRulesTableless { /** * Add a single button. * + * @deprecated use addHelpButton() instead * @param string $elementname name of the element to add the item to * @param array $button arguments to pass to function $function * @param boolean $suppresscheck whether to throw an error if the element @@ -1362,15 +1363,23 @@ class MoodleQuickForm extends HTML_QuickForm_DHTMLRulesTableless { /** * Add a help button to element, only one button per element is allowed. * + * This is new, simplified and preferable method of setting a help icon on form elements. + * It uses the new $OUTPUT->help_icon(). + * + * Typically, you will provide the same identifier and the component as you have used for the + * label of the element. The string identifier with the _help suffix added is then used + * as the help string. + * * There has to be two strings defined: * 1/ get_string($identifier, $component) - the title of the help page * 2/ get_string($identifier.'_help', $component) - the actual help page text * + * @since 2.0 * @param string $elementname name of the element to add the item to - * @param string $identifier - * @param string $component - * @param string $linktext - * @param boolean $suppresscheck whether to throw an error if the element doesn't exist. + * @param string $identifier help string identifer without _help suffix + * @param string $component component name to look the help string in + * @param string $linktext optional text to display next to the icon + * @param boolean $suppresscheck set to true if the element may not exist * @return void */ function addHelpButton($elementname, $identifier, $component = 'moodle', $linktext = '', $suppresscheck = false) {