Итак, в данном примере я немного изменю стандартный друпаловский блок с формой поиска. А если поточнее, добавлю в поле ввода произвольный текст в блоке формы поиска, исчезающий по клику левой клавиши мыши.
Вот рабочий код, далее вникаем в суть комментариев:
function модуль_или_тема_preprocess_search_block_form(&$vars) {
// Устанавливаем значение поля формы
$vars['form']['search_block_form']['#value'] = t('Что будем искать?');
// Прописываем нужный нам функционал
$vars['form']['search_block_form']['#attributes'] =
array(
'onblur' => "if (this.value == '') {this.value = '" . $vars['form']['search_block_form']['#value'] . "';} ;",
'onfocus' => "if (this.value == '" . $vars['form']['search_block_form']['#value'] . "') {this.value = '';} ;"
);
// Ребилд блока с формой поиска
unset($vars['form']['search_block_form']['#printed']);
$vars['search']['search_block_form'] = drupal_render($vars['form']['search_block_form']);
// Сборка элементов массива
$vars['search_form'] = implode($vars['search']);
}
Здесь «модуль_или_тема» — имя вашего модуля или темы. Тут уж кому как будет удобнее использовать. Добавляем блок с формой поиска в регион шаблона, сбрасываем кэш и радуемся результату.
Всё описанное в данной статье-заметке актуально для Drupal версии 7.10. Не пытайтесь воспроизвести этот код на шестерке, — существуют различия API, — фишка системы. Кому надо поподробнее, — читайте api.drupal.org почаще.
Проверял на Firefox 9.0.1, Chrome 16.0.912.75, Opera 11.11.2109. Для Internet Explorer 8 тоже актуально.
Drupal 7
h++p://www.sooource.net/drupal7-search-block-form
Оставьте первый комментарий