MDL-53765 core: Deprecate update_module_button functions
authorJun Pataleta <jun@moodle.com>
Wed, 27 Jul 2016 06:13:25 +0000 (14:13 +0800)
committerJun Pataleta <jun@moodle.com>
Tue, 9 Aug 2016 03:17:43 +0000 (11:17 +0800)
First stage deprecation for the functions update_module_button and
core_renderer::update_module_button().

lib/deprecatedlib.php
lib/outputrenderers.php
mod/upgrade.txt

index 65065cf..aed6165 100644 (file)
@@ -1111,6 +1111,33 @@ function print_checkbox($name, $value, $checked = true, $label = '', $alt = '',
     throw new coding_exception('print_checkbox() can not be used any more. Please use html_writer::checkbox() instead.');
 }
 
+/**
+ * Prints the 'update this xxx' button that appears on module pages.
+ *
+ * @deprecated since Moodle 3.2
+ *
+ * @param string $cmid the course_module id.
+ * @param string $ignored not used any more. (Used to be courseid.)
+ * @param string $string the module name - get_string('modulename', 'xxx')
+ * @return string the HTML for the button, if this user has permission to edit it, else an empty string.
+ */
+function update_module_button($cmid, $ignored, $string) {
+    global $CFG, $OUTPUT;
+
+    debugging('update_module_button() has been deprecated and should not be used anymore. Activity modules should not add the ' .
+        'edit module button, the link is already available in the Administration block. Themes can choose to display the link ' .
+        'in the buttons row consistently for all module types.', DEBUG_DEVELOPER);
+
+    if (has_capability('moodle/course:manageactivities', context_module::instance($cmid))) {
+        $string = get_string('updatethis', '', $string);
+
+        $url = new moodle_url("$CFG->wwwroot/course/mod.php", array('update' => $cmid, 'return' => true, 'sesskey' => sesskey()));
+        return $OUTPUT->single_button($url, $string);
+    } else {
+        return '';
+    }
+}
+
 /**
  * @deprecated use $OUTPUT->navbar() instead
  */
index 4f89e27..63be693 100644 (file)
@@ -2685,12 +2685,19 @@ EOD;
     /**
      * Returns HTML to display the 'Update this Modulename' button that appears on module pages.
      *
+     * @deprecated since Moodle 3.2
+     *
      * @param string $cmid the course_module id.
      * @param string $modulename the module name, eg. "forum", "quiz" or "workshop"
      * @return string the HTML for the button, if this user has permission to edit it, else an empty string.
      */
     public function update_module_button($cmid, $modulename) {
         global $CFG;
+
+        debugging('core_renderer::update_module_button() has been deprecated and should not be used anymore. Activity modules ' .
+            'should not add the edit module button, the link is already available in the Administration block. Themes can choose ' .
+            'to display the link in the buttons row consistently for all module types.', DEBUG_DEVELOPER);
+
         if (has_capability('moodle/course:manageactivities', context_module::instance($cmid))) {
             $modulename = get_string('modulename', $modulename);
             $string = get_string('updatethis', '', $modulename);
index 74e8d00..09f1298 100644 (file)
@@ -4,6 +4,9 @@ information provided here is intended especially for developers.
 === 3.2 ===
 
 * Callback delete_course is deprecated and should be replaced with observer for event \core\event\course_content_deleted
+* update_module_button() and core_renderer::update_module_button() have been deprecated and should not be used anymore.
+  Activity modules should not add the edit module button, the link is already available in the Administration block.
+  Themes can choose to display the link in the buttons row consistently for all module types.
 
 === 3.1 ===