--- eventrepeat.module.old	2007-10-30 10:37:55.838405202 +0100
+++ eventrepeat.module	2007-10-30 10:38:15.871125951 +0100
@@ -2526,3 +2526,50 @@ function eventrepeat_debug() {
   return $output;
 
 }
+
+function eventrepeat_views_tables() {
+  return array(
+    'event_repeat' => array(
+      'name' =>'event_repeat',
+              
+     'filters' => array(
+        'view_type_selector' => array(
+          'field' => 'rid',
+          'name' => t('Event_repeat: First of a repeated event'),
+          'operator' => 'views_handler_operator_yesno',
+          'value'=>array('#type' => 'select','#options' => array('yes')),
+          'help' => t('A view selector, for use with repeated events.'),
+          'handler' => eventrepeat_views_filter_handler,
+        ),
+      ),
+     ),
+     );
+}
+
+function eventrepeat_views_filter_handler($op, $filterdata, $filterinfo, &$query)
+{
+
+  $query->add_table('event_repeat_nodes', false, 1, array(
+        'left'=>array(
+          'table'=>'node',
+          'field'=>'nid'
+          ),
+        'right' => array(
+          'field' => 'nid'
+          )
+        )
+    );
+  
+  $query->add_table('event_repeat', false, 1, array(
+        'left'=>array(
+          'table'=>'event_repeat_nodes',
+          'field'=>'rid'
+          ),
+        'right' => array(
+          'field' => 'rid'
+          )
+        )
+    );
+  $query->add_where("LOCATE(CONCAT('s:3:\"nid\";i:', CAST(node.nid AS CHAR)),event_repeat.repeat_data) OR LOCATE(CONCAT('s:3:\"nid\";s:',CAST(LENGTH(CAST(node.nid AS CHAR)) AS CHAR),':\"', CAST(node.nid AS CHAR)),event_repeat.repeat_data)");
+  
+}
