[РЕШЕНО, но криво]Изменение формата даты в пейджере календаря

Главные вкладки

Аватар пользователя protoftor protoftor 7 июля 2015 в 13:26

Доброго времени суток, уважаемые коллеги!
Вопрос по модулю Календарь у меня, точнее, по навигации в нем. У меня в навигации по месяцам отображается "среда, июля, 1, 2015", а надо-то "Июль 2015". Как это исправить, не залезая в код модуля,не подскажете?
Заранее благодарю!

Комментарии

Аватар пользователя protoftor protoftor 9 июля 2015 в 13:09

Уважаемый коллега, большое спасибо за ответ. К сожалению, то, что на этой странице есть, никак не влияет на пейджер. Пришлось-таки лезть в код... Результаты лазания таковы.
За пейджер отвечает вообще не CAlendar, а модуль Date Views, от которого этот календарь зависит.
В папке этого модуля лежит подпапка theme, в которой есть файл theme.inc, вот в нем-то и находится нужная функция, а именно theme_date_nav_title (строки 167-206). Ошибка, сколь я могу судить, не в ней самой, а в предыдущей функции (template_preprocess_date_views_pager), в которой неверно формируется массив $params, из коего берутся данные для работы самой theme_date_nav_title. Если присмотреться, то видно, что массив $params вообще не содержит элемента $params['format'], который нужен для корректной работы theme_date_nav_title. Каюсь, времени на то, чтобы исправить все культурно, у меня пока нет, сайт надо сдавать скоро. Поэтому на скорую руку исправил под свои конкретные нужды. ВОТ код этой злополучной theme_date_nav_title в исправленном виде.
function theme_date_nav_title($params) {
$granularity = $params['granularity'];
$view = $params['view'];
$date_info = $view->date_info;
$link = !empty($params['link']) ? $params['link'] : FALSE;
$format = !empty($params['format']) ? $params['format'] : NULL;
//$format_with_year = variable_get('date_views_' . $granularity . 'format_with_year', 'l, F j, Y');
$format_with_year = variable_get('date_views_' . $granularity . 'format_with_year', 'd.m.Y');
//$format_without_year = variable_get('date_views_' . $granularity . 'format_without_year', 'l, F j');
$format_without_year = variable_get('date_views_' . $granularity . 'format_without_year', 'd.m');
$format_without_day = variable_get('date_views_' . $granularity . 'format_without_day', 'F Y');
switch ($granularity) {
case 'year':
$title = $date_info->year;
$date_arg = $date_info->year;
break;
case 'month':
//$format = !empty($format) ? $format : (empty($date_info->mini) ? $format_with_year : $format_without_year);
//$format = !empty($format) ? $format : (empty($date_info->mini) ? $format_with_year : );
$format = !empty($format) ? $format : $format_without_day;
$title = date_format_date($date_info->min_date, 'custom', $format);
$date_arg = $date_info->year . '-' . date_pad($date_info->month);
break;
case 'day':
$format = !empty($format) ? $format : (empty($date_info->mini) ? $format_with_year : $format_without_year);
//$format = !empty($format) ? $format : $format_without_year);
$title = date_format_date($date_info->min_date, 'custom', $format);
$date_arg = $date_info->year . '-' . date_pad($date_info->month) . '-' . date_pad($date_info->day);
break;
case 'week':
$format = !empty($format) ? $format : (empty($date_info->mini) ? $format_with_year : $format_without_year);
$title = t('Week of @date', array('@date' => date_format_date($date_info->min_date, 'custom', $format)));
$date_arg = $date_info->year . '-W' . date_pad($date_info->week);
break;
}
if (!empty($date_info->mini) || $link) {
// Month navigation titles are used as links in the mini view.
$attributes = array('title' => t('View full page month'));
$url = date_pager_url($view, $granularity, $date_arg, TRUE);
return l($title, $url, array('attributes' => $attributes));
}
else {
return $title;
}
}
Выводит в блоке заголовок в виде "июль 2015", а в пейджере по дням в виде "09.07.2015". Если кому пригодится - буду рад, если есть исправленная версия этого модуля, нормально работающая без этих уродских "костылей" - буду очень благодарен за ссылку.