如何使用getResources(Modx)仅显示特定年份的资源?

时间:2016-01-13 20:21:53

标签: modx modx-getresources

我想只显示2015年发布的资源。

我试过了:

&where=`{"publishedon:":2015}`

但这不起作用。有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

publishedon在数据库中保存为unix时间。所以你必须将你的日期(2015)转换为unix时间并用它来检查日期范围。

使用以下代码创建名为 inyear 的代码段:

<?php
$year = $modx->getOption('year', $scriptProperties, '');
$where = $modx->getOption('where', $scriptProperties, false);
$where = is_array($where) ? $where : json_decode($where, true);
$where = ($where) ? $where : array();

if ($year) {
    $where[] = array(
        'publishedon:>=' => strtotime('1-1-'.$year),
        'publishedon:<' => strtotime('1-1-'.($year+1)),
    );
}
return json_encode($where);

在此之后你可以用

调用getRessources
&where=`[[inyear? &year=`2015`]]`

你甚至可以使用inyear片段的&amp; where属性添加一个额外的where子句。

&where=`[[inyear? &year=`2015` &where=`whatever_else_where`]]`