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

Posted

技术标签:

【中文标题】在 Drupal 7 公开视图下拉选择器过滤器中更改默认“-Any-”【英文标题】:Change default '-Any-' in Drupal 7 exposed views dropdown selector filter 【发布时间】:2012-05-17 20:13:07 【问题描述】:

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

根据本帖中的回答,

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

我创建了一个名为 any_exposed 的模块,带有一个钩子形式 alter:

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');

这会将“提交”按钮的文本从“应用”更改为“搜索”,效果很好。万一你不知道,我不是一个程序员,但我想我一定错过了一些简单的东西。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

这是一篇旧帖子,但如果您仍在寻找或寻找任何来此寻找答案的人。 'ALL' 必须是 'All',如

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

由于数组有一个成员 'All' 而不是 'ALL'(大小写在此很重要),因此您要添加一个成员 'ALL' 而要覆盖 'All'。

【讨论】:

【参考方案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');
  

【讨论】:

【参考方案3】:
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 后完美运行。

【讨论】:

欢迎来到 Stack Overflow!这似乎没有为之前的答案添加任何内容;如果您只是对此表示感谢,请不要这样做作为回答。在网站上投入一些时间,您将获得足够的 privileges 来为您喜欢的答案投票,这是 Stack Overflow 表达谢谢的方式。【参考方案4】:

我推荐使用Better Exposed Filters 模块,它允许您通过 Views UI 界面简单地做到这一点。

    安装和启用模块 编辑您的视图,然后点击“公开表单 > 公开表单样式” 选择“更好的暴露滤镜” 点击“更多选项” 更改“覆盖“任何”选项标签”的值

【讨论】:

以上是关于在 Drupal 7 公开视图下拉选择器过滤器中更改默认“-Any-”的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 7 视图暴露的过滤器

在 Drupal 中公开视图过滤器

Drupal 视图和暴露的过滤器下拉菜单

Drupal 7 视图中的块中暴露的过滤器

Drupal 7 - 暴露过滤器 - 全文搜索

无法以编程方式在视图 Drupal 7 中为日期设置公开过滤器