2

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

根据this thread中的答案,

如何更改 Drupal 视图中公开过滤器的默认值 (-Any-) 的标签?

我创建了一个名为 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');

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

4

4 回答 4

4

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

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

由于数组有一个成员 'All' 但不是 'ALL' (这里大小写很重要),当你想覆盖 'All' 时,你正在添加一个成员 'ALL'。

于 2012-10-13T18:50:50.917 回答
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');
  }
}
于 2014-03-23T17:59:00.530 回答
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

于 2015-01-19T23:51:54.417 回答
0

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

  1. 安装和启用模块
  2. 编辑您的视图,然后单击“公开表单 > 公开表单样式”
  3. 选择“更好的暴露过滤器”
  4. 点击“更多选项”
  5. 更改“覆盖“任何”选项标签”的值
于 2016-02-16T20:03:15.773 回答