Как с помощью getResources и ТВ с пользовательской датой я могу ограничить свои результаты годом, введенным в моем ТВ?

В MODx Revolution, используя getResources и пользовательскую дату TV (называемую: дата пресс-релиза), как я могу ограничить свои результаты по годам (используя параметр URL для установки года, чтобы я мог ввести любой год)?

Например, мой URL-адрес имеет page.html?year=2012.

Я хочу, чтобы мои результаты от getResources включали только те, которые связаны с этим годом. Я считаю, что хочу использовать свойство &where (если это так, я, безусловно, ошибаюсь в форматировании):

&where=`{"press-release-date":[[*press-release-date:strtotime:date=`%Y`]:isequalto:`2012`]}`

я тоже пробовал

&where=`{[[*press-release-date]]:[[*press-release-date:strtotime:date=`%Y`]:isequalto:`2012`]}`

Спасибо!

ОБНОВЛЕНИЕ: это полный код, который я использую в настоящее время:

[[!getResources?
    &parents=`780,781,782,783,784`
    &tpl=`list-press-tpl`
    &limit=`1000`
    &sortdir=`DESC`
    &includeTVs=`1`
    &includeContent=`1` 
    &depth=`0`
    &showHidden=`1`
    &sortbyTV=`press-release-date`
    &where=`{[[*press-release-date]]:[[*press-release-date:strtotime:date=`%Y`]:isequalto:`2012`]}`
]]

person Jason Vendryes    schedule 06.06.2012    source источник
comment
В итоге я пошел другим путем, чтобы сэкономить время, но я оставляю этот вопрос открытым на случай, если у кого-то еще появятся отзывы в будущем. Спасибо всем!   -  person Jason Vendryes    schedule 07.06.2012


Ответы (2)


Вы захотите использовать атрибут &tvFilters: http://rtfm.modx.com/display/ADDON/getResources вам, вероятно, придется также включать &includeTVs, &includeTvsList и ~возможно~ также &processTVList. Что касается того, как удалить значение сообщения из URL-адреса, вам, возможно, придется написать небольшой фрагмент, который захватывает все ваши переменные URL-адреса и устанавливает их в качестве заполнителей. что-то вроде:

foreach($_POST as $key => $value){

$modx->setPlaceholder($key,$value);

}

Затем вы сможете получить к ним доступ:

&where=`{[[*press-release-date]]:[[*press-release-date:strtotime:date=`%Y`]:isequalto:`[[+year]]`]}`

навскидку... не проверял. :)

person Sean Kimball    schedule 06.06.2012

Вместо этого вы можете попробовать tvFilters. Но вам придется перевести ваш [[+year]] в ваш формат даты press-release-date и ограничить поиск внутри intertleave:

&tvFilters=`press-release-date>=[[+year:dec:strtotime]]||press-release-date<=[[+year:strtotime]]`
person amrok    schedule 07.06.2012