代码之家  ›  专栏  ›  技术社区  ›  peace_love

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

  •  1
  • peace_love  · 技术社区  · 9 年前

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

    我试过:

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

    但这行不通。有人能帮我吗?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Jako    8 年前

    publishedon在数据库中保存为unix时间。因此,您必须将日期(2015年)转换为unix时间,并检查日期范围。

    创建名为的代码段 具有以下代码:

    <?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);
    

    之后,您可以使用

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

    您甚至可以在&inyear代码段的where属性。

    &where=`[[inyear? &year=`2015` &where=`whatever_else_where`]]`
    
    推荐文章