MDL-42582 Availability: Restriction display incorrect for multi-para Labels
authorsam marshall <s.marshall@open.ac.uk>
Tue, 29 Oct 2013 16:47:54 +0000 (16:47 +0000)
committersam marshall <s.marshall@open.ac.uk>
Fri, 15 Nov 2013 12:45:32 +0000 (12:45 +0000)
When a label has multiple paragraphs, its name (converted to plain text)
contains a line feed. Due to an error in regular expressions that don't
accept the line feed, this caused incorrect display on the course page
when that label is shown as a requirement for accessing another activity.

lib/conditionlib.php

index 620475f..3b4b9d7 100644 (file)
@@ -909,7 +909,7 @@ abstract class condition_info_base {
         if (!empty($information)) {
             $li = strpos($information, '<li>', 4);
             if ($li === false) {
-                $information = preg_replace('~^<li>(.*)</li>$~', '$1', $information);
+                $information = preg_replace('~^\s*<li>(.*)</li>\s*$~s', '$1', $information);
             } else {
                 $information = html_writer::tag('ul', $information);
             }
@@ -1106,7 +1106,7 @@ abstract class condition_info_base {
         if (!empty($information)) {
             $li = strpos($information, '<li>', 4);
             if ($li === false) {
-                $information = preg_replace('~^<li>(.*)</li>$~', '$1', $information);
+                $information = preg_replace('~^\s*<li>(.*)</li>\s*$~s', '$1', $information);
             } else {
                 $information = html_writer::tag('ul', $information);
             }