【问题标题】:Supplying a predefined list of options for an exposed item in a view in Drupal?为 Drupal 视图中的公开项目提供预定义的选项列表?
【发布时间】:2025-12-15 23:20:16
【问题描述】:

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

我的选择是:

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

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

【问题讨论】:

    标签: drupal drupal-views


    【解决方案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 了解您还能做什么。

    【讨论】:

      最近更新 更多