Всем привет!
Есть несколько вопросов по организации вывода объявлений юзера в его профиле.
Объявления выводятся лентой (тизерами). По умолчанию срок публикации - 4 недели, после чего еще 4 недели до полного удаления из базы.
Все работает с помощью рулс и рулс-планировщика.
Соответственно получаем активные и неактивные объявления.
1.Требуется вывести сколько осталось до снятия с публикации.
а)Добавить дополнительное (скрытое) поле, куда после отработки рулсов записывать дату снятия с публикации.
Еще не разобрался, как вывести время ДО, т.е. не голую дату, а до снятия осталось 2 дня 4 часа, например.
б)Не друпал-метод. Вычислить дату снятия прямо в шаблоне на основе даты создания/изменения и текущей даты.
в)Возможно есть более удачное решение.
Комментарии
Подскажите каким образом эту новую переменную передать в шаблон?
<?php
/**
* Implements hook_preprocess_node
*/
function mytheme_preprocess_node(&$variables) {
$is_advert=$variables['node']->type;
if($is_advert=='advert'){
$advert_created = $variables['node']->created;
$advert_delete = date("Y-m-d", strtotime($advert_created . ' +4 week'));
$advert_remain = (strtotime($advert_delete) - strtotime ($advert_delete));
}
}
?>
Получаем целых три переменные:
$advert_remain - водим в шаблоне
$advert_delete - думаю, записать в БД для упрощения дальнейших вычислений.
Странно, именно так и делал, но в массиве $node моей переменной нет.
Получается, что препроцесс вызывается перед рендерингом, а мне же нужно записать значение в БД непосредственно при сохранении ноды. В итоге добавил дополнительное поле, в которое закидываю результат вычисленный с помощью Рулс.
Естессно чистил
В template.php, тема называется evolution, просто в примере написал mytheme. Хук работает, я проверял. Сначала думал, что может условие не срабатывает, закрыл весь код в хуке, оставил только вашу сточку - не видно. Видимо глюк-какой-то.
Точно! Все поправил, все работает. Большое спасибо за помощь.