array( 'left_field' => 'nid', 'field' => 'nid', ), ); $data['event']['event_start'] = array( 'title' => t('Start Date'), 'help' => t('The start Date of the Event.'), 'field' => array( 'handler' => 'event_handler_field_date', 'click sortable' => TRUE, 'additional fields' => array('event_start', 'event_end', 'timezone'), 'option' => 'string', ), 'argument' => array( 'handler' => 'event_handler_argument_fulldate', 'field' => 'event_start', ), 'filter' => array( 'field' => 'event_start', 'label' => t('Start Date'), 'operator' => 'event_handler_filter_date', 'value' => array( '#type' => 'textfield', '#attributes' => array('class' => 'jscalendar'), ), 'option' => 'string', 'handler' => 'event_handler_filter_date', 'help' => t('This filter allows events to be filtered by their start date. '), ), 'sort' => array( 'handler' => 'views_handler_sort_date', 'label' => t('Start Date'), ), ); $data['event']['event_end'] = array( 'title' => t('End Date'), 'help' => t('The end date of the Event.'), 'field' => array( 'handler' => 'event_handler_field_date', 'click sortable' => TRUE, 'additional fields' => array('event_start', 'event_end', 'timezone'), 'option' => 'string', ), 'argument' => array( 'handler' => 'event_handler_argument_fulldate', 'field' => 'event_end', ), 'filter' => array( 'field' => 'event_end', 'label' => t('End Date'), 'operator' => 'event_handler_filter_date', 'value' => array( '#type' => 'textfield', '#attributes' => array('class' => 'jscalendar'), ), 'option' => 'string', 'handler' => 'event_handler_filter_date', 'help' => t('This filter allows events to be filtered by their end date.'), ), 'sort' => array( 'handler' => 'views_handler_sort_date', 'label' => t('End Date'), ), ); $data['event']['timezone'] = array( 'title' => t('Timezone'), 'help' => t('The timezone of the Event.'), 'field' => array( 'handler' => 'event_handler_field_timezone', 'click sortable' => TRUE, 'query handler' => 'event_views_query_handler', 'option' => 'string', ), ); $data['event']['start_year'] = array( 'title' => t('Start Year'), 'help' => t('Start Date Year'), 'real field' => 'event_start', 'filter' => array( 'field' => 'event_start', 'label' => t('Start Year'), 'handler' => 'event_handler_filter_year', 'help' => t('Filter by year.'), ), 'argument' => array( 'handler' => 'event_handler_argument_year', 'field' => 'event_start', ), ); $data['event']['start_month'] = array( 'title' => t('Start Month'), 'help' => t('Start Date Month'), 'real field' => 'event_start', 'filter' => array( 'field' => 'event_start', 'label' => t('Start Month'), 'handler' => 'event_handler_filter_month', 'help' => t('Filter by month.'), ), 'argument' => array( 'handler' => 'event_handler_argument_month', 'field' => 'event_start', ), ); $data['event']['start_day'] = array( 'title' => t('Start Day'), 'help' => t('Start Day'), 'real field' => 'event_start', 'filter' => array( 'field' => 'event_start', 'label' => t('Start Day'), 'handler' => 'event_handler_filter_day', 'help' => t('Filter by day.'), ), 'argument' => array( 'handler' => 'event_handler_argument_day', 'field' => 'event_start', ), ); $data['event']['start_week'] = array( 'title' => t('Start Week'), 'help' => t('Filter by the week number (1-52). Place this argument after a "Year" argument.'), 'real field' => 'event_start', 'argument' => array( 'handler' => 'event_handler_argument_week', 'field' => 'event_start', ), ); $data['event']['end_year'] = array( 'title' => t('End Year'), 'help' => t('End Date Year'), 'real field' => 'event_end', 'filter' => array( 'field' => 'event_end', 'label' => t('End Year'), 'handler' => 'event_handler_filter_year', 'help' => t('Filter by year.'), ), 'argument' => array( 'handler' => 'event_handler_argument_year', 'field' => 'event_end', ), ); $data['event']['end_month'] = array( 'title' => t('End Month'), 'help' => t('End Date Month'), 'real field' => 'event_end', 'filter' => array( 'field' => 'event_end', 'label' => t('End Month'), 'handler' => 'event_handler_filter_month', 'help' => t('Filter by month.'), ), 'argument' => array( 'handler' => 'event_handler_argument_month', 'field' => 'event_end', ), ); $data['event']['end_day'] = array( 'title' => t('End Day'), 'help' => t('End Day'), 'real field' => 'event_end', 'filter' => array( 'field' => 'event_end', 'label' => t('End Day'), 'handler' => 'event_handler_filter_day', 'help' => t('Filter by day.'), ), 'argument' => array( 'handler' => 'event_handler_argument_day', 'field' => 'event_end', ), ); $data['event']['end_week'] = array( 'title' => t('End Week'), 'help' => t('Filter by the week number (1-52). Place this argument after a "Year" argument.'), 'real field' => 'event_end', 'argument' => array( 'handler' => 'event_handler_argument_week', 'field' => 'event_end', ), ); return $data; } /** * Implementation of hook_views_data_alter(). */ function event_views_data_alter(&$data) { // event enabled node types $data['node']['event_types'] = array( 'group' => t('Event'), 'title' => t('Type'), 'help' => t('Event enabled node types'), 'real field' => 'type', 'filter' => array( 'handler' => 'event_handler_filter_node_type', ), ); } /** * Implementation of hook_views_handlers() to register all of the basic handlers * views uses. */ function event_views_handlers() { return array( 'info' => array( 'path' => drupal_get_path('module', 'event') . '/includes', ), 'handlers' => array( // field handlers 'event_handler_field_date' => array( 'parent' => 'views_handler_field_date', ), 'event_handler_field_timezone' => array( 'parent' => ' views_handler_field', ), // argument handlers 'event_handler_argument_fulldate' => array( 'parent' => 'views_handler_argument_date', ), 'event_handler_argument_year' => array( 'parent' => 'views_handler_argument_date', ), 'event_handler_argument_month' => array( 'parent' => 'views_handler_argument_date', ), 'event_handler_argument_day' => array( 'parent' => 'views_handler_argument_date', ), 'event_handler_argument_week' => array( 'parent' => 'views_handler_argument_date', ), // filters 'event_handler_filter_node_type' => array( 'parent' => 'views_handler_filter_node_type', ), 'event_handler_filter_year' => array( 'parent' => 'views_handler_filter_numeric', ), 'event_handler_filter_month' => array( 'parent' => 'views_handler_filter_numeric', ), 'event_handler_filter_day' => array( 'parent' => 'views_handler_filter_numeric', ), 'event_handler_filter_date' => array( 'parent' => 'views_handler_filter_date', ), ), ); }