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

时间:2010-08-03 14:44:54

标签: drupal drupal-views

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

我的选择是:

  1. 用JQuery破解它 - >非常糟糕
  2. 在页面上输出之前使用某个钩子或其他内容编辑公开值
  3. 还有其他选择吗?
  4. 我的问题是,我如何选择选项2,或者最坏情况选项3?

1 个答案:

答案 0 :(得分:2)

管理字段中编辑CCK字段时,可以设置该字段的允许值。如果你这样做,当你回到视图时,你将有一个新的过滤器,字段 - 允许值,当你公开它时,它会给你一个允许值的选择菜单。

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

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,了解您还可以做些什么。