Как изменить метку значения по умолчанию (-Any-) выставленного фильтра в Drupal Views?
Я создал представление с тремя открытыми фильтрами. Все работает отлично, за исключением того факта, что я не могу ни перевести, ни изменить строку по умолчанию (-Any-) для выпадающих меню. Есть ли способ изменить эту строку на нечто более значимое, например, "Пожалуйста, выберите" и сделать его переводимым, чтобы в немецкой версии отображалось "Bitte wählen"? У меня есть два снимка экрана, которые могут быть полезны:
![the exposed filters]()
и
![dropdown box]()
Дальнейшее улучшение было бы возможностью изменить текст "any" на что-то вроде "пожалуйста, выберите (имя поля здесь)", но я теряю надежду на это =)
UPDATE
ВАЖНО: при дальнейшем тестировании я обнаружил, что если вы решите отобразить "-Any-" из "admin/build/views/tools", тогда THAT ISA можно переводить.
Ответы
Ответ 1
Три варианта:
- Вы можете изменить его с помощью локализации, если у вас есть это уже включенное. Представление локализации только для этой строки слишком много накладных расходов.
- Вы можете изменить его с помощью 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 default English language interface strings.
*
* Remove the leading hash signs to enable.
*/
$conf['locale_custom_strings_en'][''] = array(
'<Any>' => 'Whatever!',
);
Обратите внимание, что это изменит каждое появление полной строки <Any>
(с учетом регистра) на Whatever
, а не только на одну из этих форм.
Ответ 2
Для тех, кто хочет просто изменить значение "- 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_здесь должно быть имя вашего представления (заменить тире с помощью подчеркивания - например, "свойство-поиск-бар" станет "property_search_bar" )
И измените "your_dropdown_name" на имя поля - я нашел это с помощью dsm($form)
с установленным и включенным модулем devel. Обычно это имя поля вашего drop down, поэтому может быть что-то вроде "field_my_custom_value".
Надеюсь, это поможет любому, кто в ней нуждается!
Ответ 3
Представленные ярлыки фильтров не могут быть переведены в D6.
Откройте "Администрирование" > "Создание сайта" > "Виды" и выберите вкладку.
Заменить "Ярлык для" Любое "значение для дополнительных фильтров с одним выбранным фильтром:" на перевод "-" Любой - ".
Важно: просмотрите просмотры с открытыми фильтрами, по крайней мере, на одном языке, который не является языком по умолчанию.
Затем вы можете перевести "- Any -" через Aminister > Создание сайтa > Интерфейс перевода (с учетом регистра).
Ответ 4
Или вы можете просто использовать строку кода jQuery следующим образом:
$(document).ready(function(){
$("#views-exposed-form-url-name-display-name #edit-tid-all a").text("All");
});
Ответ 5
Модуль улучшенного фильтра позволяет вам изменить метку "-any-" в фильмах, подвергнутых просмотру.
Ответ 6
Я бы предпочел простое решение: String Overrides.
При этом вы просто добавляете строку, которую хотите изменить на своем сайте, и заменяете ее тем, что хотите (строки, конечно).
Ответ 7
Может быть модуль https://www.drupal.org/project/views_advanced_labels помогает?
Я нашел его, но еще не пробовал.