我想更改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');
将“提交”按钮的文本从“应用”更改为“搜索”,这样可以正常工作。万一你不能说,我不是一个程序员,但我认为我必须遗漏一些简单的东西。任何帮助将不胜感激!
答案 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界面执行此操作。