在MODx Revolution中,在使用getResources和自定义日期电视(称为:按下发布日期)时,如何按年限制结果(使用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`]}`
]]
答案 0 :(得分:0)
您将要使用& tvFilters属性:http://rtfm.modx.com/display/ADDON/getResources您可能还需要& includeTVs,& includeTvsList以及〜可能〜还有& processTVList。至于如何从网址中删除帖子值,你可能需要写一个快速的小片段来抓取你的所有网址变量&将它们设置为占位符。类似的东西:
foreach($_POST as $key => $value){
$modx->setPlaceholder($key,$value);
}
然后你应该能够访问它们:
&where=`{[[*press-release-date]]:[[*press-release-date:strtotime:date=`%Y`]:isequalto:`[[+year]]`]}`
猜测......未经测试。:)
答案 1 :(得分:0)
您可以尝试使用tvFilters
。但是,您必须将[[+year]]
转换为press-release-date
日期格式,并限制在intertleave中搜索:
&tvFilters=`press-release-date>=[[+year:dec:strtotime]]||press-release-date<=[[+year:strtotime]]`