--- calendar/src/CalendarHelper.php 2016-03-01 22:08:57.000000000 +0000 +++ calendar-rev/src/CalendarHelper.php 2016-04-04 03:36:03.713502100 +0000 @@ -16,6 +16,8 @@ use Drupal\views\Views; use Drupal\Component\Utility\Unicode; use Drupal\views\Plugin\views\argument\Date as ViewsDateArg; +use Drupal\field\Entity\FieldConfig; +use Drupal\Core\Entity; /** * Defines Gregorian Calendar date values. @@ -420,6 +422,7 @@ $tmp = explode('.', $name); $field_name = $tmp[1]; $table_name = $tmp[0]; + $handlername = strpos($field_name, '2' ) ? str_replace('2', '', $field_name) : $field_name;//@MYFIX // Unset the date filter to avoid ugly recursion and broken values. if ($field_name == 'date_filter') { @@ -431,7 +434,7 @@ // If we don't have a filter handler, we don't need to do anything more. $filterHandler = Views::handlerManager('filter'); - $handler = $filterHandler->getHandler(['table' => $table_name, 'field' => $field_name,]); + $handler = $filterHandler->getHandler(['table' => $table_name, 'field' => $handlername,]); if ($handler instanceof Broken) { continue; } @@ -449,7 +452,7 @@ // For Field module fields, get the date type. $custom = []; if ($field_name || isset($handler->definition['field_name'])) { -// $field = FieldConfig::loadByName($field_name); + // $field = field_info_field($handler->definition['field_name']); $is_field = TRUE; // switch ($field['type']) { @@ -471,31 +474,32 @@ // If this is not a date field, nothing more to do. continue; } - + //$field = FieldConfig::loadByName('node', 'event', $field_name); // $revision = in_array($base, array('node_revision')) ? FIELD_LOAD_REVISION : FIELD_LOAD_CURRENT; // @todo find database info -// $db_info = date_api_database_info($field, $revision); +// $db_info = array( +// 'columns' => $field['storage']['details']['sql'][FIELD_LOAD_CURRENT] +// ); + + // $name = $table_name . "." . $field_name; $grans = ['year', 'month', 'day', 'hour', 'minute', 'second']; $granularity = !empty($field['granularity']) ? $field['granularity'] : $grans; -// $fromto = array( -// $table_name . '.' . $db_info['columns'][$table_name]['value'], -// $table_name . '.' . (!empty($field['settings']['todate']) ? $db_info['columns'][$table_name]['value2'] : $db_info['columns'][$table_name]['value']), -// ); - + $fromto = array( + $table_name . '.' . 'field_event_date_value', + $table_name . '.' . 'field_event_date_value2', + ); // if (isset($field['settings']['tz_handling'])) { // $tz_handling = $field['settings']['tz_handling']; // $db_info = date_api_database_info($field, $revision); // if ($tz_handling == 'date') { // $offset_field = $table_name . '.' . $db_info['columns'][$table_name]['offset']; // } -// $related_fields = array( -// $table_name . '.' . $db_info['columns'][$table_name]['value'], -// ); -// if (isset($db_info['columns'][$table_name]['value2'])) { -// $related_fields = array_merge($related_fields, array($table_name . '.' . $db_info['columns'][$table_name]['value2'])); -// } + $related_fields = array( + $table_name . '.' . 'field_event_date_value', + $table_name . '.' . 'field_event_date_value2', + ); // if (isset($db_info['columns'][$table_name]['timezone'])) { // $related_fields = array_merge($related_fields, array($table_name . '.' . $db_info['columns'][$table_name]['timezone'])); // $timezone_field = $table_name . '.' . $db_info['columns'][$table_name]['timezone']; @@ -523,7 +527,7 @@ // } } // Don't do anything if this is not a date field we can handle. - if (!empty($type) || empty($custom)) { + if ($table_name == 'node__field_event_date') { $alias = str_replace('.', '_', $alias); $fields['name'][$name] = [ 'is_field' => $is_field,