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

时间:2011-01-12 11:31:06

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

我创建了一个有三个暴露过滤器的视图。一切正常,除了我无法翻译或更改下拉列表的默认字符串(-Any-)这一事实。有没有办法将此字符串更改为更有意义的内容,如“请选择”并使其可翻译,以便德语版本显示“Bittewählen”?我有两个可能有用的屏幕截图:

the exposed filters

dropdown box

进一步的改进是能够将“任何”文本更改为“请选择一个(此处的字段名称)”,但我对此失去了希望=)

更新

重要提示:在进一步测试时,我发现如果您选择在“admin / build / views / tools”中显示“-Any-”,那么这是可翻译的。

7 个答案:

答案 0 :(得分:23)

对于任何想要将“ - Any - ”的值更改为特定内容的人,请使用自定义模块覆盖如下所示:

function yourmodulename_form_alter(&$form, $form_state, $form_id) {

  if($form_state['view']->name == 'your_view_name_here') {

    $form['your_dropdown_name']['#options']['All'] = t('- Type -'); // overrides <All> on the dropdown

  }
}

您可能想要执行此操作的原因是,如果您有3个(例如)3个单独字段的下拉列表。然后使用它们对用户来说不是很有用(特别是如果你没有使用标签)。

在上面的代码中,只需记住将“yourmodulename”更改为模块的名称。

your_view_name_here应该是您的视图的名称(用下划线替换破折号 - 例如“property-search-bar”将变为“property_search_bar”)

将“your_dropdown_name”更改为字段名称 - 我通过安装并启用了devel模块的dsm($form)找到了此项。这通常是您下拉列表的字段名称,因此它可能类似于“field_my_custom_value”。

希望这可以帮助任何需要它的人!

答案 1 :(得分:9)

三个选项:

  • 如果您已经启用了本地化,则可以通过本地化进行更改。仅为此字符串引入本地化的开销太大了。
  • 如果您已经改变了表单,可以使用form_alter更改它。为一个字符串引入一个带有hook_form的模块是一种过多的(维护和性能)开销。
  • 您可以在settings.php中使用简单的字符串覆盖更改它。

在Drupal 7中(Drupal6仅在细节上有所不同)

/**
 * String overrides:
 *
 * To override specific strings on your site with or without enabling locale
 * module, add an entry to this list. This functionality allows you to change
 * a small number of your site's default English language interface strings.
 *
 * Remove the leading hash signs to enable.
 */
$conf['locale_custom_strings_en'][''] = array(
   '<Any>'      => 'Whatever!',
);

但请注意,这会将完整字符串<Any>(区分大小写)的每个出现更改为Whatever,而不仅仅是单一形式的

答案 2 :(得分:2)

在D6中,视图公开的过滤器标签不可翻译。 转到管理&gt;网站建设&gt;视图和选择标签工具。 将“标签”替换为“可选的单选曝光过滤器上的任何”值:'可翻译' - 任意 - '。 重要提示:使用至少一种非默认语言的语言访问带有公开过滤器的视图。 然后你可以翻译“ - 任何 - ”通过Aminister&gt;网站建设&gt;翻译界面(区分大小写)。

答案 3 :(得分:1)

或者你可以简单地使用一行jQuery代码:

$(document).ready(function(){

$("#views-exposed-form-url-name-display-name #edit-tid-all a").text("All");

});

答案 4 :(得分:1)

Better Exposed Filter module允许您更改视图公开过滤器中的“-any-”标签。

答案 5 :(得分:0)

我宁愿选择简单的解决方案:String Overrides。 有了这个,您只需在网站上添加要更改的字符串,并将其替换为您想要的任何内容(当然是字符串)。

答案 6 :(得分:0)

可能是模块https://www.drupal.org/project/views_advanced_labels有帮助吗? 我找到了,但还没试过。