Drupal: Настройка формы поиска

Итак, стоит задача сделать форму поиска, текстовое поле которой содержит текст по умолчанию, а при помещении в него курсора поле очищаестя. При освобождении текстового поля, если его значение нулевой длины, то-есть ничего введено не было - снова возвращается значение по умолчанию.

Для решения этой задачи воспользуемся API Drupal, который изменяет формы, а именно:

В файле template.php определим хук hook_form_FORM_ID_alter, который изменит данные самой формы:

function pet_clinic_form_search_block_form_alter(&$form, &$form_state, $form_id) {
    $form['search_block_form']['#title'] = '';
    $form['search_block_form']['#size'] = 25;
    $form['search_block_form']['#value'] = 'Поиск';
    $form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = 'Поиск';}";
    $form['search_block_form']['#attributes']['onfocus'] = "if (this.value == 'Поиск') {this.value = '';}";
    // Убираю текст кнопки, останется только фоновый рисунок
    $form['actions']['submit']['#value'] = '';
}

Дальнейшее оформление делается с помощью CSS.

There are 2 Comments

Нужно темизировать форму поиска в Drupal 7 так, чтобы в строке поиска выводилось, к примеру, слово "Поиск". А при попытке ввода своего текста для поиска это слово исчезало. Так как поиск работает и по нажатию Enter, то так же хотелось бы убрать кнопку "Найти". Ребята, нужно сделать такую же форму поиска как например на тут . Что бы можно было нажать на ссылку "Refine your search" и появлялось меню с выбором категорий. Как это организовать в своём модуле?

Доброго дня.

Есть такой атрибут html placeholder. По аналогии с опианным в статье настройте этот атрибуд и будет вам счастье.

Твори, или уйди в сторону и не мешай творить другим.
Делись своим опытом и знаниями, ибо в могиле они тебе вряд-ли пригодятся.

Страницы

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

You must have Javascript enabled to use this form.