Merge branch 'MDL-32426-master-1' of git://git.luns.net.uk/moodle
authorSam Hemelryk <sam@moodle.com>
Sun, 15 Apr 2012 23:52:12 +0000 (11:52 +1200)
committerSam Hemelryk <sam@moodle.com>
Sun, 15 Apr 2012 23:52:12 +0000 (11:52 +1200)
grade/report/grader/lib.php
lib/adminlib.php
lib/externallib.php
lib/upgradelib.php
mod/feedback/item/label/label_form.php
mod/feedback/item/label/lib.php
rating/index.php

index 7601fea..402bc84 100644 (file)
@@ -783,7 +783,7 @@ class grade_report_grader extends grade_report {
                     $headerlink = $this->gtree->get_element_header($element, true, $this->get_pref('showactivityicons'), false);
 
                     $itemcell = new html_table_cell();
-                    $itemcell->attributes['class'] = $type . ' ' . $catlevel . 'highlightable';
+                    $itemcell->attributes['class'] = $type . ' ' . $catlevel . ' highlightable';
 
                     if ($element['object']->is_hidden()) {
                         $itemcell->attributes['class'] .= ' hidden';
index 48c9099..d26e0f9 100644 (file)
@@ -269,6 +269,10 @@ function uninstall_plugin($type, $name) {
 
     // perform clean-up task common for all the plugin/subplugin types
 
+    //delete the web service functions and pre-built services
+    require_once($CFG->dirroot.'/lib/externallib.php');
+    external_delete_descriptions($component);
+
     // delete calendar events
     $DB->delete_records('event', array('modulename' => $pluginname));
 
index 8875307..2cb1118 100644 (file)
@@ -487,4 +487,24 @@ function external_create_service_token($servicename, $context){
     global $USER, $DB;
     $service = $DB->get_record('external_services', array('name'=>$servicename), '*', MUST_EXIST);
     return external_generate_token(EXTERNAL_TOKEN_EMBEDDED, $service, $USER->id, $context, 0);
+}
+
+/**
+ * Delete all pre-built services (+ related tokens) and external functions information defined in the specified component.
+ *
+ * @param string $component name of component (moodle, mod_assignment, etc.)
+ */
+function external_delete_descriptions($component) {
+    global $DB;
+
+    $params = array($component);
+
+    $DB->delete_records_select('external_tokens',
+            "externalserviceid IN (SELECT id FROM {external_services} WHERE component = ?)", $params);
+    $DB->delete_records_select('external_services_users',
+            "externalserviceid IN (SELECT id FROM {external_services} WHERE component = ?)", $params);
+    $DB->delete_records_select('external_services_functions',
+            "functionname IN (SELECT name FROM {external_functions} WHERE component = ?)", $params);
+    $DB->delete_records('external_services', array('component'=>$component));
+    $DB->delete_records('external_functions', array('component'=>$component));
 }
\ No newline at end of file
index 3d47233..608fd83 100644 (file)
@@ -911,11 +911,12 @@ function log_update_descriptions($component) {
  * @return void
  */
 function external_update_descriptions($component) {
-    global $DB;
+    global $DB, $CFG;
 
     $defpath = get_component_directory($component).'/db/services.php';
 
     if (!file_exists($defpath)) {
+        require_once($CFG->dirroot.'/lib/externallib.php');
         external_delete_descriptions($component);
         return;
     }
@@ -979,6 +980,7 @@ function external_update_descriptions($component) {
     $dbservices = $DB->get_records('external_services', array('component'=>$component));
     foreach ($dbservices as $dbservice) {
         if (empty($services[$dbservice->name])) {
+            $DB->delete_records('external_tokens', array('externalserviceid'=>$dbservice->id));
             $DB->delete_records('external_services_functions', array('externalserviceid'=>$dbservice->id));
             $DB->delete_records('external_services_users', array('externalserviceid'=>$dbservice->id));
             $DB->delete_records('external_services', array('id'=>$dbservice->id));
@@ -1072,22 +1074,6 @@ function external_update_descriptions($component) {
     }
 }
 
-/**
- * Delete all service and external functions information defined in the specified component.
- * @param string $component name of component (moodle, mod_assignment, etc.)
- * @return void
- */
-function external_delete_descriptions($component) {
-    global $DB;
-
-    $params = array($component);
-
-    $DB->delete_records_select('external_services_users', "externalserviceid IN (SELECT id FROM {external_services} WHERE component = ?)", $params);
-    $DB->delete_records_select('external_services_functions', "externalserviceid IN (SELECT id FROM {external_services} WHERE component = ?)", $params);
-    $DB->delete_records('external_services', array('component'=>$component));
-    $DB->delete_records('external_functions', array('component'=>$component));
-}
-
 /**
  * upgrade logging functions
  */
index bb2c1cb..7a44530 100644 (file)
@@ -42,7 +42,7 @@ class feedback_label_form extends feedback_item_form {
 
         $mform->addElement('header', 'general', get_string($this->type, 'feedback'));
         $mform->addElement('editor', 'presentation_editor', '', null, $presentationoptions);
-        $mform->setType('presentation_editor', PARAM_CLEANHTML);
+        $mform->setType('presentation_editor', PARAM_RAW);
 
         parent::definition();
         $this->set_data($item);
index f1dcd28..25c62a9 100644 (file)
@@ -167,7 +167,8 @@ class feedback_item_label extends feedback_item_base {
                                                $filearea,
                                                $item->id);
 
-        echo format_text($output, FORMAT_HTML, array('overflowdiv'=>true));
+        $formatoptions = array('overflowdiv'=>true, 'trusted'=>$CFG->enabletrusttext);
+        echo format_text($output, FORMAT_HTML, $formatoptions);
     }
 
     /**
index 78a8b86..db41d98 100644 (file)
@@ -102,8 +102,10 @@ if (!$ratings) {
     $table->colclasses = array('', 'firstname', 'rating', 'time');
     $table->data = array();
 
-    //if the scale was changed after ratings were submitted some ratings may have a value above the current maximum
-    $maxrating = count($scalemenu) - 1;
+    // If the scale was changed after ratings were submitted some ratings may have a value above the current maximum
+    // We can't just do count($scalemenu) - 1 as custom scales start at index 1, not 0
+    $maxrating = max(array_keys($scalemenu));
+
     foreach ($ratings as $rating) {
         //Undo the aliasing of the user id column from user_picture::fields()
         //we could clone the rating object or preserve the rating id if we needed it again