# HG changeset patch
# User rich@gentoo-web.dev.cantongroup.net
# Date 1253838981 14400
# Node ID 65d212903efa3cb993c54449d99d05248c32bcbe
# Parent  34f78ef29e822a8e804a253b2fc1512d3dd8ce23
Modified file indexer to search CCK fields. Submitting patch.

--- a/htdocs/sites/all/modules/search_files/search_files_attachments.module	Thu Sep 24 18:43:43 2009 -0400
+++ b/htdocs/sites/all/modules/search_files/search_files_attachments.module	Thu Sep 24 20:36:21 2009 -0400
@@ -123,32 +123,61 @@
 
       // Load results.
       $results = array();
+      $search_queries = Array();
+      $upload_module = module_exists('upload');
+      $filefield_module = module_exists('filefield');
+      $file_fields = Array();
+      if($upload_module){
+        $search_queries[] = "SELECT f.*, d.data, u.nid 
+                        FROM {files} AS f 
+                        JOIN {upload} AS u 
+                        USING(fid) 
+                        INNER JOIN {search_dataset} AS d 
+                        ON f.fid = d.sid 
+                        WHERE fid = %d"; 
+      }
+      if($filefield_module){
+        $fields = content_fields();
+          
+
+        foreach (content_fields() as $field){
+          
+          if ($field['type'] == 'filefield'){           
+            $file_fields[] = $field['field_name'];
+          }
+        }
+        foreach($file_fields as $filefield_instance){
+        $search_queries[] = "SELECT f.*, d.data, u.nid
+                            FROM {files} AS f 
+                            JOIN {content_".$filefield_instance."} AS u 
+                            ON u.".$filefield_instance."_fid = f.fid 
+                            INNER JOIN {search_dataset} AS d 
+                            ON f.fid = d.sid 
+                            WHERE fid = %d"; 
+        }
+      }
+      
       foreach ($find as $item) {
         // Build the node body.
-        $file = db_fetch_object(db_query("
-                                  SELECT f.*, d.data, u.nid
-                                  FROM {files} AS f
-                                  JOIN {upload} AS u
-                                  USING(fid)
-                                  INNER JOIN {search_dataset} AS d
-                                  ON f.fid = d.sid
-                                  WHERE fid = %d
-                                ", $item->sid));
-        $node = node_load($file->nid);
-        $realpath = realpath($file->filepath);
-        if (is_file($realpath)) {
-          $fileinfo = (object)pathinfo($realpath);
-          $results[] = array(
-            'link' => url($file->filepath),
-            'title' => $file->filename,
-            'user' => theme('username', $node),
-            'date' => $file->timestamp,
-            'type' => check_plain(search_files_helper_name($fileinfo->extension)),
-            'node' => $node,
-            'score' => $item->score / $total,
-            'extra' => array(l(t('Node'), "node/" . $node->nid)),
-            'snippet' => search_excerpt($keys, $file->data),
-          );
+        foreach($search_queries as $search_query){
+         
+          $file = db_fetch_object(db_query($search_query, $item->sid));
+          $node = node_load($file->nid);
+          $realpath = realpath($file->filepath);
+          if (is_file($realpath)) {
+            $fileinfo = (object)pathinfo($realpath);
+            $results[] = array(
+              'link' => url($file->filepath),
+              'title' => $file->filename,
+              'user' => theme('username', $node),
+              'date' => $file->timestamp,
+              'type' => check_plain(search_files_helper_name($fileinfo->extension)),
+              'node' => $node,
+              'score' => $item->score / $total,
+              'extra' => array(l(t('Node'), "node/" . $node->nid)),
+              'snippet' => search_excerpt($keys, $file->data),
+            );
+          }
         }
       }
       return $results;
