navigation MDL-21565 Update this xxx is now automatically added to the nav for all modules by default and is renamed to settings as that is what was being used in the tabs system presently anyway.

The following minor changes were also made:
* Added roles links to the navigation automatically
* Handling of block context for settings navigation
* Tidied up init code for settings navigation
This commit is contained in:
Sam Hemelryk
2010-03-22 03:04:00 +00:00
parent 67e4713ca7
commit 0b29477be9
18 changed files with 381 additions and 478 deletions
+8 -19
View File
@@ -3346,20 +3346,21 @@ function assignment_supports($feature) {
}
}
function assignment_extend_settings_navigation($navnode, $module) {
/**
* Adds module specific settings to the settings block
*
* @param settings_navigation $settings The settings navigation object
* @param navigation_node $assignmentnode The node to add module settings to
*/
function assignment_extend_settings_navigation(settings_navigation $settings, navigation_node $assignmentnode) {
global $PAGE, $DB, $USER, $CFG;
$allgroups = false;
$assignmentrow = $DB->get_record("assignment", array("id" => $PAGE->cm->instance));
require_once "$CFG->dirroot/mod/assignment/type/$assignmentrow->assignmenttype/assignment.class.php";
$assignmentclass = 'assignment_'.$assignmentrow->assignmenttype;
$assignmentinstance = new $assignmentclass($PAGE->cm->id, $assignmentrow, $PAGE->cm, $PAGE->course);
$assignmentnodekey = $navnode->add(get_string('assignmentadministration', 'assignment'));
$assignmentnode = $navnode->get($assignmentnodekey);
$assignmentnode->forceopen = true;
if (!empty($USER->id) && !has_capability('moodle/legacy:guest', $PAGE->cm->context, NULL, false)) {
$allgroups = false;
@@ -3383,17 +3384,5 @@ function assignment_extend_settings_navigation($navnode, $module) {
if (is_object($assignmentinstance) && method_exists($assignmentinstance, 'extend_settings_navigation')) {
$assignmentinstance->extend_settings_navigation($assignmentnode);
}
// Add update this activity link
if (has_capability('moodle/course:manageactivities', $PAGE->cm->context)) {
$modulename = get_string('modulename', 'assignment');
$string = get_string('updatethis', '', $modulename);
$url = new moodle_url("$CFG->wwwroot/course/mod.php", array('update' => $PAGE->cm->id, 'return' => true, 'sesskey' => sesskey()));
$assignmentnode->add($string, $url, navigation_node::TYPE_SETTING);
}
if (count($assignmentnode->children)<1) {
$navnode->remove_child($assignmentnodekey);
}
}
}