Index: modules/node/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' => '
',
+ '#suffix' => '
',
+ );
+ $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]);