为 Drupal 视图中的公开项目提供预定义的选项列表?

Posted

技术标签:

【中文标题】为 Drupal 视图中的公开项目提供预定义的选项列表?【英文标题】:Supplying a predefined list of options for an exposed item in a view in Drupal? 【发布时间】:2010-08-03 14:44:53 【问题描述】:

我有一个按年份过滤的视图。年份是内容类型上的普通文本 CCK 字段。我已经在视图中公开了这个字段,以便用户可以为它输入一个值。例如。 2010。然后它将显示字段设置为 2010 的所有内容类型。我的问题是,我不希望用户输入值。我想将该文本字段更改为几年后的下拉菜单。

我的选择是:

    用 JQuery 破解它 --> 非常糟糕 在页面上输出之前使用一些钩子或其他东西编辑暴露的值 还有其他选择吗?

我的问题是,我该怎么做选项 2,或者最坏的情况,选项 3?

【问题讨论】:

【参考方案1】:

当您在管理字段中编辑 CCK 字段时,您可以为该字段设置允许的值。如果这样做,当您返回视图时,您将拥有一个新过滤器,Field - 允许值,当您公开它时,它将为您提供一个允许值的选择菜单。

如果您不想在创建期间限制值,则必须更改自定义模块中的公开表单:

function mymodule_form_alter(&$form, $form_state, $form_id) 
  if ($form_id === 'views_exposed_form') 
    // Change field_test_value to the name of your field
    $form['field_test_value']['#type'] = 'select';
    $form['field_test_value']['#options'] = array(
      '' => '', 
      '2010' => '2010', 
      '2009' => '2009');
  

查看Form API reference 了解您还能做什么。

【讨论】:

以上是关于为 Drupal 视图中的公开项目提供预定义的选项列表?的主要内容,如果未能解决你的问题,请参考以下文章