From 697ff9999758db4881b439578296876be445960a Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Wed, 12 Dec 2012 13:46:01 +0800 Subject: [PATCH] MDL-37085 Load modchooser only when needed --- course/lib.php | 14 ++------------ course/renderer.php | 17 ++++++++++++++++- course/view.php | 6 +----- course/yui/modchooser/modchooser.js | 2 +- index.php | 6 +----- 5 files changed, 21 insertions(+), 24 deletions(-) diff --git a/course/lib.php b/course/lib.php index 3b682463fb2..983b9fc8109 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1800,7 +1800,8 @@ function print_section_add_menus($course, $section, $modnames = null, $vertical= $output = html_writer::tag('div', $output, array('class' => 'show addresourcedropdown')); $modchooser = html_writer::tag('div', $modchooser, array('class' => 'hide addresourcemodchooser')); } - $output = $modchooser . $output; + $courserenderer = $PAGE->get_renderer('core', 'course'); + $output = $courserenderer->course_modchooser($modules, $course) . $modchooser . $output; } if ($return) { @@ -4481,17 +4482,6 @@ function include_course_ajax($course, $usedmodules = array(), $enabledmodules = // Load drag and drop upload AJAX. dndupload_add_to_course($course, $enabledmodules); - // Add the module chooser - $PAGE->requires->yui_module('moodle-course-modchooser', - 'M.course.init_chooser', - array(array('courseid' => $course->id, 'closeButtonTitle' => get_string('close', 'editor'))) - ); - $PAGE->requires->strings_for_js(array( - 'addresourceoractivity', - 'modchooserenable', - 'modchooserdisable', - ), 'moodle'); - return true; } diff --git a/course/renderer.php b/course/renderer.php index faf2ea22504..009fa344c4e 100644 --- a/course/renderer.php +++ b/course/renderer.php @@ -211,7 +211,22 @@ class core_course_renderer extends plugin_renderer_base { * @return string The composed HTML for the module */ public function course_modchooser($modules, $course) { - global $OUTPUT; + static $isdisplayed = false; + if ($isdisplayed) { + return ''; + } + $isdisplayed = true; + + // Add the module chooser + $this->page->requires->yui_module('moodle-course-modchooser', + 'M.course.init_chooser', + array(array('courseid' => $course->id, 'closeButtonTitle' => get_string('close', 'editor'))) + ); + $this->page->requires->strings_for_js(array( + 'addresourceoractivity', + 'modchooserenable', + 'modchooserdisable', + ), 'moodle'); // Add the header $header = html_writer::tag('div', get_string('addresourceoractivity', 'moodle'), diff --git a/course/view.php b/course/view.php index 00c675464a1..73ecb65f016 100644 --- a/course/view.php +++ b/course/view.php @@ -269,10 +269,6 @@ echo html_writer::end_tag('div'); // Include course AJAX - if (include_course_ajax($course, $modnamesused)) { - // Add the module chooser - $renderer = $PAGE->get_renderer('core', 'course'); - echo $renderer->course_modchooser(get_module_metadata($course, $modnames, $displaysection), $course); - } + include_course_ajax($course, $modnamesused); echo $OUTPUT->footer(); diff --git a/course/yui/modchooser/modchooser.js b/course/yui/modchooser/modchooser.js index cdc93d0772f..2bc01b58d62 100644 --- a/course/yui/modchooser/modchooser.js +++ b/course/yui/modchooser/modchooser.js @@ -158,6 +158,6 @@ YUI.add('moodle-course-modchooser', function(Y) { } }, '@VERSION@', { - requires:['base', 'overlay', 'moodle-core-chooserdialogue', 'transition'] + requires:['base', 'overlay', 'moodle-core-chooserdialogue', 'transition', 'moodle-course-coursebase'] } ); diff --git a/index.php b/index.php index 35c8eeb5e84..2c727cbec36 100644 --- a/index.php +++ b/index.php @@ -151,11 +151,7 @@ } } // Include course AJAX - if (include_course_ajax($SITE, $modnamesused)) { - // Add the module chooser - $renderer = $PAGE->get_renderer('core', 'course'); - echo $renderer->course_modchooser(get_module_metadata($SITE, $modnames), $SITE); - } + include_course_ajax($SITE, $modnamesused); if (isloggedin() and !isguestuser() and isset($CFG->frontpageloggedin)) { $frontpagelayout = $CFG->frontpageloggedin; -- 2.43.0