From a3644638aaf0418598196a870204e0b632a4c8ad Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Fri, 17 Apr 2015 06:28:40 -0400 Subject: [PATCH] Allow preference sections to define CSS class names --- program/lib/Roundcube/rcube_utils.php | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-) diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php index f4c0e90..0ca2a9e 100644 --- a/program/lib/Roundcube/rcube_utils.php +++ b/program/lib/Roundcube/rcube_utils.php @@ -917,7 +917,7 @@ */ public static function tokenize_string($str, $minlen = 2) { - $expr = array('/[\s;\/+-]+/ui', '/(\d)[-.\s]+(\d)/u'); + $expr = array('/[\s;,"\'\/+-]+/ui', '/(\d)[-.\s]+(\d)/u'); $repl = array(' ', '\\1\\2'); if ($minlen > 1) { @@ -985,6 +985,28 @@ } /** + * Compare two strings for matching words (order not relevant) + * + * @param string Haystack + * @param string Needle + * @return boolen True if match, False otherwise + */ + public static function words_match($haystack, $needle) + { + $a_needle = self::tokenize_string($needle, 1); + $haystack = join(" ", self::tokenize_string($haystack, 1)); + + $hits = 0; + foreach ($a_needle as $w) { + if (stripos($haystack, $w) !== false) { + $hits++; + } + } + + return $hits >= count($a_needle); + } + + /** * Parse commandline arguments into a hash array * * @param array $aliases Argument alias names -- Gitblit v1.9.1