Как изменить метку значения по умолчанию (-Any-) открытого фильтра в Drupal Views? - PullRequest
15 голосов
/ 12 января 2011

Я создал вид с тремя открытыми фильтрами. Все работает отлично, за исключением того факта, что я не могу ни перевести, ни изменить строку по умолчанию (-Any-) для выпадающих списков. Есть ли способ изменить эту строку на что-то более значимое, например «Пожалуйста, выберите», и сделать ее переводимой, чтобы в немецкой версии отображалось «Bitte wählen»? У меня есть два снимка экрана, которые могут быть полезны:

the exposed filters

и

dropdown box

Дальнейшим улучшением будет возможность изменить текст «любой» на что-то вроде «пожалуйста, выберите (имя поля здесь)», но я теряю надежду на это =)

UPDATE

ВАЖНО: При дальнейшем тестировании я обнаружил, что если вы решите отображать «-Any-» из «admin / build / views / tools», то ЭТО переводится.

Ответы [ 7 ]

23 голосов
/ 12 мая 2011

Для тех, кто хочет просто изменить значение «- Любое -» на что-то конкретное, затем использовать пользовательский модуль для переопределения, которое выглядит следующим образом:

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_ здесь должно быть имя вашего представления (замените тире подчеркиванием - например, "property-search-bar" станет "property_search_bar")

И измените «your_dropdown_name» на имя поля - я нашел это с помощью dsm($form) с установленным и включенным модулем devel . Обычно это имя поля вашего раскрывающегося списка, поэтому это может быть что-то вроде «field_my_custom_value».

Надеюсь, это поможет всем, кому это нужно!

9 голосов
/ 12 января 2011

Три варианта:

  • Вы можете изменить его с локализацией, если она уже включена.Внедрение локализации только для этой строки слишком много.
  • Вы можете изменить ее с помощью form_alter, если вы все равно изменили форму.Представить модуль с заменителем hook_form только для одной строки - это слишком много (затраты на обслуживание и производительность).
  • Вы можете изменить его с помощью простого переопределения строки в настройках. 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 голосов
/ 03 сентября 2011

Вид выставленной метки фильтра не переводится в D6. Перейдите в Администрирование> Создание сайта> Представления и выберите инструменты для вкладок. Замените «Метка для значения« Любое »на необязательных открытых фильтрах:« на переводимое »- Любое -». Важно: посещайте представления с открытыми фильтрами хотя бы на одном языке, который не является языком по умолчанию. Затем вы можете перевести «- Любой -» через Aminister> Создание сайта> Перевести интерфейс (с учетом регистра).

1 голос
/ 16 мая 2015

Модуль Better Exposed Filter позволяет изменять метку "-any-" в видимом фильтре Views.

1 голос
/ 12 июля 2011

Или вы можете просто использовать строку кода JQuery, например:

$(document).ready(function(){

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

});
0 голосов
/ 16 октября 2015

Может быть модуль https://www.drupal.org/project/views_advanced_labels помогает? Я нашел это, но еще не пробовал.

0 голосов
/ 08 июня 2013

Я бы предпочел простое решение: Переопределение строк .При этом вы просто добавляете строку, которую хотите изменить, на свой сайт и заменяете ее на что угодно (Strings конечно).

...