From 96bc64775534e2cce474d71b2cabccf93e4d5cfc Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Wed, 20 Feb 2013 11:00:41 +1100 Subject: [PATCH] MDL-31885 The activity name auto-linking filter should not create links to webpages it was created on --- filter/activitynames/filter.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/filter/activitynames/filter.php b/filter/activitynames/filter.php index dc2b636b53a..e739e4a8734 100644 --- a/filter/activitynames/filter.php +++ b/filter/activitynames/filter.php @@ -70,9 +70,9 @@ class filter_activitynames extends moodle_text_filter { $href_tag_begin = html_writer::start_tag('a', array('class' => 'autolink', 'title' => $title, 'href' => $cm->get_url())); - self::$activitylist[] = new filterobject($currentname, $href_tag_begin, '', false, true); + self::$activitylist[$cm->id] = new filterobject($currentname, $href_tag_begin, '', false, true); if ($currentname != $entitisedname) { /// If name has some entity (& " < >) add that filter too. MDL-17545 - self::$activitylist[] = new filterobject($entitisedname, $href_tag_begin, '', false, true); + self::$activitylist[$cm->id.'-e'] = new filterobject($entitisedname, $href_tag_begin, '', false, true); } } } @@ -80,8 +80,19 @@ class filter_activitynames extends moodle_text_filter { } } + $filterslist = array(); if (self::$activitylist) { - return $text = filter_phrases ($text, self::$activitylist); + $cmid = $this->context->instanceid; + if ($this->context->contextlevel == CONTEXT_MODULE && isset(self::$activitylist[$cmid])) { + // remove filterobjects for the current module + $filterslist = array_diff_key(self::$activitylist, array($cmid => 1, $cmid.'-e' => 1)); + } else { + $filterslist = self::$activitylist; + } + } + + if ($filterslist) { + return $text = filter_phrases($text, $filterslist); } else { return $text; }