Решение
Показать форму в шаблоне
Нужно вставить такой код:
<?php if ($search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
Чтобы форма поиска была показана, нужно чтобы:
- Стандартный модуль Search активирован
- На странице настройки темы (admin/build/themes/settings/< theme-name >) был включен показ формы поиска (галочка возле "Поиск материалов" ("Search box")).
- Права доступа к форме поиска ("Поиск материалов") были установлены на странице "Контроль доступа" (admin/user/access) в зависимости от роли.
Изменить вид формы поиска
Шаг 1
- Создайте файл template.php, если он не существует в вашей теме.
- Добавьте в него код:
<?php
function phptemplate_search_theme_form($form) {
/**
* This snippet catches the default searchbox and looks for
* search-theme-form.tpl.php file in the same folder
* which has the new layout.
*/
return _phptemplate_callback('search_theme_form', array('form' => $form), array('search-theme-form'));
}
?>
Шаг 2
Сниппет в template.php ловит форму поиска по умолчанию перед тем, как она будет показана и ищет в той же папке файл search-theme-form.tpl.php, который определяет новый дизайн.
Очень простой пример файла search-theme-form.tpl.php (Druapl 4.x):
<label for="edit[search_theme_form_keys]">Search</label>
<input type="text" maxlength="128" name="edit[search_theme_form_keys]" id="edit-search_theme_form_keys" size="25" value="" title="Enter the terms you wish to search for." class="form-text" />
<input type="submit" name="op" value="Search" />
<input type="hidden" name="edit[form_id]" id="edit-search-theme-form" value="search_theme_form" />
<input type="hidden" name="edit[form_token]" id="a-unique-id" value="<?php print drupal_get_token('search_theme_form'); ?>" />
<input type="text" maxlength="128" name="edit[search_theme_form_keys]" id="edit-search_theme_form_keys" size="25" value="" title="Enter the terms you wish to search for." class="form-text" />
<input type="submit" name="op" value="Search" />
<input type="hidden" name="edit[form_id]" id="edit-search-theme-form" value="search_theme_form" />
<input type="hidden" name="edit[form_token]" id="a-unique-id" value="<?php print drupal_get_token('search_theme_form'); ?>" />
Сниппет обновлен и проверен на совместимость с Drupal 4.7.x и Drupal 5.x:
<label for="search_theme_form_keys">Custom Search</label>
<input type="text" maxlength="128" name="search_theme_form_keys" id="edit-search_theme_form_keys" size="25" value="" title="Enter the terms you wish to search for." class="form-text" />
<input type="submit" name="op" value="Search" />
<input type="hidden" name="form_id" id="edit-search-theme-form" value="search_theme_form" />
<input type="hidden" name="form_token" id="a-unique-id" value="<?php print drupal_get_token('search_theme_form'); ?>" />
<input type="text" maxlength="128" name="search_theme_form_keys" id="edit-search_theme_form_keys" size="25" value="" title="Enter the terms you wish to search for." class="form-text" />
<input type="submit" name="op" value="Search" />
<input type="hidden" name="form_id" id="edit-search-theme-form" value="search_theme_form" />
<input type="hidden" name="form_token" id="a-unique-id" value="<?php print drupal_get_token('search_theme_form'); ?>" />
Обратите внимание:
Вам не нужны открывающие и закрывающие теги формы в вашем файле search-theme-form.tpl.php. Drupal автоматически добавить их при отрисовке форм.
Пример. Изменение текста кнопки "Поиск"
Просто найдите следующую строку в search-theme-form.tpl.php:
<input type="submit" name="op" value="Search" />
и замените на:
<input type="submit" src="images/go-button.gif" name="op" value="GO!" />
Пример. Изменить кнопку поиска на картинку
Это можно сделать с использованием CSS, но если вы хотите изменить кнопку на изображение, используя ваш search-theme-form.tpl.php, то вам нужно просто изменить код:
<input type="submit" name="op" value="Search" />
на такой:
<input type="image" src="images/go-button.gif" name="op" value="Search" />
Настройте правильный путь к картинке.
Использованные материалы
Полезные ссылки
- API функции search_box(), которая формирует переменную $search_box
- Замена кнопки в форме поиска на графическую. Как?
- Customising the search forms
Bookmark/Search this post with










