MDL-58257 course: fix search containing a hyphen
authorArnaud Trouve <ak4t0sh@free.fr>
Tue, 14 Mar 2017 18:07:09 +0000 (19:07 +0100)
committerArnaud Trouve <ak4t0sh@free.fr>
Thu, 16 Mar 2017 17:43:15 +0000 (18:43 +0100)
In case a hyphen (-) was preceded and followed by spaces,
the pattern for the "not regex" was empty causing an empty response from the database.

lib/datalib.php

index 96a940c..df48d6d 100644 (file)
@@ -787,7 +787,7 @@ function get_courses_search($searchterms, $sort, $page, $recordsperpage, &$total
             $searchcond[] = "$concat $REGEXP :ss$i";
             $params['ss'.$i] = "(^|[^a-zA-Z0-9])$searchterm([^a-zA-Z0-9]|$)";
 
-        } else if (substr($searchterm,0,1) == "-") {
+        } else if ((substr($searchterm,0,1) == "-") && (core_text::strlen($searchterm) > 1)) {
             $searchterm = trim($searchterm, '+-');
             $searchterm = preg_quote($searchterm, '|');
             $searchcond[] = "$concat $NOTREGEXP :ss$i";