Drupal 视图过滤器中的 SQL 函数

Posted

技术标签:

【中文标题】Drupal 视图过滤器中的 SQL 函数【英文标题】:SQL Functions in Drupal Views Filters 【发布时间】:2011-02-08 17:29:51 【问题描述】:

我正在创建一个将在块中显示的视图。每个被拉入视图的节点都有一个与之关联的时间值(这实际上是一个介于 0 和 2399 之间的整数,因为 Drupal 不支持仅时间值)。作为视图中的过滤器,我只想显示当天尚未发生的事件。所以我想要过滤器中的 eventtime > CURTIME() 。然而 Drupal 似乎正在剥离 mysql 函数并将其变为 0。有没有办法让它不理会它?

【问题讨论】:

需要更多信息来帮助您。时间值是从哪里来的——我猜你可能没有使用 CCK Date,因为它的过滤器支持 php 时间比较,那么你用的是什么呢? 我正在使用 CCK,但选择使用值的选择列表 0 -> 2330(标记为上午 12 点到下午 1130 点)作为时间值。没有时间只有小部件,即使您不使其可见,也需要一年。因此,如果您添加两个事件:一个在 2011 年中午 12 点,另一个在 2012 年上午 11 点,那么 2011 年的事件将首先出现。无论如何,我只想获取在当前时间之后发生的事件(CURTIME() / 100 将返回一个我可以与 0 -> 2330 进行比较的值) 【参考方案1】:

如果这与您有关事件和重复日期的问题有关,我认为重复您选择的方式的每日事件可能比这更好,但无论如何。

要在过滤器中维护自定义 SQL,您可以谨慎使用它(以及一些 PHP 技能):

http://drupal.org/project/viewsphpfilter

以下是一些使用示例:

http://drupal.org/node/690670

【讨论】:

以上是关于Drupal 视图过滤器中的 SQL 函数的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 6 中的自定义搜索表单:视图/面板还是自定义 sql?

关联两个 Drupal 7 视图过滤器

Drupal 视图过滤器中的 OR 运算符

Drupal 7 视图中的块中暴露的过滤器

drupal 7中的上下文过滤器视图

drupal 视图动态过滤器