? abc.patch
? af1.patch
? search_services.patch
Index: search_service.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/search_service/Attic/search_service.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 search_service.inc
--- search_service.inc	1 Sep 2008 14:57:48 -0000	1.1.2.2
+++ search_service.inc	1 Nov 2008 01:46:56 -0000
@@ -34,6 +34,43 @@ function search_service_nodes($keys, $si
 }
 
 /**
+ * Callback for search.content service.
+ */
+function search_service_content($keys, $simple = FALSE) {
+  // define standard keys for simple set
+  $stdkeys = array('link', 'type', 'title', 'user', 'date', 'snippet');
+
+  // invoke the search hook to generate results
+  $results = array();
+  foreach (module_list() as $name) {
+    if (($name != 'user' || $name != 'usersearch' || 'node') && module_hook($name, 'search') &&
+        $title = check_plain(module_invoke($name, 'search', 'name'))
+    ) {
+      $search_results = module_invoke($name, 'search', 'search', $keys);
+      if (! empty($search_results) ) {
+        $results = array_merge($results, $search_results);
+      }
+    }
+  }
+  if ($results and is_array($results) and count($results)) {
+    // if simple results requested, remove extra data
+    if ($simple) {
+      $num = count($results);
+      for ($i = 0; $i<$num; $i++) {
+        $keys = array_keys($results[$i]);
+        foreach ($keys as $key) {
+          if (!in_array($key, $stdkeys)) {
+            unset($results[$i][$key]);
+          }
+        }
+      }
+    }
+    return $results;
+  }
+  return services_error(t('Search returned no results.'));
+}
+
+/**
  * Callback for search.users service.
  */
 function search_service_users($keys) {
Index: search_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/search_service/Attic/search_service.module,v
retrieving revision 1.1.4.14
diff -u -p -r1.1.4.14 search_service.module
--- search_service.module	6 Sep 2008 04:13:08 -0000	1.1.4.14
+++ search_service.module	1 Nov 2008 01:46:56 -0000
@@ -43,7 +43,29 @@ function search_service_service() {
         ),
       ),
       '#return'   => 'array',
-      '#help'     => t('Searches nodes according to keys via hook_search.'),
+      '#help'     => t('Searches nodes according to keys via node_search.'),
+    ),
+    array(
+      '#method'           => 'search.content',
+      '#callback'         => 'search_service_content',
+      '#access arguments' => array('search content'),
+      '#file'             => array('file' => 'inc', 'module' => 'search_service'),
+      '#key'              => TRUE,
+      '#args'             => array(
+        array(
+          '#name'         => 'search_keys',
+          '#type'         => 'string',
+          '#description'  => t('Search keys.'),
+        ),
+        array(
+          '#name'         => 'simple',
+          '#type'         => 'string',
+          '#optional'     => TRUE,
+          '#description'  => t('If set, returns only the main search fields (link, type, title, user, date, snippet) and no additional data.'),
+        ),
+      ),
+      '#return'   => 'array',
+      '#help'     => t('Uses all hook_search(), except for node_search(), user_search() and usersearch_search() to search content according to keys.'),
     ),
     array(
       '#method'   => 'search.users',
