Добавить файл-заполнитель /текст справки в Просмотренный фильтр?

Название в значительной степени говорит обо всем. Я ищу способ добавить текст заполнителя /справки к фильтру, подвергнутому просмотру. Это будет текст, который появляется в фильтре (в данном случае поле поиска) до того, как пользователь введет значение, а затем исчезнет, ​​когда нажата кнопка или когда текст будет введен в нее.

4 голоса | спросил Mrweiner 14 Mayam12 2012, 05:13:48

4 ответа


5

Вы можете сделать это с помощью функций предварительной обработки. Вот учебник по этому поводу для окна поиска по умолчанию ; вы также можете просматривать просмотренные фильтры аналогично.

Вы также можете использовать модуль Compact Forms для этого, хотя я не знаю, совместим ли он с отображаемыми фильтрами.

Кроме того, есть модуль для отображения вспомогательного текста под полем: Улучшенные экспонированные фильтры

Чтобы настроить его, просто включите модуль, а затем перейдите на страницу редактирования вида. В разделе Открытая форма нажмите Основные рядом с Открытый стиль формы и измените его на Улучшенные экспонированные фильтры . Затем отрегулируйте по мере необходимости.

Однако этот модуль не будет автоматически скрывать текст при вводе.

ответил Patrick Kenny 14 Mayam12 2012, 06:02:17
4

Я искал это и мог добавить местозаполнитель таким образом:

  1. Откройте файл template.php вашей темы (если не существует, создайте его).
  2. Добавьте код ниже в файл template.php:

(Прочитайте примечания ниже кода.)

function mmsearchresults_form_alter(&$form, &$form_state, $form_id){
  if($form_id == "views_exposed_form"){
    dsm($form); // print $form array on the top of the page
    if (isset($form['title'])) {
            $form['title']['#attributes'] = array('placeholder' => array(t('Gemeente...')));
    }
  }
}


Примечание 1: Если функция form_alter уже существует, не добавляйте ее снова, просто скопируйте и вставьте часть if($form_id=...).

Примечание 2: измените «заголовок» на любой элемент, который вы хотите добавить заполнитель.

Примечание 3: Если вы не хотите отображать метку, вы можете сделать это с помощью css (display: none) или путем добавления unset($form['title']['#title']); внутри кода выше.

ответил herci 4 ThuEurope/Moscow2014-12-04T02:10:15+03:00Europe/Moscow12bEurope/MoscowThu, 04 Dec 2014 02:10:15 +0300 2014, 02:10:15
1

У меня была такая же проблема с помещением заполнителя на вход фильтра, поэтому я использую код jQuery на «diplay: none»; блок.

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

<script>

    $(function($){
        var elm = $("#id-of-the-input");
        elm.val(elm.attr('name'));
        elm.focus(function(event){
            event.preventDefault();
            if(elm.val() == elm.attr('name')){
                elm.val('');
            }
        });
        elm.focusout(function(event){
            event.preventDefault();
            if(elm.val() == ""){
                elm.val(elm.attr('name'));
            }
        });
    });

    </script>
ответил Cho Kri 30 MarpmSun, 30 Mar 2014 21:46:34 +04002014-03-30T21:46:34+04:0009 2014, 21:46:34
0

Использование более конкретного подхода с помощью hook_form_FORM_ID_alter:

<?php
/**
 * Implements hook_form_FORM_ID_alter() for views_exposed_form().
*/
function hook_form_views_exposed_form_alter(&$form, &$form_state) {
    $form['form_name']['#attributes']['placeholder'] = t('Placeholder text here');
}
ответил frazras 26 J000000Tuesday16 2016, 19:01:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132