Index: node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.950
diff -u -p -r1.950 node.module
--- node.module	20 Feb 2008 13:46:40 -0000	1.950
+++ node.module	12 Mar 2008 20:16:42 -0000
@@ -1204,6 +1204,24 @@ function node_search($op = 'search', $ke
         $keys = search_query_insert($keys, 'type');
       }
 
+      if (($created_evaluator = search_query_extract($keys, 'created-evaluator')) &&
+      	  ($created_date = search_query_extract($keys, 'created-date'))) {
+
+        if ($created_evaluator == "=") {
+          $created = "n.created BETWEEN %d AND %d";
+          $arguments1[] = strtotime($created_date);
+          $arguments1[] = strtotime($created_date)+24*60*60;
+        } else {
+		  $created = "n.created %s %d";
+          $arguments1[] = $created_evaluator;
+          $arguments1[] = strtotime($created_date);
+        }
+
+      	$conditions1 .= ' AND ('. $created .')';
+        $keys = search_query_insert($keys, 'created-evaluator');
+        $keys = search_query_insert($keys, 'created-date');
+      }
+
       if ($category = search_query_extract($keys, 'category')) {
         $categories = array();
         foreach (explode(',', $category) as $c) {
@@ -1841,6 +1859,44 @@ function node_form_alter(&$form, $form_s
       '#size' => 30,
       '#maxlength' => 255,
     );
+    $form['advanced']['keywords']['author'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Author'),
+      '#size' => 30,
+      '#maxlength' => 255,
+    );
+
+    $form['advanced']['created'] = array(
+      '#prefix' => '<div class="criterion">',
+      '#suffix' => '</div>',
+    );
+    $form['advanced']['created']['created-evaluator'] = array(
+      '#type' => 'select',
+      '#title' => t('Created date comparison'),
+      '#options' => array('' => '---', '<' => 'Before', '=' => 'On', '>' => 'After'),
+      '#multiple' => FALSE,
+    );
+    if (module_exists('jquery_calendar')) {
+      $form['advanced']['created']['created-date'] = jquery_calendar_formitem('created-date', array(
+        '#type' => 'textfield',
+        '#title' => t('Created date'),
+        '#size' => 10,
+        '#maxlength' => 10,
+        '#required' => 0,
+        '#jqrycal' => array(
+          'autoPopUp' => 'both',
+          'buttonImageOnly' => 'true',
+          'buttonImage' => base_path() . drupal_get_path('module', 'jquery_calendar') .'/images/calendar.gif',
+          'yearRange' => '-5:+5',)
+      ));
+    } else {
+      $form['advanced']['created']['created-date'] = array(
+        '#type' => 'textfield',
+        '#title' => t('Created date'),
+        '#size' => 10,
+        '#maxlength' => 10,
+      );
+    }
 
     // Taxonomy box:
     if ($taxonomy = module_invoke('taxonomy', 'form_all', 1)) {
@@ -1894,6 +1950,12 @@ function node_search_validate($form, &$f
   if (isset($form_state['values']['category']) && is_array($form_state['values']['category'])) {
     $keys = search_query_insert($keys, 'category', implode(',', $form_state['values']['category']));
   }
+  if ($form_state['author'] != '') {
+    $keys .= ' author:'.$form_state['author'];
+  }
+  if (($form_state['created-evaluator'] != '') && ($form_state['created-date'] != '') && is_int(strtotime($form_state['created-date']))) {
+    $keys .= ' created-evaluator:'.$form_state['created-evaluator'].' created-date:'.$form_state['created-date'];
+  }
   if ($form_state['values']['or'] != '') {
     if (preg_match_all('/ ("[^"]+"|[^" ]+)/i', ' '. $form_state['values']['or'], $matches)) {
       $keys .= ' '. implode(' OR ', $matches[1]);
