0

我正在使用 modx advsearch 片段来列出搜索结果。

[[!AdvSearch?
&extractLength=`220`
&queryHook=`ArticleSearchQHook`
&extractEllipsis=`.`
&contexts=`web,tech,data,main`
&tpl=`articleSearchResult`
&perPage=`10`
&minChars=`2`
&withTVs=`docGroup,post_category,post_subcategory,category`
&fields=`pagetitle,longtitle,description,introtext,content,publishedon`]]

我想显示在给定日期范围内发布的结果。所以我使用 2 个带有 datepicker 插件的文本框。我可以在 URl 中看到选定的日期,如下所示

pubfromdate=2012-11-01&pubtodate=2012-12-18&search=tech&sub=Search

如何根据日期范围过滤结果?

还有另一个问题,如您所知,publishon 列以“时间戳”格式存储日期,我的文本字段接受“DMY”格式,但我认为这没什么大不了的,我可以处理这个问题。

4

1 回答 1

1

使用这个钩子queryHook

<?php

$andConditions = array();

if (!empty($_REQUEST['pubfromdate']) && $pubfromdate = strtotime($_REQUEST['pubfromdate'])) {
    $andConditions['modResource.publishedon:>'] = "{$pubfromdate}:numeric";
}

if (!empty($_REQUEST['pubtodate']) && $pubtodate = strtotime($_REQUEST['pubtodate'])) {
    $andConditions['modResource.publishedon:<'] = "{$pubtodate}:numeric";
}

if (!empty($andConditions)) {
    $qhDeclaration = array(
        'qhVersion' => '1.2',
        'andConditions' => $andConditions
    );
    $hook->setQueryHook($qhDeclaration);
}

return true;
于 2012-12-19T19:10:06.577 回答