如何使用 getResources (Modx) 仅显示特定年份的资源?
How can I display only resources from a specific year with getResources (Modx)?
我只想显示 2015 年发布的资源。
我试过了:
&where=`{"publishedon:":2015}`
但这不起作用。有人可以帮助我吗?
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 片段的 &where 属性 添加一个额外的 where 子句。
&where=`[[inyear? &year=`2015` &where=`whatever_else_where`]]`
我只想显示 2015 年发布的资源。
我试过了:
&where=`{"publishedon:":2015}`
但这不起作用。有人可以帮助我吗?
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 片段的 &where 属性 添加一个额外的 where 子句。
&where=`[[inyear? &year=`2015` &where=`whatever_else_where`]]`