I have a view to display list of my events starting at a specified time. The default date is set to 'now'. The list of events rendered by the view does not start from today as 'now' parameter would suggest. Instead of I'm getting list of all events from the very first one from before a year ago.
If I hit the Apply button on the exposed filter the problem disappears.
Basically the SQL query the view construct has a malformed date string as a condition:
SELECT node.nid AS nid,
node_data_field_eventstart.field_eventstart_value AS node_data_field_eventstart_field_eventstart_value,
node_data_field_eventstart.field_eventstart_value2 AS node_data_field_eventstart_field_eventstart_value2,
node_data_field_eventstart.nid AS node_data_field_eventstart_nid,
node.type AS node_type,
node.title AS node_title,
node_revisions.teaser AS node_revisions_teaser,
node_revisions.format AS node_revisions_format
FROM node node
LEFT JOIN content_field_eventstart node_data_field_eventstart ON node.vid = node_data_field_eventstart.vid
LEFT JOIN node_revisions node_revisions ON node.vid = node_revisions.vid
WHERE ((node.type in ('calendar_event')) AND (node.status <> 0))
AND (DATE_FORMAT(node_data_field_eventstart.field_eventstart_value, '%Y-%m-%d') >= '0009-03-18')
ORDER BY node_data_field_eventstart_field_eventstart_value ASC
The code renders current date as '0009-03-18'. Similar problem was described on http://drupal.org/node/386406#comment-1340322
Drupal 6.9 and 6.10
Calendar 6.x-2.0
Date 6.x-2.0 and 6.x-2.x-dev (20009-Mar-09)
Views 6.x-2.3
PHP 5.2.6 and 5.2.8
View
$view = new view;
$view->name = 'event_calendar';
$view->description = 'Event Calendar with grid and list views and exposed filters.';
$view->tag = 'WC';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'title' => array(
'label' => '',
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
'field_eventstart_value' => array(
'label' => '',
'link_to_node' => 0,
'label_type' => 'none',
'format' => 'default',
'multiple' => array(
'group' => TRUE,
'multiple_number' => '',
'multiple_from' => '',
'multiple_reversed' => FALSE,
),
'exclude' => 0,
'id' => 'field_eventstart_value',
'table' => 'node_data_field_eventstart',
'field' => 'field_eventstart_value',
'relationship' => 'none',
),
'teaser' => array(
'label' => 'Teaser',
'exclude' => 1,
'id' => 'teaser',
'table' => 'node_revisions',
'field' => 'teaser',
'relationship' => 'none',
),
));
$handler->override_option('arguments', array(
'date_argument' => array(
'default_action' => 'default',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'All',
'title' => '',
'default_argument_type' => 'date',
'default_argument' => '',
'validate_type' => 'none',
'validate_fail' => 'not found',
'date_fields' => array(
'node_data_field_eventstart.field_eventstart_value' => 'node_data_field_eventstart.field_eventstart_value',
),
'date_method' => 'OR',
'granularity' => 'month',
'id' => 'date_argument',
'table' => 'node',
'field' => 'date_argument',
'relationship' => 'none',
'default_argument_user' => 0,
'default_argument_fixed' => '',
'default_argument_php' => '',
'validate_argument_node_type' => array(
'webform' => 0,
'poll' => 0,
'forum' => 0,
'article' => 0,
'book' => 0,
'calendar_event' => 0,
'glossary_term' => 0,
'page' => 0,
'playground' => 0,
'presentation' => 0,
'training' => 0,
'wx_og' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'validate_argument_vocabulary' => array(
'1' => 0,
'14' => 0,
'12' => 0,
'15' => 0,
'8' => 0,
'2' => 0,
'3' => 0,
'11' => 0,
'4' => 0,
'9' => 0,
'6' => 0,
'5' => 0,
'13' => 0,
),
'validate_argument_type' => 'tid',
'validate_argument_php' => '',
'default_options_div_prefix' => '',
'validate_argument_is_member' => 0,
),
));
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'calendar_event' => 'calendar_event',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
'tid' => array(
'operator' => 'or',
'value' => array(),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'tid_op',
'identifier' => 'tid_1',
'label' => 'Filter by: event type and/or by',
'optional' => 1,
'single' => 0,
'remember' => 1,
'reduce' => 0,
),
'type' => 'select',
'vid' => '12',
'id' => 'tid',
'table' => 'term_node',
'field' => 'tid',
'hierarchy' => 1,
'relationship' => 'none',
'reduce_duplicates' => 0,
'override' => array(
'button' => 'Override',
),
),
'tid_1' => array(
'operator' => 'or',
'value' => array(),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'tid_1_op',
'identifier' => 'tid_2',
'label' => 'Workday Update',
'optional' => 1,
'single' => 0,
'remember' => 1,
'reduce' => 0,
),
'type' => 'select',
'vid' => '8',
'id' => 'tid_1',
'table' => 'term_node',
'field' => 'tid',
'hierarchy' => 0,
'relationship' => 'none',
'reduce_duplicates' => 0,
'override' => array(
'button' => 'Override',
),
),
));
$handler->override_option('access', array(
'type' => 'role',
'role' => array(
'2' => 2,
),
));
$handler->override_option('title', 'Event Calendar');
$handler->override_option('header', 'Please select one of the filters and click Apply button to filter down by the specific categories.
<ul>
<li>Select multiple non-contiguous categories in one filter with Ctrl button pressed.</li>
<li>Select multiple contiguous categories in one filter with Shift button.</li>
<li>Deselect filter clicking on highlighted item with Ctrl button pressed.</li>
</ul>');
$handler->override_option('header_format', '2');
$handler->override_option('header_empty', 0);
$handler->override_option('footer_format', '2');
$handler->override_option('footer_empty', 0);
$handler->override_option('empty', 'There are no events for the filters you have selected.
Please select different filters.');
$handler->override_option('empty_format', '2');
$handler->override_option('use_ajax', TRUE);
$handler->override_option('items_per_page', 0);
$handler->override_option('style_plugin', 'calendar_nav');
$handler = $view->new_display('calendar', 'Calendar page', 'calendar_1');
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'calendar_event' => 'calendar_event',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
));
$handler->override_option('header', '');
$handler->override_option('path', 'calendar/grid');
$handler->override_option('menu', array(
'type' => 'default tab',
'title' => 'Calendar',
'description' => '',
'weight' => '0',
'name' => 'navigation',
));
$handler->override_option('tab_options', array(
'type' => 'normal',
'title' => 'Calendar',
'description' => '',
'weight' => '0',
));
$handler->override_option('calendar_colors', array(
'page' => '#ffff66',
'story' => '#668cff',
));
$handler->override_option('calendar_colors_vocabulary', array());
$handler->override_option('calendar_colors_taxonomy', array());
$handler->override_option('calendar_popup', 0);
$handler->override_option('calendar_date_link', '');
$handler = $view->new_display('calendar_period', 'Year view', 'calendar_period_2');
$handler->override_option('header', '');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
'display_type' => 'year',
'name_size' => '1',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', 1);
$handler->override_option('displays', array(
'calendar_1' => 'calendar_1',
'default' => 0,
'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'year');
$handler = $view->new_display('calendar_period', 'Month view', 'calendar_period_1');
$handler->override_option('header', '');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
'name_size' => '99',
'with_weekno' => '0',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', 1);
$handler->override_option('displays', array(
'calendar_1' => 'calendar_1',
'default' => 0,
'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'month');
$handler = $view->new_display('calendar_period', 'Day view', 'calendar_period_3');
$handler->override_option('header', '');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
'display_type' => 'day',
'name_size' => '99',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', 1);
$handler->override_option('displays', array(
'calendar_1' => 'calendar_1',
'default' => 0,
'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'day');
$handler = $view->new_display('calendar_period', 'Week view', 'calendar_period_4');
$handler->override_option('header', '');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
'display_type' => 'week',
'name_size' => '99',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', 1);
$handler->override_option('displays', array(
'calendar_1' => 'calendar_1',
'default' => 0,
'calendar_block_1' => 0,
));
$handler->override_option('calendar_type', 'week');
$handler = $view->new_display('calendar_block', 'Calendar block', 'calendar_block_1');
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'calendar_event' => 'calendar_event',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
));
$handler->override_option('header', '');
$handler->override_option('block_description', 'Calendar');
$handler->override_option('block_caching', -1);
$handler = $view->new_display('calendar_period', 'Block view', 'calendar_period_5');
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'calendar_event' => 'calendar_event',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
'tid' => array(
'operator' => 'or',
'value' => array(),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => 'tid_op',
'label' => 'Filter by: event type and/or by',
'use_operator' => 0,
'identifier' => 'tid_1',
'optional' => 1,
'single' => 0,
'remember' => 0,
'reduce' => 0,
),
'type' => 'select',
'vid' => '12',
'id' => 'tid',
'table' => 'term_node',
'field' => 'tid',
'hierarchy' => 0,
'relationship' => 'none',
'reduce_duplicates' => 0,
'override' => array(
'button' => 'Use default',
),
),
'tid_1' => array(
'operator' => 'or',
'value' => array(),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => 'tid_1_op',
'label' => 'Workday Update',
'use_operator' => 0,
'identifier' => 'tid_2',
'optional' => 1,
'single' => 0,
'remember' => 1,
'reduce' => 0,
),
'type' => 'select',
'vid' => '8',
'id' => 'tid_1',
'table' => 'term_node',
'field' => 'tid',
'hierarchy' => 0,
'relationship' => 'none',
'reduce_duplicates' => 0,
'override' => array(
'button' => 'Use default',
),
),
));
$handler->override_option('header', '');
$handler->override_option('style_plugin', 'calendar_style');
$handler->override_option('style_options', array(
'display_type' => 'month',
'name_size' => '1',
));
$handler->override_option('attachment_position', 'after');
$handler->override_option('inherit_arguments', TRUE);
$handler->override_option('inherit_exposed_filters', 0);
$handler->override_option('displays', array(
'calendar_1' => 0,
'default' => 0,
'calendar_block_1' => 'calendar_block_1',
));
$handler->override_option('calendar_type', 'month');
$handler = $view->new_display('page', 'List view', 'page_1');
$handler->override_option('fields', array(
'field_eventstart_value' => array(
'label' => '',
'link_to_node' => 0,
'label_type' => 'none',
'format' => 'default',
'multiple' => array(
'group' => TRUE,
'multiple_number' => '',
'multiple_from' => '',
'multiple_reversed' => FALSE,
),
'exclude' => 0,
'id' => 'field_eventstart_value',
'table' => 'node_data_field_eventstart',
'field' => 'field_eventstart_value',
'relationship' => 'none',
),
'title' => array(
'label' => '',
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
'teaser' => array(
'label' => '',
'exclude' => 0,
'id' => 'teaser',
'table' => 'node_revisions',
'field' => 'teaser',
'relationship' => 'none',
),
));
$handler->override_option('sorts', array(
'field_eventstart_value' => array(
'order' => 'ASC',
'id' => 'field_eventstart_value',
'table' => 'node_data_field_eventstart',
'field' => 'field_eventstart_value',
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
),
));
$handler->override_option('arguments', array());
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'calendar_event' => 'calendar_event',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
'tid' => array(
'operator' => 'or',
'value' => array(),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'operator' => 'tid_op',
'label' => 'Select event type:',
'use_operator' => 0,
'identifier' => 'tid_1',
'optional' => 1,
'single' => 0,
'remember' => 0,
'reduce' => 0,
),
'type' => 'select',
'vid' => '12',
'id' => 'tid',
'table' => 'term_node',
'field' => 'tid',
'hierarchy' => 1,
'relationship' => 'none',
'reduce_duplicates' => 0,
'override' => array(
'button' => 'Use default',
),
),
'tid_1' => array(
'operator' => 'or',
'value' => array(),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'tid_1_op',
'identifier' => 'tid_2',
'label' => 'Select update:',
'optional' => 1,
'single' => 0,
'remember' => 0,
'reduce' => 0,
),
'type' => 'select',
'vid' => '8',
'id' => 'tid_1',
'table' => 'term_node',
'field' => 'tid',
'hierarchy' => 0,
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
'reduce_duplicates' => 0,
),
'date_filter' => array(
'operator' => '>=',
'value' => array(
'value' => NULL,
'min' => NULL,
'max' => NULL,
'default_date' => 'now',
'default_to_date' => '',
),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'date_filter_op',
'identifier' => 'date_filter',
'label' => 'Select event start date:',
'optional' => 1,
'remember' => 0,
),
'date_fields' => array(
'node_data_field_eventstart.field_eventstart_value' => 'node_data_field_eventstart.field_eventstart_value',
),
'date_method' => 'OR',
'granularity' => 'day',
'form_type' => 'date_select',
'default_date' => 'now',
'default_to_date' => '',
'year_range' => '-3:+3',
'id' => 'date_filter',
'table' => 'node',
'field' => 'date_filter',
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
),
));
$handler->override_option('items_per_page', 10);
$handler->override_option('use_pager', 'mini');
$handler->override_option('style_plugin', 'list');
$handler->override_option('row_options', array(
'inline' => array(
'title' => 'title',
'field_eventstart_value' => 'field_eventstart_value',
),
'separator' => ' | ',
));
$handler->override_option('path', 'calendar/list');
$handler->override_option('menu', array(
'type' => 'tab',
'title' => 'List',
'description' => '',
'weight' => '1',
'name' => 'navigation',
));
$handler->override_option('tab_options', array(
'type' => 'none',
'title' => '',
'description' => '',
'weight' => 0,
));
$handler = $view->new_display('block', 'List block', 'block_1');
$handler->override_option('fields', array(
'title' => array(
'label' => '',
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
'field_eventstart_value' => array(
'label' => '',
'link_to_node' => 0,
'label_type' => 'none',
'format' => 'default',
'multiple' => array(
'group' => TRUE,
'multiple_number' => '',
'multiple_from' => '',
'multiple_reversed' => FALSE,
),
'exclude' => 0,
'id' => 'field_eventstart_value',
'table' => 'node_data_field_eventstart',
'field' => 'field_eventstart_value',
'relationship' => 'none',
),
));
$handler->override_option('sorts', array(
'field_eventstart_value' => array(
'order' => 'ASC',
'id' => 'field_eventstart_value',
'table' => 'node_data_field_eventstart',
'field' => 'field_eventstart_value',
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
),
));
$handler->override_option('arguments', array(
'date_argument' => array(
'default_action' => 'ignore',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'All',
'title' => '',
'default_argument_type' => 'date',
'default_argument' => '',
'validate_type' => 'none',
'validate_fail' => 'not found',
'date_fields' => array(
'node_data_field_eventstart.field_eventstart_value' => 'node_data_field_eventstart.field_eventstart_value',
),
'year_range' => '-3:+3',
'date_method' => 'OR',
'granularity' => 'day',
'id' => 'date_argument',
'table' => 'node',
'field' => 'date_argument',
'relationship' => 'none',
'default_argument_user' => 0,
'default_argument_fixed' => '',
'default_argument_php' => '',
'validate_argument_node_type' => array(
'webform' => 0,
'poll' => 0,
'forum' => 0,
'book' => 0,
'calendar_event' => 0,
'glossary_term' => 0,
'news' => 0,
'page' => 0,
'playground' => 0,
'presentation' => 0,
'training' => 0,
'wx_og' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'validate_argument_vocabulary' => array(
'1' => 0,
'14' => 0,
'12' => 0,
'15' => 0,
'8' => 0,
'2' => 0,
'3' => 0,
'11' => 0,
'4' => 0,
'9' => 0,
'6' => 0,
'5' => 0,
'13' => 0,
),
'validate_argument_type' => 'tid',
'validate_argument_php' => '',
'default_options_div_prefix' => '',
'validate_argument_is_member' => 0,
'override' => array(
'button' => 'Use default',
),
),
));
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'calendar_event' => 'calendar_event',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
'date_filter' => array(
'operator' => '>=',
'value' => array(
'value' => NULL,
'min' => NULL,
'max' => NULL,
'default_date' => 'now',
'default_to_date' => '',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => 'date_filter_op',
'label' => 'Date: Date',
'use_operator' => 0,
'identifier' => 'date_filter',
'optional' => 1,
'remember' => 0,
),
'date_fields' => array(
'node_data_field_eventstart.field_eventstart_value' => 'node_data_field_eventstart.field_eventstart_value',
),
'date_method' => 'OR',
'granularity' => 'day',
'form_type' => 'date_select',
'default_date' => 'now',
'default_to_date' => '',
'year_range' => '-3:+3',
'id' => 'date_filter',
'table' => 'node',
'field' => 'date_filter',
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
),
));
$handler->override_option('title', 'Upcoming Events');
$handler->override_option('header', '');
$handler->override_option('items_per_page', 3);
$handler->override_option('use_more', 1);
$handler->override_option('link_display', 'page_1');
$handler->override_option('style_plugin', 'list');
$handler->override_option('style_options', array(
'grouping' => '',
'type' => 'ul',
));
$handler->override_option('block_description', 'Calendar Upcoming Events List');
$handler->override_option('block_caching', -1);
View used is called List view.
I've tried to debug the code but it's Date module's internal logic is beyond my expertise.
What I found out is that for the subsequent invocation of form_builder function for $form children (year, month, day, hour etc.) in line 833 of form.inc parent element of year, month, day etc. $form_state[values][date_filter][value] is being overridden inside form_set_value.
It's initial value of 2009-03-18 16:46:59 eventually transforms to 0009-03-18 16:46:59. I assume that a Date module is providing a wrongly formated date parameter for the form processing functions.
Comments
Comment #1
Peter Swietoslawski commentedI have a view to display list of my events starting at a specified time. The default date is set to 'now'. The list of events rendered by the view does not start from today as 'now' parameter would suggest. Instead of I'm getting list of all events from the very first one from before a year ago.
If I hit the Apply button on the exposed filter the problem disappears.
Basically the SQL query the view construct has a malformated date condition:
The code renders current date as '0009-03-18'. Similar problem was described on http://drupal.org/node/386406#comment-1340322
Drupal 6.9 and 6.10
Calendar 6.x-2.0
Date 6.x-2.0 and 6.x-2.x-dev (20009-Mar-09)
Views 6.x-2.3
PHP 5.2.6 and 5.2.8
I've tried to debug the code but it's Date module's internal logic is beyond my expertise.
What I found out is that for the subsequent invocation of form_builder function for $form children (year, month, day, hour etc.) in line 833 of form.inc parent element of year, month, day etc. $form_state[values][date_filter][value] is being overridden inside form_set_value.
It's initial value of 2009-03-18 16:46:59 eventually transforms to 0009-03-18 16:46:59. I assume that a Date module is providing a wrongly formated date parameter for the form processing functions.
Comment #2
karens commentedThe issue you refer to was fixed in -dev, and I cannot reproduce your problem in -dev either.
Comment #3
Peter Swietoslawski commentedKaren I've just done clean install of Drupal as follows:
Drupal 6.10
Calendar 6.x-2.0
CCK 6.x-2.2
Date 6.x-2.x-dev (March 24)
Views 6.x-2.3
And upon building such a simple view:
When live-previewing 'List view' display the SQL looks like
When I hit Apply button on exposed Date filter the SQL looks properly
Comment #4
karens commentedDon't mix the -dev version of Date with an older version of Calendar (2.0), there's no telling what you'll run into. Use the latest -dev of both or use the latest official release of both.
Comment #5
Peter Swietoslawski commentedOk my fault, Karen.
I've did another clean install of Drupal 6.10 with with absolute minimal setup to have calendar working (attached screenshots for more details Modules-for-Calendar-Date-on-Dev.png):
Date 6.x-2.x-dev (2009-Feb-24)
Calendar 6.x-2.x-dev (2009-Feb-28)
Views 6.x-2.3
I no longer use any custom CCK's Date fields.
Here is my view
As it would be to much writting I've attached screenshot of following three use cases:
1. The Not-Exposed-date-filter-generate-wrong-date-format-string screenshot shows live preview of this view with filter not exposed. The date is picked up and formated correctly. However there is another issue with format string for day which in dev version now is malformed and shows %%d.
2. The Exposed-filter---Preview-button screenshot shows live preview of view with exposed filter and Preview button used. As you can see the date string is malformed with year being '0009'.
3. And finally Exposed-filter---Apply-button screenshot shows live preview of view with exposed filter and Apply button used. The date string is now ok but formating string for day is malformed.
Hope this is more clear now.
Comment #6
karens commentedThis view won't create any logical results -- you have both a Date argument and a Date filter. The date argument will limit the results to a specific date, the filter will have no effect at all after that. You want one or the other. Using both together also has some bugs where they get in the way of each other (reported elsewhere) but in this case I think it is a mistake to try to use both and your problem will be fixed by getting rid of one of them.
The double '%%' is not a bug, it is needed to keep the 'd' from getting stripped out of the final results.
Comment #7
karens commentedThere is also an issue #411496: Exposed filter date query is '0009' not '2009' when using 'select' widget that might be the problem with the exposed filter, but that is reported already.
Comment #8
Peter Swietoslawski commentedLooks like my issue indeed duplicates #411496: Exposed filter date query is '0009' not '2009' when using 'select' widget. I'll just check there for updates on the case however it is marked as fixed?
Thanks for your quick response and of course you are right that setting attribute and filter on Date didn't make sense.