Index: event_views.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/event/contrib/event_views/event_views.module,v
retrieving revision 1.9
diff -c -r1.9 event_views.module
*** event_views.module	23 Jun 2006 18:02:14 -0000	1.9
--- event_views.module	29 Jun 2006 19:47:42 -0000
***************
*** 714,719 ****
--- 714,869 ----
    }
  }
  
+ /**
+  * Handle argument for event start time occurring after the argument value.
+  * Argument may be in format of a timestamp or a date string paseable by
+  * strtotime()
+  */
+ function event_views_handler_arg_start_time_after($op, &$query, $argtype, $arg = '') {
  
+   switch($op) {
+     case 'summary':
+       $fieldinfo['field'] = "event.event_start";
+       $fieldinfo['fieldname'] = 'event_start';
+       $query->ensure_table('event');
+       return $fieldinfo;
+     case 'sort':
+       $query->add_orderby(NULL, 'event_start', $argtype);
+       break;
+     case 'filter':
+       if (!is_numeric($arg)) {
+         $datetime = strtotime($arg);
+         if ($datetime === false) $datetime = now();
+       } else {
+         $datetime = intval($arg);
+       }
+       if ($datetime < 0) break;
+       $query->add_where("event.event_start > (" . $datetime . ")");
+       $query->ensure_table('event');
+       break;
+     case 'link':
+       if ($query->event_start > 0) {
+         return l(format_date($query->event_start, "large"), "$arg/$query->event_start");
+       }
+     case 'title':
+       if ($query->event_start > 0) {
+         return format_date($query->event_start);
+       }
+   }
+ }
+ 
+ /**
+  * Handle argument for event start time occurring before the argument value.
+  * Argument may be in format of a timestamp or a date string paseable by
+  * strtotime()
+  */
+ function event_views_handler_arg_start_time_before($op, &$query, $argtype, $arg = '') {
+ 
+   switch($op) {
+     case 'summary':
+       $fieldinfo['field'] = "event.event_start";
+       $fieldinfo['fieldname'] = 'event_start';
+       $query->ensure_table('event');
+       return $fieldinfo;
+     case 'sort':
+       $query->add_orderby(NULL, 'event_start', $argtype);
+       break;
+     case 'filter':
+       if (!is_numeric($arg)) {
+         $datetime = strtotime($arg);
+         if ($datetime === false) $datetime = now();
+       } else {
+         $datetime = intval($arg);
+       }
+       if ($datetime < 0) break;
+       $query->add_where("event.event_start < (" . $datetime . ")");
+       $query->ensure_table('event');
+       break;
+     case 'link':
+       if ($query->event_start > 0) {
+         return l(format_date($query->event_start, "large"), "$arg/$query->event_start");
+       }
+     case 'title':
+       if ($query->event_start > 0) {
+         return format_date($query->event_start);
+       }
+   }
+ }
+ 
+ /**
+  * Handle argument for event end time occurring after the argument value.
+  * Argument may be in format of a timestamp or a date string paseable by
+  * strtotime()
+  */
+ function event_views_handler_arg_end_time_after($op, &$query, $argtype, $arg = '') {
+ 
+   switch($op) {
+     case 'summary':
+       $fieldinfo['field'] = "event.event_end";
+       $fieldinfo['fieldname'] = 'event_end';
+       $query->ensure_table('event');
+       return $fieldinfo;
+     case 'sort':
+       $query->add_orderby(NULL, 'event_end', $argtype);
+       break;
+     case 'filter':
+       if (!is_numeric($arg)) {
+         $datetime = strtotime($arg);
+         if ($datetime === false) $datetime = now();
+       } else {
+         $datetime = intval($arg);
+       }
+       if ($datetime < 0) break;
+       $query->add_where("event.event_end > (" . $datetime . ")");
+       $query->ensure_table('event');
+       break;
+     case 'link':
+       if ($query->event_end > 0) {
+         return l(format_date($query->event_end, "large"), "$arg/$query->event_end");
+       }
+     case 'title':
+       if ($query->event_end > 0) {
+         return format_date($query->event_end);
+       }
+   }
+ }
+ 
+ /**
+  * Handle argument for event end time occurring before the argument value.
+  * Argument may be in format of a timestamp or a date string paseable by
+  * strtotime()
+  */
+ function event_views_handler_arg_end_time_before($op, &$query, $argtype, $arg = '') {
+ 
+   switch($op) {
+     case 'summary':
+       $fieldinfo['field'] = "event.event_end";
+       $fieldinfo['fieldname'] = 'event_end';
+       $query->ensure_table('event');
+       return $fieldinfo;
+     case 'sort':
+       $query->add_orderby(NULL, 'event_end', $argtype);
+       break;
+     case 'filter':
+       if (!is_numeric($arg)) {
+         $datetime = strtotime($arg);
+         if ($datetime === false) $datetime = now();
+       } else {
+         $datetime = intval($arg);
+       }
+       if ($datetime < 0) break;
+       $query->add_where("event.event_end < (" . $datetime . ")");
+       $query->ensure_table('event');
+       break;
+     case 'link':
+       if ($query->event_end > 0) {
+         return l(format_date($query->event_end, "large"), "$arg/$query->event_end");
+       }
+     case 'title':
+       if ($query->event_end > 0) {
+         return format_date($query->event_end);
+       }
+   }
+ }
  
  
Index: event_views_tables.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/event/contrib/event_views/event_views_tables.inc,v
retrieving revision 1.1
diff -c -r1.1 event_views_tables.inc
*** event_views_tables.inc	15 Jun 2006 11:14:12 -0000	1.1
--- event_views_tables.inc	29 Jun 2006 19:47:43 -0000
***************
*** 158,163 ****
--- 158,183 ----
        'handler' => 'event_views_handler_arg_week',
        'help' => t("Filter by the week number (1-52). Place this argument after a 'Year' argument."),
      ),
+     'event_start_time_after' => array(
+       'name' => t('Event: Start Time After'),
+       'handler' => 'event_views_handler_arg_start_time_after',
+       'help' => t('Filter by events starting after this date/time.  Should be in the format or a numeric timestamp or CCYY-MM-DD HH:MM:SS.'),
+     ),
+     'event_start_time_before' => array(
+       'name' => t('Event: Start Time Before'),
+       'handler' => 'event_views_handler_arg_start_time_before',
+       'help' => t('Filter by events starting before this date/time.  Should be in the format or a numeric timestamp or CCYY-MM-DD HH:MM:SS.'),
+     ),
+     'event_end_time_after' => array(
+       'name' => t('Event: End Time After'),
+       'handler' => 'event_views_handler_arg_end_time_after',
+       'help' => t('Filter by events whose end time is after this date/time.  Should be in the format or a numeric timestamp or CCYY-MM-DD HH:MM:SS.'),
+     ),
+     'event_end_time_before' => array(
+       'name' => t('Event: End Time Before'),
+       'handler' => 'event_views_handler_arg_end_time_before',
+       'help' => t('Filter by events whose end time is before this date/time.  Should be in the format or a numeric timestamp or CCYY-MM-DD HH:MM:SS.'),
+     ),
    );
    return $arguments;
  }
