使用getResources和自定义日期电视,如何将我的结果限制在电视中输入的年份?

时间:2012-06-06 16:58:11

标签: modx modx-revolution

在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`]}`
]]

2 个答案:

答案 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]]`