mirror of
https://github.com/moodle/moodle.git
synced 2025-04-15 13:33:52 +02:00
Merge branch 'wip-MDL-37207-master' of git://github.com/marinaglancy/moodle
This commit is contained in:
commit
dfcb38a1c7
@ -49,6 +49,47 @@ class core_course_renderer extends plugin_renderer_base {
|
||||
public function __construct(moodle_page $page, $target) {
|
||||
$this->strings = new stdClass;
|
||||
parent::__construct($page, $target);
|
||||
$this->add_modchoosertoggle();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the item in course settings navigation to toggle modchooser
|
||||
*
|
||||
* Theme can overwrite as an empty function to exclude it (for example if theme does not
|
||||
* use modchooser at all)
|
||||
*/
|
||||
protected function add_modchoosertoggle() {
|
||||
global $CFG;
|
||||
static $modchoosertoggleadded = false;
|
||||
// Add the module chooser toggle to the course page
|
||||
if ($modchoosertoggleadded || $this->page->state > moodle_page::STATE_PRINTING_HEADER ||
|
||||
$this->page->course->id == SITEID ||
|
||||
!($coursenode = $this->page->settingsnav->find('courseadmin', navigation_node::TYPE_COURSE))) {
|
||||
// too late or we are on site page or we could not find the course settings node
|
||||
return;
|
||||
}
|
||||
$modchoosertoggleadded = true;
|
||||
if ($this->page->url->compare(new moodle_url('/course/view.php'), URL_MATCH_BASE)) {
|
||||
// We are on the course page, retain the current page params e.g. section.
|
||||
$modchoosertoggleurl = clone($this->page->url);
|
||||
} else {
|
||||
// Edit on the main course page.
|
||||
$modchoosertoggleurl = new moodle_url('/course/view.php', array('id' => $this->page->course->id,
|
||||
'return' => $this->page->url->out_as_local_url(false)));
|
||||
}
|
||||
$modchoosertoggleurl->param('sesskey', sesskey());
|
||||
if ($usemodchooser = get_user_preferences('usemodchooser', $CFG->modchooserdefault)) {
|
||||
$modchoosertogglestring = get_string('modchooserdisable', 'moodle');
|
||||
$modchoosertoggleurl->param('modchooser', 'off');
|
||||
} else {
|
||||
$modchoosertogglestring = get_string('modchooserenable', 'moodle');
|
||||
$modchoosertoggleurl->param('modchooser', 'on');
|
||||
}
|
||||
$modchoosertoggle = navigation_node::create($modchoosertogglestring, $modchoosertoggleurl, navigation_node::TYPE_SETTING);
|
||||
$coursenode->add_node($modchoosertoggle, 'editsettings');
|
||||
$modchoosertoggle->add_class('modchoosertoggle');
|
||||
$modchoosertoggle->add_class('visibleifjs');
|
||||
user_preference_allow_ajax_update('usemodchooser', PARAM_BOOL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -394,6 +435,9 @@ class core_course_renderer extends plugin_renderer_base {
|
||||
/**
|
||||
* Renders HTML for the menus to add activities and resources to the current course
|
||||
*
|
||||
* Note, if theme overwrites this function and it does not use modchooser,
|
||||
* see also {@link core_course_renderer::add_modchoosertoggle()}
|
||||
*
|
||||
* @param stdClass $course
|
||||
* @param int $section relative section number (field course_sections.section)
|
||||
* @param int $sectionreturn The section to link back to
|
||||
|
@ -3450,25 +3450,9 @@ class settings_navigation extends navigation_node {
|
||||
}
|
||||
$coursenode->add($editstring, $editurl, self::TYPE_SETTING, null, null, new pix_icon('i/edit', ''));
|
||||
|
||||
// Add the module chooser toggle
|
||||
$modchoosertoggleurl = clone($baseurl);
|
||||
if ($this->page->user_is_editing() && course_ajax_enabled($course)) {
|
||||
if ($usemodchooser = get_user_preferences('usemodchooser', $CFG->modchooserdefault)) {
|
||||
$modchoosertogglestring = get_string('modchooserdisable', 'moodle');
|
||||
$modchoosertoggleurl->param('modchooser', 'off');
|
||||
} else {
|
||||
$modchoosertogglestring = get_string('modchooserenable', 'moodle');
|
||||
$modchoosertoggleurl->param('modchooser', 'on');
|
||||
}
|
||||
$modchoosertoggle = $coursenode->add($modchoosertogglestring, $modchoosertoggleurl, self::TYPE_SETTING);
|
||||
$modchoosertoggle->add_class('modchoosertoggle');
|
||||
$modchoosertoggle->add_class('visibleifjs');
|
||||
user_preference_allow_ajax_update('usemodchooser', PARAM_BOOL);
|
||||
}
|
||||
|
||||
// Add the course settings link
|
||||
$url = new moodle_url('/course/edit.php', array('id'=>$course->id));
|
||||
$coursenode->add(get_string('editsettings'), $url, self::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
|
||||
$coursenode->add(get_string('editsettings'), $url, self::TYPE_SETTING, null, 'editsettings', new pix_icon('i/settings', ''));
|
||||
|
||||
// Add the course completion settings link
|
||||
if ($CFG->enablecompletion && $course->enablecompletion) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user