start on参数未在expressionengine中给出正确的结果

时间:2012-06-06 04:27:05

标签: php expressionengine

我有一个管理事件的渠道,当我想要实现一些常见操作(如显示过去的事件)时,我遇到了问题。如果我想看到当前和未来的事件,我认为我可以通过以下方式获得它:

  

{exp:channel:entries channel =“events”show_future_entries =“yes”show_expired =“no”orderby =“{date}”sort =“asc”dynamic =“no”start_on =“”}

其中$ entry_date的格式为YYYY-MM-DD HH:MM(例如:2011-08-02 11:00)

它应按此顺序显示事件:

2012-08-02 11:00
2012-09-02 11:00
2012-10-02 11:00
2012-11-02 11:00

但它正在显示它们而不包括2012-08-02 11:00的事件(似乎EE的比较是>,而不是> =)

还有过去的事件(标记为已过期)我按年组织并显示它们:

{exp:channel:entries channel =“events”show_future_entries =“no”show_expired =“yes”orderby =“{date}”sort =“desc”dynamic =“no”year =“”start_on =“”}

假设我过去的事件是:

2011-08-02 11:00
2011-09-02 11:00
2011-10-02 11:00
2011-11-02 11:00

和$ entry_date = 2011-10-02 11:00

它应该显示如下:

2011-10-02 11:00
2011-09-02 11:00
2011-08-02 11:00

并以错误的顺序显示它。

实际上问题是:

  1. 对于当前和未来事件,event = start_on参数不包含在结果中。
  2. 对于过去的事件,它以错误的顺序显示事件(最旧的事件是显示的第一个事件)。
  3. 有人可以告诉我我的代码是否有问题吗?

    我正在使用EE 2.4.0,并且在模板的输入处启用了php,我尝试进行这些操作。

1 个答案:

答案 0 :(得分:1)

我在这里看到的一些事情。

orderby="{date}"实际应该是orderby="date"(或者可以是$entry_date     完全省略,因为date / entry_date是默认的orderby)。

您即将举办的活动的问题可能就是您的生成方式     你的start_on变量。你能告诉我这是怎么创造的吗?     究竟?你是否在某个地方回应它以确保它确实存在     你觉得它是什么?你可能会遇到本地化     EE与您的服务器之间的差异。如果你确实有一个条目     与您在start_on中输入完全相同的输入日期     应该出现。尝试手动将日期设置为stop_before以进行故障排除。

对于您过去的活动,您应该使用start_on,而不是sort。这两个参数不需要注意{{1}}参数 - 它们总是基于年表。