В этом уроке я покажу как в Drupal 7 select (views) заменить значение -Any- (любой), -All- (все) на своё. Для того чтобы изменить первый элемент -Любой- (-Any-, -All-) во views в select (exposed filters) нужно прописать свой код в файле template.php. Файл template.php должен располагаться в корневой папке вашего шаблона (sites\all\themes\НазваниеВашейТемы или в папке theme)
function НазваниеВашейТемы_form_alter(&$form, $form_state, $form_id) { if($form_state['view']->name == 'МашиноеИмяВьювс') { $form['ИмяСелекта']['#options']['All'] = t('ВашеЗначение'); } }
НазваниеВашейТемы — Вместо этого нужно прописать название вашей темы к примеру если у вас тема garland, то вы должны прописать garland_form_alter
МашиноеИмяВьювс — Машиное имя задается при создание views
ИмяСелекта — Имя селекта можно узнать через утилиту firebug, либо открыть код в браузере и посмотреть. Имя селекта находится в атрибуте name
ВашеЗначение — Вместо этого значения нужно вставить свое. У меня к примеру в выпадающем списке были цвета и вместо первого элемента Любой я поставил Цвет и вот что у меня получилось.
Пример:
Допустим у меня есть тема с названием alisa тогда код будет выглядеть следующим образом
function alisa_form_alter(&$form, $form_state, $form_id) { if($form_id=='views_exposed_form'){ if($form_state['view']->name == 'catalog') { $form['field_collection_tid']['#options']['All'] = t('Производитель'); } } }
Работает, но ругается:
Notice: Undefined index: view в функции НазваниеВашейТемы_form_alter() (строка 148 в файле…template.php).
Notice: Trying to get property of non-object в функции НазваниеВашейТемы_form_alter()
Я внес изменения в статью добавил дополнительный пример посмотрите и попробуйте сделать еще раз
У меня почему-то подставленное значение на сайте выводит только латинскими буквами, кириллицей пишу оставляет пустое поле. Что делать?
Нужно перевести сам php файл в кодировку utf-8 если это не поможет, то нужно добавить мета-тэг
На drupal 7 не работает