我需要在“现在”和“一个月前”之间发布fetch
篇文章(或对象)。代码如下所示:
{def $date = currentdate()}
{def $day = currentdate()|datetime( 'custom', '%d' )}
{def $month = currentdate()|datetime( 'custom', '%m' )}
{def $year = currentdate()|datetime( 'custom', '%Y' )}
{def $fromDate = maketime(0,0,0,$month|dec(), $day, $year)}
{def $items = fetch(content, list, hash(
'parent_node_id', 10,
'attribute_filter', array('and',
array('article/publish_date', '<=', $data),
array('article/publish_date', '>', $fromDate),
array( 'priority', '>=', 0 )),
'class_filter_type', 'include',
'class_filter_array', array('article')
))}
不幸的是,没有任何结果。当我从$fromDate
中移除fetch
数组时,它可以正常工作。
答案 0 :(得分:1)
简而言之,您的模板提取代码不准确(无论是在此处还是在您的模板中)。
行,“array('article / publish_date','&lt; =',$ data),”应该是“数组('article / publish_date','&lt; =',$ date),”而不是修复变量拼写错误。
此外,您的日期时间戳比较逻辑(运算符)用法也不正确(我认为)。自从我上次做了你正在做的事情已经有一段时间了,但是当我最后做了它时,我使用了以下逻辑。
{* Example: http://example/layout/set/content_statistics.csv/(startDate)/2010-07-14/(endDate)/2010-07-19/ *}
{def $articles=false()}
{if and( is_set( $view_parameters.startDate ), is_set( $view_parameters.endDate ) )}
{def $startDate=$view_parameters.startDate|explode("-")
$endDate=$view_parameters.endDate|explode("-")}
{def $startDateTimestamp=maketime(0,0,0,$startDate.1,$startDate.2,$startDate.0)
$endDateTimestamp=maketime(23,59,59,$endDate.1,$endDate.2,$endDate.0)}
{set $articles=fetch( 'content', 'list', hash(
'parent_node_id', 77,
'class_filter_type', 'include',
'class_filter_array', array( 'article' ),
'sort_by', array( 'published', false() ),
'attribute_filter', array( array( 'published', '>=', $startDateTimestamp ),
array( 'published', '<', $endDateTimestamp ) )
) )}
{else}
{set $articles=fetch( 'content', 'list', hash(
'parent_node_id', 77,
'class_filter_type', 'include',
'class_filter_array', array( 'article' ),
'sort_by', array( 'published', false() ),
'limit', 10000
) )}
{/if}
请注意,属性过滤日期时间戳比较运算符使用了一个非常不同的公式,re:'&gt; =''&lt;'我认为这个例子对你来说会更好。
'attribute_filter', array( array( 'published', '>=', $startDateTimestamp ),
array( 'published', '<', $endDateTimestamp ) )
) )}
我希望这有帮助!
干杯, 荒地
注意:我从eZpedia借用了上述示例,但由于我不确定链接到社区文档的政策(即使它有问题的答案),我也不敢在这里链接:http://www.ezpedia.org/en/solution/how_to_fetch_content_based_on_view_parameter_date_range < / p>