在Drupal 7公开视图下拉选择器过滤器中更改默认值'-Any-'

时间:2012-05-17 20:13:08

标签: drupal-7 views drupal-exposed-filter

我想更改Drupal 7视图用于公开下拉过滤器的默认'-Any-'的文本。

根据此帖子中的答案,

How to change the label of the default value (-Any-) of an exposed filter in Drupal Views?

我用钩子形式alter:

创建了一个名为any_exposed的模块
function any_exposed_form_alter(&$form, &$form_state, $form_id) {
  if ($form['#id'] == 'views-exposed-form-vendors-page') {
$form['field_vendor_type_tid']['#options']['ALL'] = t('Everything'); } }

但所有这一切都是为下拉列表中的“Everything”添加另一个选项,它不会覆盖/翻译'-Any-'。只是为了测试我补充道:

$form['submit']['#value'] = t('Search');

将“提交”按钮的文本从“应用”更改为“搜索”,这样可以正常工作。万一你不能说,我不是一个程序员,但我认为我必须遗漏一些简单的东西。任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:4)

这是一篇很老的帖子,但是如果你还在寻找或者找到任何人来寻找答案。 'ALL'必须是'All',如

$form['field_vendor_type_tid']['#options']['All'] = t('Everything');

由于数组中有一个成员'All'而不是'ALL'(这里的情况很重要),所以当你想要覆盖'All'时,你会添加一个成员'ALL'。

答案 1 :(得分:2)

使用hook_form_views_exposed_form_alter代替hook_form_alter。

function hook_form_views_exposed_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'views_exposed_form') {
      $form['tid']['#options']['All'] = t('Search');
  }
}

答案 2 :(得分:0)

function any_exposed_form_alter(&$form, &$form_state, $form_id) {
  if ($form['#id'] == 'views-exposed-form-vendors-page') {
$form['field_vendor_type_tid']['#options']['ALL'] = t('Everything'); } } 

ALL更改为All后,效果很好。

答案 3 :(得分:0)

我建议使用Better Exposed Filters模块,它允许您只通过Views UI界面执行此操作。

  1. 安装&启用模块
  2. 修改您的观点,然后点击“曝光表单”>暴露的表格风格'
  3. 选择更好的曝光过滤器'
  4. 点击“更多选项”
  5. 更改'覆盖"任何"的值选项标签'