为 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 视图中的公开项目提供预定义的选项列表?的主要内容,如果未能解决你的问题,请参考以下文章
Drupal:如何在具有来自外部数据库选项卡的数据的视图中添加公开过滤器