Views exposed filter темезировать selector [РЕШЕНО]

Главные вкладки

Аватар пользователя Наденька Наденька 4 июня 2015 в 17:55

Привет друзья, подскажите пожалуйста неопытному друпаллеру, можно ли label'ы что у селектора views exposed filters запихнуть в сами select вместо значения по умолчанию (- Любой -) ну или эти значения задать вручную. Суть в том что бы вместо значения по умолчанию были названия селектора, а не слово - Любой -

Прошу прощения за кривизну вопроса.

В попытках гугления я поняла, что по английски справляюсь лучше, чем по русски, в общем сама спросила, сама отвечаю Biggrin

Решение:

Способ 1:

Использовать модуль Better Exposed Filters в настройках views переопределяем "Стиль формы раскрытых фильтров" на "Better Exposed Filters" и в настройках каждого из ильтров можно задать значение для поля "- Any -" всё просто и элегантно.

Способ 2: (для извращенцев типа меня)

Для решения я нашла простой выход — использование jQuery. Во вьюсе стёрла метки расскрытых полей и дописала такой скрипт:

<script>
(function($){
    $("#edit-field-type-value option[value='All']").html("Вид недвижимости");
    $(".form-item-field-price-value-1 input").attr("placeholder", "Максимальная цена");
})(jQuery);
</script>

Для кошерности вынесла всё в отдельный файл custom.js

Да, я отдаю себе отчёт в том, что это костыль, если кто то знает вариант получше, делитесь пожалуйста в комментариях. Ну а пока я делюсь своими скромными находками. Smile

Комментарии

Аватар пользователя Наденька Наденька 4 июня 2015 в 18:20

Забавно, на английском нашла быстро такое вот решение, но после вставки в template.php и чистки кэша ровным счётом ничего не произошло Sad

function tophouse_form_views_exposed_form_alter(&$form, &$form_state) {
  // dpm($form);
  if ($form['#id'] == 'views-exposed-form-objects-page-1') {
    // Modifications go here.
    // example: (change the field name to yours)
    $form['edit-field-location-tid']['#default_value'] = 'Расположение';
  }
}
Аватар пользователя Наденька Наденька 4 июня 2015 в 20:55

ХулиGUN wrote:
"vivas" wrote:
но после вставки в template.php и чистки кэша ровным счётом ничего не произошло :(

Ну скорее всего потому, что template.php предназначен для темизации, а не имплементации хуков

Вы правы! Дело в том, что я не разработчик а дизайнер, но влюблена в друпал, и по этому на меня вечно вешают, всё что не попадя, вот и выкручиваюсь как могу Smile

Аватар пользователя Наденька Наденька 4 июня 2015 в 22:09

ХулиGUN wrote:
"vivas" wrote:
вот и выкручиваюсь как могу =)

Так на чём Вы остановились? Оставили js или написали модуль?

Использовала модуль Better Exposed Filter, там это решение из коробки, а для текстовых input при помощи js повесила placeholder. Решения вынесла в свой пост, на случай если кому пригодится Smile

Аватар пользователя animan animan 8 ноября 2015 в 1:19

Решение для input полей можно так же сделать модулем: form_placeholder. Хотя лучшим вариантом для меня осталось написать свой модуль:

<?php
function my_module_form_alter(&$form, &$form_state$form_id) {
    if (isset(
$form['author'])) {
        
$form['author']['#attributes'] = array('placeholder' => array(t('Enter the name...')));
    }
}
?>