Итак, в данном примере я немного изменю стандартный друпаловский блок с формой поиска. А если поточнее, добавлю в поле ввода произвольный текст в блоке формы поиска, исчезающий по клику левой клавиши мыши.
Вот рабочий код, далее вникаем в суть комментариев:
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 тоже актуально.
Источник: sooource.net