]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #5304 handling metadata arrays in search for user profile data
authorcash <cash.costello@gmail.com>
Sat, 30 Mar 2013 19:46:49 +0000 (15:46 -0400)
committercash <cash.costello@gmail.com>
Sat, 30 Mar 2013 19:46:49 +0000 (15:46 -0400)
mod/search/search_hooks.php

index 47351fb8a2e8bd76c2177a7ab2dd4a515657e6cf..92c6d700adeb25141a89032a55f5ced38d7f13b5 100644 (file)
@@ -178,11 +178,20 @@ function search_users_hook($hook, $type, $value, $params) {
                $entity->setVolatileData('search_matched_title', $title);
 
                $matched = '';
-               foreach ($profile_fields as $md) {
-                       $text = $entity->$md;
-                       if (stristr($text, $query)) {
-                               $matched .= elgg_echo("profile:{$md}") . ': '  
-                                               . search_get_highlighted_relevant_substrings($text, $query);
+               foreach ($profile_fields as $md_name) {
+                       $metadata = $entity->$md_name;
+                       if (is_array($metadata)) {
+                               foreach ($metadata as $text) {
+                                       if (stristr($text, $query)) {
+                                               $matched .= elgg_echo("profile:{$md_name}") . ': '
+                                                               . search_get_highlighted_relevant_substrings($text, $query);
+                                       }
+                               }
+                       } else {
+                               if (stristr($metadata, $query)) {
+                                       $matched .= elgg_echo("profile:{$md_name}") . ': '
+                                                       . search_get_highlighted_relevant_substrings($metadata, $query);
+                               }
                        }
                }