Доброго времени суток. Не могу понять как сделать выборку по последнему месяцу типа ноды...
Есть тип ноды НОВОСТЬ
У нее есть поле filed_date типа Date
настроен аргумент у постраничного вывода на эту дату с детализацией по месяцу, по дефолту стоит текущая дата.
Допустим последние новости в декабре, а сейчас уже январь и вылезает пустая страница при отображении без явного указания аргумента.
Как сделать чтобы был последний существующий месяц?
Пробовал PHP-Code, что-то у меня вообще ничего не получилось, может я его не правильно писал конечно...
Помогите пожалуйста, уже весь мозг сломал...
Комментарии
Что писали в коде?
пробовал банально
такое на сработало.
может я что-то не так пробовал?
пробовал ставить фиксированную запись. Он выдает пустой текст.
Т.е. пишу 2008-12
А он говорит что SQL запрос пустой...
Блин, вроде такая элементарная вещь, а бьюсь уже 3-й день
Если поставить "Текущая дата" - то он делает выборку нормально... НО за этот месяц нет новостей... и получается что страничка пустая...
Сравнивай не даты а год и месяц, преобразовав текущюю дату и дату материала функцией DATE.
Или же отбирай даты в диапазоне
начало месяца >= дата материала < начало сл. месяца
задам вопрос по-другому
что мне написать в PHP-Code значения по-умолчанию, чтобы отобразить новости за Декабрь 2008 года?..
заранее спасибо за ответ.
Если использовать не свое поле, а дату создания новости (которую кстати можно менять при создании материала). То без PHP год и месяц новости задаются в агрументе строкой типа 200812.
Если дату создания хочешь сохранить неизменной, то можно пойти от обратного - сделать для нее свое поле, скрытое.
Есть ощущение, что где-то в модуле Date ошибочка. При передаче аргумента из php-кода, валидатор не получает значение, что бы ему не передавали. При передаче из строки адреса или из Fixed entry все нормально. Тогда как php-код не обрабатывается. Бегло посмотрел исходники - ничего не нашел, надо подробней смотреть Поэтому, на Вашем месте, я бы использовал дату создания ноды, как и предлагают выше.
Действительно полгода назад я тоже пытался использовать модуль, но потом какие-то косяки пошли с модулем. Я плюнул и просто от него отказался, тем более что обходные пути нашел. Плохая потдержка у модуля.
У views с полями даты вообще проблемы, на мой взгляд. Я тоже бился над решением некоторых своих задач, но через views этого сделать не сумел. Да и granularity дат с привязкой от большего к меньшему как-то «не катит».
Я правильно понимаю, что вы пробуете пользоваться такой опцией, как «действие при незаданном аргументе»? Попробуйте указать
return $abc
Только замените 123456 на дату размещения последней из имеющихся у вас новостей в том же формате, в котором их кушает Ваш views.
В том то и дело, что при передаче аргумента из php-кода, views ничего не кушает.
http://example.com/view/2009-01 - работает;
http://example.com/view - при настройке Fixed Entry 2009-01 - работает;
http://example.com/view - при наличии PHP-кода return '2009-01' - не работает.
Гм, вот ведь бред...