MDL-38055 course: fixed double encoding of title properties
authorSam Hemelryk <sam@moodle.com>
Wed, 20 Mar 2013 04:27:08 +0000 (17:27 +1300)
committerSam Hemelryk <sam@moodle.com>
Wed, 20 Mar 2013 04:27:08 +0000 (17:27 +1300)
blocks/course_overview/renderer.php
lib/navigationlib.php

index b0b4507..1ac4e90 100644 (file)
@@ -101,7 +101,8 @@ class block_course_overview_renderer extends plugin_renderer_base {
 
             }
 
-            $attributes = array('title' => s($course->fullname));
+            // No need to pass title through s() here as it will be done automatically by html_writer.
+            $attributes = array('title' => $course->fullname);
             if ($course->id > 0) {
                 $courseurl = new moodle_url('/course/view.php', array('id' => $course->id));
                 $coursefullname = format_string($course->fullname, true, $course->id);
index 432a120..da2f7b3 100644 (file)
@@ -2367,7 +2367,9 @@ class global_navigation extends navigation_node {
         $coursenode = $parent->add($coursename, $url, self::TYPE_COURSE, $shortname, $course->id);
         $coursenode->nodetype = self::NODETYPE_BRANCH;
         $coursenode->hidden = (!$course->visible);
-        $coursenode->title($fullname);
+        // We need to decode &amp;'s here as they will have been added by format_string above and attributes will be encoded again
+        // later.
+        $coursenode->title(str_replace('&amp;', '&', $fullname));
         if (!$forcegeneric) {
             $this->addedcourses[$course->id] = $coursenode;
         }