Уроки по программированию

Drupal 7 select (views) заменить значение -Any- (любой), -All- (все)

В этом уроке я покажу как в 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

select-name

ВашеЗначение — Вместо этого значения нужно вставить свое. У меня к примеру в выпадающем списке были цвета и вместо первого элемента Любой я поставил Цвет и вот что у меня получилось.

select

Пример:
Допустим у меня есть тема с названием 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('Производитель');
	  }
  }
}

Комментарии к статье

  • Аватарка 11.11.2013
    Ответить Виктор

    Работает, но ругается:

    Notice: Undefined index: view в функции НазваниеВашейТемы_form_alter() (строка 148 в файле…template.php).
    Notice: Trying to get property of non-object в функции НазваниеВашейТемы_form_alter()

    • Аватарка 11.11.2013

      Я внес изменения в статью добавил дополнительный пример посмотрите и попробуйте сделать еще раз

  • Аватарка 31.10.2014

    У меня почему-то подставленное значение на сайте выводит только латинскими буквами, кириллицей пишу оставляет пустое поле. Что делать?

    • Аватарка 31.10.2014

      Нужно перевести сам php файл в кодировку utf-8 если это не поможет, то нужно добавить мета-тэг

  • Аватарка 19.03.2017
    Ответить Наталия

    На drupal 7 не работает

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *