MDL-38055 course: fixed double encoding of title properties

Conflicts:
	lib/navigationlib.php

Conflicts:
	blocks/course_overview/renderer.php
	lib/navigationlib.php
This commit is contained in:
Sam Hemelryk
2013-03-20 17:35:24 +13:00
parent d43ba3caf6
commit 4688b27ab3
2 changed files with 7 additions and 2 deletions
+3 -1
View File
@@ -857,7 +857,9 @@ function print_overview($courses, array $remote_courses=array()) {
foreach ($courses as $course) {
$fullname = format_string($course->fullname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id)));
echo $OUTPUT->box_start('coursebox');
$attributes = array('title' => s($fullname));
// decode &'s. format_string above will have encoded them and html_writer will encode again when it processed the title
// attribute leading to double encoding.
$attributes = array('title' => str_replace('&', '&', $fullname));
if (empty($course->visible)) {
$attributes['class'] = 'dimmed';
}
+4 -1
View File
@@ -2524,6 +2524,7 @@ class global_navigation extends navigation_node {
$issite = ($course->id == $SITE->id);
$shortname = format_string($course->shortname, true, array('context' => $coursecontext));
$fullname = format_string($course->fullname, true, array('context' => $coursecontext));
if ($issite) {
$parent = $this;
@@ -2559,7 +2560,9 @@ class global_navigation extends navigation_node {
$coursenode = $parent->add($shortname, $url, self::TYPE_COURSE, $shortname, $course->id);
$coursenode->nodetype = self::NODETYPE_BRANCH;
$coursenode->hidden = (!$course->visible);
$coursenode->title(format_string($course->fullname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id))));
// We need to decode &'s here as they will have been added by format_string above and attributes will be encoded again
// later.
$coursenode->title(str_replace('&', '&', $fullname));
if (!$forcegeneric) {
$this->addedcourses[$course->id] = $coursenode;
}