? LICENSE.txt
? filename.patch
? search_files.pgsql.patch
Index: search_files.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/search_files/search_files.install,v
retrieving revision 1.10.2.2
diff -u -p -r1.10.2.2 search_files.install
--- search_files.install	1 Jul 2009 19:58:53 -0000	1.10.2.2
+++ search_files.install	10 Jul 2009 02:38:26 -0000
@@ -51,8 +51,8 @@ function search_files_install() {
   drupal_set_message(t('Search Files Install <ul><li>Tables successfully created: %successes</li><li>Tables unsuccessfuly created: %failures %failed_querys</li></ul>', array('%successes' => $successes, '%failures' => $failures, '%failed_querys' => ($failures ? $failed_querys : ""))));
 
   // load sample helper apps into database
-  db_query('INSERT INTO {search_files_helpers} VALUES(NULL, "%s", "%s", "%s")', "PDF", "pdf", "/usr/bin/env pdftotext %file% -");
-  db_query('INSERT INTO {search_files_helpers} VALUES(NULL, "%s", "%s", "%s")', "Text", "txt", "/usr/bin/env cat %file%");
+  db_query("INSERT INTO {search_files_helpers} (name, extension, helper_path) VALUES ('%s', '%s', '%s')", 'PDF', 'pdf', '/usr/bin/env pdftotext %file% -');
+  db_query("INSERT INTO {search_files_helpers} (name, extension, helper_path) VALUES ('%s', '%s', '%s')", 'Text', 'txt', '/usr/bin/env cat %file%');
   //change variable search_cron_limit to 10 so cron doesn't keep timing out
   variable_set('search_cron_limit', 10);
   drupal_set_message(t('Your search cron limit, which limits the number of items searched per cron run, has been set to 10. If it had been left at the default 100 your cron jobs could potentially continuously timeout. If you want to change this back you can do so <a href="!link">here</a>', array('!link' => url('admin/settings/search'))));
@@ -60,6 +60,6 @@ function search_files_install() {
 
 function search_files_uninstall() {
   drupal_uninstall_schema('search_files');
-  db_query('DELETE FROM {variable} WHERE name LIKE "search_files_%"');
+  db_query("DELETE FROM {variable} WHERE name LIKE 'search_files_%'");
   drupal_set_message(t('Search Files successfully uninstalled.'));
 }
Index: search_files.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/search_files/search_files.module,v
retrieving revision 1.19.2.6
diff -u -p -r1.19.2.6 search_files.module
--- search_files.module	28 Jun 2009 00:29:11 -0000	1.19.2.6
+++ search_files.module	10 Jul 2009 02:38:26 -0000
@@ -71,6 +71,7 @@ function search_files_menu() {
 * generate the dashboard page
 */
 function search_files_dashboard() {
+  $output = '';
   $lastindex = variable_get('search_directories_last_index', 0);
   if ($lastindex == 0) {
     $output .= sprintf("%s = <i>%s</i><br>\n", t('Last Index'), t('never'));
@@ -80,7 +81,7 @@ function search_files_dashboard() {
                        format_date($lastindex, $type = 'custom', $format = 'Y-m-d H:i:s', $timezone = NULL, $langcode = NULL));
   }
 
-  $directoryrescanage = search_files_variable_get_directoryrescanage();
+  $directoryrescanage = variable_get('search_files_directoryrescanage', 0);
   $output .= sprintf("%s = %s [sec]<br>\n", t('Directory Rescan Age'), $directoryrescanage);
 
   $nextdirectoryrescan = $lastindex + $directoryrescanage;
@@ -97,17 +98,17 @@ function search_files_dashboard() {
   $result = db_result($result);
   $output .= sprintf("Files found in configured Directories and Subdirectories = %s<br>\n", $result);
 
-  $sql = "SELECT count(*) FROM {search_directories_files} WHERE ( `index_attempts` = 0 );";
+  $sql = "SELECT count(*) FROM {search_directories_files} WHERE ( index_attempts = 0 );";
   $result = db_query($sql);
   $result = db_result($result);
   $output .= sprintf("Files without index attempt = %s<br>\n", $result);
 
-  $sql = "SELECT count(*) from {search_dataset} WHERE ( `type` = 'search_files' );";
+  $sql = "SELECT count(*) from {search_dataset} WHERE ( type = 'search_files' );";
   $result = db_query($sql);
   $result = db_result($result);
   $output .= sprintf("Files indexed = %s<br>\n", $result);
 
-  $sql = "SELECT count(*) from {search_dataset} WHERE ( `type` = 'search_files' AND `reindex` > 0 );";
+  $sql = "SELECT count(*) from {search_dataset} WHERE ( type = 'search_files' AND reindex > 0 );";
   $result = db_query($sql);
   $result = db_result($result);
   $output .= sprintf("Files indexed and scheduled for reindexing = %s<br>\n", $result);
@@ -199,7 +200,7 @@ function search_files_helper_confirm_del
  * remove row for the helper app from the search_files_helpers table
  */
 function search_files_helper_confirm_delete_form_submit($form, &$form_state) {
-  $result = db_query("DELETE FROM {search_files_helpers} WHERE `id`='%s'", $form_state['values']['search_files_helper_id']);
+  $result = db_query("DELETE FROM {search_files_helpers} WHERE id='%s'", $form_state['values']['search_files_helper_id']);
   drupal_goto('admin/settings/search_files/helpers/list');
 }
 /**
@@ -214,7 +215,7 @@ function search_files_helper_list() {
     FROM
      {search_files_helpers}
     ORDER BY
-      `extension`
+      extension
   ";
   $result = db_query($sql);
   $helpers[] = array();
@@ -335,11 +336,11 @@ function search_files_helper_edit_submit
     UPDATE
       {search_files_helpers}
     SET
-      `name`='%s',
-      `extension`='%s',
-      `helper_path`='%s'
+      name='%s',
+      extension='%s',
+      helper_path='%s'
     WHERE
-      `id`='%s'
+      id='%s'
   ";
   $result = db_query($sql, $form_state['clicked_button']['#post']['search_files_name'], $form_state['clicked_button']['#post']['search_files_extension'], $form_state['clicked_button']['#post']['search_files_helper_path'], $form_state['values']['search_file_id']);
   if ($result) {
@@ -357,9 +358,9 @@ function search_files_helper_add_submit(
     INSERT INTO
      {search_files_helpers}
    SET
-    `name`='%s',
-    `extension`='%s',
-    `helper_path`='%s'
+    name='%s',
+    extension='%s',
+    helper_path='%s'
   ";
   $result = db_query($sql, $form_state['values']['search_files_name'], $form_state['values']['search_files_extension'], $form_state['values']['search_files_helper_path']);
   if ($result) {
Index: modules/search_attachments/search_attachments.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/search_files/modules/search_attachments/Attic/search_attachments.install,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 search_attachments.install
--- modules/search_attachments/search_attachments.install	12 Jan 2009 16:36:51 -0000	1.1.2.2
+++ modules/search_attachments/search_attachments.install	10 Jul 2009 02:38:26 -0000
@@ -7,8 +7,8 @@
  */
 
 function search_attachments_uninstall() {
-  db_query('DELETE FROM {search_dataset} WHERE TYPE LIKE "attachment"');
-  db_query('DELETE FROM {search_index} WHERE TYPE LIKE "attachment"');
-  db_query('DELETE FROM {variable} WHERE name LIKE "search_attachments_%"');
+  db_query("DELETE FROM {search_dataset} WHERE TYPE LIKE 'attachment'");
+  db_query("DELETE FROM {search_index} WHERE TYPE LIKE 'attachment'");
+  db_query("DELETE FROM {variable} WHERE name LIKE 'search_attachments_%'");
   drupal_set_message(t('Search Attachments successfully uninstalled.'));
 }
\ No newline at end of file
Index: modules/search_attachments/search_attachments.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/search_files/modules/search_attachments/Attic/search_attachments.module,v
retrieving revision 1.1.2.7
diff -u -p -r1.1.2.7 search_attachments.module
--- modules/search_attachments/search_attachments.module	22 Apr 2009 16:24:38 -0000	1.1.2.7
+++ modules/search_attachments/search_attachments.module	10 Jul 2009 02:38:26 -0000
@@ -104,23 +104,25 @@ function search_attachments_search($op =
       foreach ($find as $item) {
         // Build the node body.
         $file = db_fetch_object(db_query("SELECT f.*, d.data, u.nid FROM {files} f JOIN {upload} u USING(fid) INNER JOIN {search_dataset} d ON f.fid = d.sid WHERE fid = %d", $item->sid));
-        $node = node_load($file->nid);
-        $file->absolute_path = $_SERVER['DOCUMENT_ROOT'] . $base_path . $file->filepath;
-        if (is_file($file->absolute_path)) {
-          $file->info = (object)pathinfo($file->absolute_path);
-          $results[] = array(
-            'link' => url($file->filepath),
-            'title' => $file->filename,
-            'user' => theme('username', $node),
-            'date' => $file->timestamp,
-            'type' => check_plain(search_files_helper_name($file->info->extension)),
-            'node' => $node,
-  //          'extra' => $extra,
-            'score' => $item->score / $total,
-            'extra' => l(t('Download'), 'download', array('query' => 'file='. $file->absolute_path)),
-            'snippet' => search_excerpt($keys, $file->data),
-          );
-        }
+	if (isset($file->nid)) {
+	  $node = node_load($file->nid);
+	  $file->absolute_path = $_SERVER['DOCUMENT_ROOT'] . $base_path . $file->filepath;
+	  if (is_file($file->absolute_path)) {
+	    $file->info = (object)pathinfo($file->absolute_path);
+	    $results[] = array(
+	      'link' => url($file->filepath),
+	      'title' => $file->filename,
+	      'user' => theme('username', $node),
+	      'date' => $file->timestamp,
+	      'type' => check_plain(search_files_helper_name($file->info->extension)),
+	      'node' => $node,
+//          'extra' => $extra,
+	      'score' => $item->score / $total,
+	      'extra' => l(t('Download'), 'download', array('query' => 'file='. $file->absolute_path)),
+	      'snippet' => search_excerpt($keys, $file->data),
+	    );
+	  }
+	}
       }
       return $results;
   }
Index: modules/search_directories/search_directories.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/search_files/modules/search_directories/Attic/search_directories.install,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 search_directories.install
--- modules/search_directories/search_directories.install	22 Apr 2009 15:25:55 -0000	1.1.2.2
+++ modules/search_directories/search_directories.install	10 Jul 2009 02:38:26 -0000
@@ -40,6 +40,7 @@ function search_directories_install() {
   $successess = 0;
   $failures= 0;
   $failed = array();
+  $successes=0;
   foreach ($result as $key => $value) {
     if ($value['success']) {
       $successes++;
@@ -78,8 +79,8 @@ function search_directories_update_1() {
 
 function search_directories_uninstall() {
   drupal_uninstall_schema('search_directories');
-  db_query('DELETE FROM {search_dataset} WHERE TYPE LIKE "search_directories"');
-  db_query('DELETE FROM {search_index} WHERE TYPE LIKE "search_directories"');
-  db_query('DELETE FROM {variable} WHERE name LIKE "search_directories_%"');
+  db_query("DELETE FROM {search_dataset} WHERE TYPE LIKE 'search_directories'");
+  db_query("DELETE FROM {search_index} WHERE TYPE LIKE 'search_directories'");
+  db_query("DELETE FROM {variable} WHERE name LIKE 'search_directories_%'");
   drupal_set_message(t('Search Directories successfully uninstalled.'));
 }
\ No newline at end of file
Index: modules/search_directories/search_directories.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/search_files/modules/search_directories/Attic/search_directories.module,v
retrieving revision 1.1.2.11
diff -u -p -r1.1.2.11 search_directories.module
--- modules/search_directories/search_directories.module	28 Jun 2009 00:23:11 -0000	1.1.2.11
+++ modules/search_directories/search_directories.module	10 Jul 2009 02:38:27 -0000
@@ -74,15 +74,15 @@ function search_directories_search($op =
       if (user_access('view search_files results') && ! variable_get('search_directories_tab_disabled', FALSE))
         return variable_get('search_directories_tab_label', t('Server Files'));
     case 'reset':
-      db_query("UPDATE {search_dataset} SET `reindex` = '%s' WHERE `type` = 'search_files'", time());
-      db_query("UPDATE {search_directories_files} SET `index_attempts` = '0' WHERE 1");
+      db_query("UPDATE {search_dataset} SET reindex = '%s' WHERE type = 'search_files'", time());
+      db_query("UPDATE {search_directories_files} SET index_attempts = '0'");
       break;
     case 'status':
       $return = array();
-      $return['total'] = db_result(db_query("SELECT COUNT(*) as `count` FROM {search_directories_files}"));
+      $return['total'] = db_result(db_query("SELECT COUNT(*) as count FROM {search_directories_files}"));
       $sql = "
         SELECT
-          COUNT(*) AS `count`
+          COUNT(*) AS count
         FROM
           {search_directories_files}
         LEFT JOIN
@@ -92,12 +92,12 @@ function search_directories_search($op =
           FROM
             {search_dataset}
           WHERE
-            `type` = 'search_files'
-        ) AS `dataset` ON {search_directories_files}.`id` = `dataset`.`sid`
+            type = 'search_files'
+        ) AS dataset ON {search_directories_files}.id = dataset.sid
         WHERE
         (
-          `dataset`.`reindex` IS NULL OR
-          `dataset`.`reindex` != 0
+          dataset.reindex IS NULL OR
+          dataset.reindex != 0
         )
       ";
       $return['remaining'] = db_result(db_query($sql));
@@ -115,7 +115,7 @@ function search_directories_search($op =
       $find = do_search($keywords, 'search_files');
       date_default_timezone_set('GMT');
       foreach ($find as $item) {
-        $result = db_fetch_object(db_query("SELECT * FROM {search_directories_files} WHERE `id` = '%s'", $item->sid));
+        $result = db_fetch_object(db_query("SELECT * FROM {search_directories_files} WHERE id = '%s'", $item->sid));
         $search_results = db_query("SELECT * FROM {search_dataset} WHERE sid = %d AND type = 'search_files'", $item->sid);
         if ($dataset = db_fetch_object($search_results)) {
           $file_name = explode('/', $result->full_path);
@@ -232,29 +232,38 @@ function search_directories_directory_co
  * table
  */
 function search_directories_directory_confirm_delete_form_submit($form, &$form_state) {
-  $directory_path = $form_values['values']['search_directories_directory_path'];
-  search_directories_delete_content_by_directory_fullpath($directory_path);
+  $directory_path = $form_values['values']['search_directory_path'];
+  search_directories_delete_content_by_directory($form_state['values']['search_directory_id']);
   drupal_set_message(t('Directory %directory removed from search index', array('%directory' => $directory_path)));
-  drupal_goto('admin/settings/search_directories/directories/list');
+  drupal_goto('admin/settings/search_files/directories');
 }
 
-function search_directories_delete_content_by_directory_fullpath($full_path) {
-  $sql = "DELETE s.*, f.*, d.*
-          FROM {search_dataset} AS s
-          INNER JOIN {search_directories_files} AS f ON s.`sid` = f.`id`
-          INNER JOIN {search_directories_directories} AS d ON f.`directory_id` = d.`id`
-          WHERE (     s.`type` = 'search_files' 
-                  AND d.`directory` = '%s'
-                )";
-  db_query($sql, $full_path);
+function search_directories_delete_content_by_directory($sid) {
+//   $sql = "DELETE s.*, f.*, d.*
+//           FROM {search_dataset} AS s
+//           INNER JOIN {search_directories_files} AS f ON s.sid = f.id
+//           INNER JOIN {search_directories_directories} AS d ON f.directory_id = d.id
+//           WHERE (     s.type = 'search_files' 
+//                   AND d.directory = '%s'
+//                 )";
+//   db_query($sql, $full_path);
+  $result = db_query("SELECT * FROM {search_directories_files} WHERE id=%d", $sid);
+  while ($row=db_fetch_object($result)) {
+  	db_query("DELETE FROM {search_directories_directories} WHERE id=%d", $row->id);
+  }
+	$result = db_query("DELETE FROM {search_directories_files} WHERE id=%d", $sid);
+  $result = db_query("DELETE FROM {search_dataset} WHERE sid=%d", $sid);
+	$result = db_query("DELETE FROM {search_directories} WHERE id=%d", $sid);
+  
+
 }
 
 function search_directories_delete_content_by_file_fullpath($full_path) {
   $sql = "DELETE s.*, f.*
           FROM {search_dataset} AS s
-          INNER JOIN {search_directories_files} AS f ON s.`sid` = f.`id`
-          WHERE (     s.`type` = 'search_files' 
-                  AND f.`full_path` = '%s'
+          INNER JOIN {search_directories_files} AS f ON s.sid = f.id
+          WHERE (     s.type = 'search_files' 
+                  AND f.full_path = '%s'
                 )";
   db_query($sql, $full_path);
 }
@@ -292,8 +301,8 @@ function search_directories_directory_ed
  * data given by the search_directories_directory_edit form
  */
 function search_directories_directory_edit_submit($form, $form_state) {
-  if (db_query("UPDATE {search_directories} SET `directory`='%s' WHERE `id` = '%s'", $form_state['values']['directory'], $form_state['values']['directory_id'])) {
-    drupal_set_message(t('Directory %directory has been updated', array('%directory' => $form_state['values']['search_files_directory'])));
+  if (db_query("UPDATE {search_directories} SET directory='%s' WHERE id = '%s'", $form_state['values']['directory'], $form_state['values']['directory_id'])) {
+    drupal_set_message(t('Directory %directory has been updated', array('%directory' => $form_state['values']['directory'])));
     drupal_goto('admin/settings/search_files/directories/list');
   }
 }
@@ -312,8 +321,7 @@ function search_directories_directory_li
     $directories[] = array( $directory->directory, l(t('Edit'), 'admin/settings/search_files/directory/edit/'. $directory->id), l(t('Delete'), 'admin/settings/search_files/directory/delete/'. $directory->id), array($destination));
   }
   $header = array( 'Directory', array('data' => t('Operations'), 'colspan' => '3'));
-  $output .= theme('table', $header, $directories);
-  return $output;
+  return theme('table', $header, $directories);
 }
 
 /**
@@ -332,7 +340,7 @@ function search_directories_directory_ad
     '#title' => t('Directory Path'),
     '#size' => 80,
     '#maxlength' => 150,
-    '#required' => FALSE,
+    '#required' => true,
     '#description' => t('The path of the directory to search. Relative pathes are based on %directory.', array('%directory' => getcwd())),
   );
   $form['submit'] = array(
@@ -342,15 +350,22 @@ function search_directories_directory_ad
   return $form;
 }
 
+
+function search_directories_directory_add_form_validate($form, $form_state) {
+  $result = db_query("SELECT * FROM {search_directories} WHERE directory='%s'", $form_state['values']['directory']);
+  while ($row = db_fetch_object($result)) {
+  	form_set_error('search_files_directory', t('Directory already in list'));
+  }
+}
+
 /**
  * adds a row to the search_files directories table with  the
  * information provided by the search_files_directory_add_form
  */
 function search_directories_directory_add_form_submit($form, $form_state) {
   $directory = $form_state['values']['directory'];
-  var_dump($form_state);
-  $result = db_query("INSERT INTO {search_directories} SET `directory` = '%s'", $directory);
-  $directory = $form_values['values']['search_files_directory'];
+  $result = db_query("INSERT INTO {search_directories} (directory) VALUES ('%s')", $directory);
+  $directory = $form_state['values']['search_files_directory'];
   if (!preg_match('/^\//', $directory)) {
     $directory = sprintf("%s/%s", getcwd(), $directory);
   }
@@ -411,13 +426,13 @@ function search_directories_update_index
       FROM
         {search_dataset}
       WHERE
-        `type` = 'search_files'
-    ) AS `dataset` ON {search_directories_files}.`id` = `dataset`.`sid`
+        type = 'search_files'
+    ) AS dataset ON {search_directories_files}.id = dataset.sid
     WHERE
     (
-      `dataset`.`reindex` IS NULL OR
-      `dataset`.`reindex` != 0
-    ) AND {search_directories_files}.`index_attempts` <= 5
+      dataset.reindex IS NULL OR
+      dataset.reindex != 0
+    ) AND {search_directories_files}.index_attempts <= 5
     LIMIT %s
   ";
 
@@ -436,14 +451,14 @@ function search_directories_update_index
         UPDATE
           {search_directories_files}
         SET
-          `index_attempts` = `index_attempts` + 1
+          index_attempts = index_attempts + 1
         WHERE
-          `id` = '%s'
+          id = '%s'
       ";
       $increment_result = db_query($increment_sql, $file->id);
       if ($file->index_attempts >= 5) {
         // indexind failed too many times, record this to the log and continue
-        watchdog('Search Directories', t('failed to index %full_path after %attempts attempts', array('%full_path' => $file->full_path, '%attempts' => $file->index_attempts)), array(), WATCHDOG_ERROR);
+        watchdog('Search Dirs', t('failed to index %full_path after %attempts attempts', array('%full_path' => $file->full_path, '%attempts' => $file->index_attempts)), array(), WATCHDOG_ERROR);
         continue;
       }
 
@@ -480,7 +495,7 @@ function search_directories_list_directo
   if (!is_dir($directory)) {
     return;
   }
-  watchdog('Search Directories', 'Starting to list files in %directory', array('%directory' => $directory));
+  watchdog('Search Dirs', 'Starting to list files in %directory', array('%directory' => $directory));
   $file_count = 0;
   $dir_count = 0;
   if ($dir = opendir($directory)) {
@@ -497,25 +512,11 @@ function search_directories_list_directo
       }
       else if ($type == 'file') {
         // Check to see if the file is already in the table
-        $sql = "
-          SELECT
-            `id`
-          FROM
-            {search_directories_files}
-          WHERE
-            `full_path`='%s'
-        ";
-        $result = db_result(db_query($sql, $full_path));
-        // If the file is not in the table, insert it
+        $result = db_result(db_query("SELECT id FROM {search_directories_files} WHERE full_path='%s'", $full_path));
+       // If the file is not in the table, insert it
         if (!$result) {
           $file_count++;
-          $insert_sql = "
-            INSERT INTO
-              {search_directories_files}
-            SET
-              `full_path`=\"%s\",
-              `directory_id`='%s'
-          ";
+          $insert_sql = "INSERT INTO {search_directories_files} (full_path, directory_id, index_attempts) VALUES ('%s', %d, 0)";
 //          echo "filename: ". escapeshellcmd($file) ." - filetype: {$type}<br/>\n";
           // MySQL keeps throwing errors because of some file names that it doesn't like, this needs fixed
           $insert_result = db_query($insert_sql, $full_path, $id);
@@ -523,5 +524,5 @@ function search_directories_list_directo
       }
     }
   }
-  watchdog('Search Directories', 'Finished Listing files in %directory, found %file_count new file(s)', array('%directory' => $directory, '%file_count' => $file_count));
+  watchdog('Search Dirs', 'Finished Listing files in %directory, found %file_count new file(s)', array('%directory' => $directory, '%file_count' => $file_count));
 }
