0

在 MODx 革命中,在使用 getResources 和自定义日期电视(称为:press-release-date)时,如何按年份限制我的结果(使用 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`]}`
]]
4

2 回答 2

0

你可以试试tvFilters。但是您必须将您的日期格式转换[[+year]]为您的press-release-date日期格式并在 intertleave 中限制搜索:

&tvFilters=`press-release-date>=[[+year:dec:strtotime]]||press-release-date<=[[+year:strtotime]]`
于 2012-06-07T13:52:18.263 回答
0

您将要使用 &tvFilters 属性:http ://rtfm.modx.com/display/ADDON/getResources您可能还需要 &includeTVs、&includeTvsList 和~可能~还有 &processTVList。至于如何从 url 中删除 post 值,您可能需要编写一个快速的小片段来获取所有 url 变量并将它们设置为占位符。类似于:

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

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

}

然后你应该能够访问它们:

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

猜测...未经测试。:)

于 2012-06-06T18:41:13.610 回答