Как изменить метку значения по умолчанию (- Any -) открытого фильтра в представлениях Drupal?
Я создал представление с тремя открытыми фильтрами. Все работает нормально, за исключением того, что я не могу ни перевести или изменить строку по умолчанию (любой) для выпадающих меню. Есть ли способ изменить эту строку на что-то более значимое, например "Пожалуйста, выберите" и сделать ее переводимой, чтобы немецкая версия отображала "Bitte wählen"? У меня есть два снимка экрана, которые могут быть полезны:
и
еще улучшением будет возможность изменить текст " любой "на что-то вроде" Пожалуйста, выберите (имя поля здесь)", но я теряю надежду на это =)
обновление
важно: при дальнейшем тестировании я обнаружил, что если вы решите отобразить "-Any-" из "admin/build/views/tools", то это переводимо.
7 ответов
три варианта:
- вы можете изменить его с локализацией, если у вас это уже включено. Введение локализации только для этой строки слишком накладно.
- вы можете изменить его с помощью form_alter, если вы уже изменили форму в любом случае. Введение модуля с hook_form alter только для одной строки-это слишком много (обслуживание и производительность) накладных расходов.
- вы можете изменить его с помощью простого переопределения строки в вашем настройки.в 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
, а не только те, что в единой форме.
для тех, кто хочет просто изменить значение "- 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" на имя поля - я нашел это, используя dsm($form)
С в Devel модуль установлен и включен. Обычно это имя поля вашего выпадающего списка, поэтому оно может быть чем-то вроде "field_my_custom_value".
надеюсь, это поможет всем, кто нуждается это!
просмотр метки фильтра не переводится в D6. Перейдите в Администрирование > создание сайта > представления и выберите вкладку Инструменты. Замените "метку для" любого "значения на дополнительных фильтрах с одним выбором: "переводимым" - Any -". Важно: посетите представления с открытыми фильтрами хотя бы на одном языке, который не является языком по умолчанию. Затем вы можете перевести "- Any - " через Aminister > site building > Translate interface (с учетом регистра).
или вы можете просто использовать строку кода jQuery, как это:
$(document).ready(function(){
$("#views-exposed-form-url-name-display-name #edit-tid-all a").text("All");
});
на лучше подвергается модуль фильтра позволяет изменить метку " - any -"в фильтре представлений.
Я бы предпочел пойти с простым решением:Строка Переопределяет. При этом вы просто добавляете строку, которую хотите изменить на своем сайте, и заменяете ее на все, что хотите (строки, конечно).
может быть модуль https://www.drupal.org/project/views_advanced_labels помогает? Я нашел его, но еще не пробовала.