set_course($COURSE); // We look for the help to display in lots of different places, and // only display an error at the end if we can't find the help file // anywhere. This variable tracks that. $helpfound = false; // Buffer output so that we can examine it later to extract metadata (page title) ob_start(); if (!empty($file)) { // The help to display is from a help file. list($filepath, $foundlang) = string_manager::instance()->find_help_file($file, $module, $forcelang, $skiplocal); if ($filepath) { $helpfound = true; @include($filepath); // The actual helpfile // Now, we process some special cases. if ($module == 'moodle' and ($file == 'index.html' or $file == 'mods.html')) { include_help_for_each_module($file, $forcelang, $skiplocal); } if ($module == 'question' && $file == 'types.html') { include_help_for_each_qtype(); } // The remaining horrible hardcoded special cases should be delegated to modules somehow. if ($module == 'moodle'&& $file == 'resource/types.html') { // RESOURCES include_help_for_each_resource($forcelang, $skiplocal); } if ($module == 'moodle' && $file == 'assignment/types.html') { // ASSIGNMENTS include_help_for_each_assignment_type($forcelang, $skiplocal); } } } else { // The help to display was given as an argument to this function. echo '
'.s($text).'
'; // This param was already cleaned $helpfound = true; } // Finish buffer $output = ob_get_contents(); ob_end_clean(); // Determine title $title = get_string('help'); // Default is just 'Help' $matches = array(); // You can include a' . get_string('showthishelpinlanguage', 'moodle', $nextlangname) . '
'; } $CFG->docroot = ''; // We don't want a doc link here print_footer('none'); function file_exists_and_readable($filepath) { return file_exists($filepath) and is_file($filepath) and is_readable($filepath); } // Some functions for handling special cases ======================================== function include_help_for_each_module($file, $forcelang, $skiplocal) { global $CFG, $DB; if (!$modules = $DB->get_records('modules', array('visible'=> 1))) { print_error('nomodules', 'debug'); // Should never happen } // Horrible hack to show the help about grades here too. $grade = new stdClass(); $grade->name = 'grade'; $modules[] = $grade; foreach ($modules as $mod) { $strmodulename = get_string('modulename', $mod->name); $modulebyname[$strmodulename] = $mod; } ksort($modulebyname, SORT_LOCALE_STRING); foreach ($modulebyname as $mod) { list($filepath, $foundlang) = string_manager::instance()->find_help_file($file, $mod->name, $forcelang, $skiplocal); if ($filepath) { echo '' . get_string($qtype . 'summary', 'qtype_' . $qtype) . "
\n\n"; } function include_help_for_each_resource($forcelang, $skiplocal) { global $CFG; require_once($CFG->dirroot .'/mod/resource/lib.php'); $typelist = resource_get_types(); //add label type $labelType = new object(); $labelType->modclass = MOD_CLASS_RESOURCE; $resourcetype = 'label'; $labelType->name = $resourcetype; $labelType->type = "resource&type=$resourcetype"; $labelType->typestr = get_string("resourcetype$resourcetype", 'resource'); $typelist[] = $labelType; foreach ($typelist as $type) { list($filepath, $foundlang) = string_manager::instance()->find_help_file('type/' . $type->name . '.html', 'resource', $forcelang, $skiplocal); if ($filepath) { echo '