Здравствуйте, уважаемые товарищи.
Стоит задача. В блоге для каждой ноды ввести диапазон дат, например, с 5 по 10 июля 2014 года.
Добавил два поля тип Date (модуль Date), скрыл оба поля из отображения в настройках типа материала.
Хочу чтобы под заголовком выводилось: 5 - 10 июля 2014.
Для этого добавил шаблон node--article.tpl.php в папку с темой.
В нём после выхода заголовка добавил:
<?php
<div class="start-finish">
<?php
$dstart = format_date(strtotime($node->field_start_date['und'][0]['value']), "custom", "j");
$mstart = format_date(strtotime($node->field_start_date['und'][0]['value']), "custom", "n");
$mstart2 = format_date(strtotime($node->field_start_date['und'][0]['value']), "custom", "F");
$ystart = format_date(strtotime($node->field_start_date['und'][0]['value']), "custom", "Y");
$dfinish = format_date(strtotime($node->field_finish_date['und'][0]['value']), "custom", "j");
$mfinish = format_date(strtotime($node->field_finish_date['und'][0]['value']), "custom", "n");
$mfinish2 = format_date(strtotime($node->field_finish_date['und'][0]['value']), "custom", "F");
$yfinish = format_date(strtotime($node->field_finish_date['und'][0]['value']), "custom", "Y");
if (
$dstart == $dfinish && $mstart == $mfinish && $ystart == $yfinish) {
echo ($dstart.' '.$mstart2.' '.$ystart);
}
else {
if ($mstart == $mfinish) {
echo ($dstart.' - '.$dfinish.' '.$mstart2.' '.$ystart);
}
else {
echo ($dstart.' '.$mstart2.' - '.$dfinish.' '.$mfinish2.' '.$ystart);
}
}
?>
</div>
?>
Смысл этого кода следующий. Получаются отдельно день, год и месяц из полей ноды, сохраняются в переменные.
Задаётся условие, что
если дата старта равна дате финиша, то выводить дату одним числом (пример: 10 июля 2014)
иначе
если месяц старта равен месяцу финиша, то выводить дату в диапазоне (пример: 5 - 10 июля 2014)
иначе
выводить выводить (пример: 30 июня - 5 июля 2014)
конец условий
Это всё прекрасно работает самой ноде. Но мне необходимо это выводить в представлении Views под заголовком.
Здесь и столкнулся с проблемой. Никак не выходит.
Я не силён в программировании, тем более под Друпал, но может вы, уважаемые товарищи, подскажите куда смотреть и как это решить?
Спасибо.