Valery.O 18 апреля 2012 в 12:50 Drupal 7. Хочу задать default_value, чтобы по умолчанию выводился текст "Поиск по сайту..." При клике в поле поиска, текст должен пропадать. Drupal7 Есть вопрос Блог Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Valery.O 20 апреля 2012 в 4:32 Вот решение: 1. Копируем файл modules\search\search-block-form.tpl.php в папку с темой 2. Вставляем в файл код: <form action="/" method="post" id="search-block-form" accept-charset="UTF-8"> <div class="container-inline"> <h2 class="element-invisible">Форма поиска</h2> <div class="form-item form-type-textfield form-item-search-block-form"> <label class="element-invisible" for="edit-search-block-form--2">Поиск </label> <input onblur="if (this.value == '') {this.value = 'Поиск по сайту...';} ;" onfocus="if (this.value == 'Поиск по сайту...') {this.value = '';} ;" type="text" id="edit-search-block-form--2" name="search_block_form" value="Поиск по сайту..." size="15" maxlength="128" class="form-text" /> </div> <div class="form-actions form-wrapper" id="edit-actions"><input type="submit" id="edit-submit" name="op" value="Поиск" class="form-submit" /></div> <input type="hidden" name="form_build_id" value="form-hn9YxGaCVqRTt1Gpn0lm4IrtHRM0NoilQZreP2827E4" /> <input type="hidden" name="form_token" id="a-unique-id" value="<?php print drupal_get_token('search_block_form'); ?>" /> <input type="hidden" name="form_id" value="search_block_form" /> </div> </form> 3. Создаем файл template.php в папке с темой и пишем код: <?phpfunction phptemplate_search_block_form($form) { return _phptemplate_callback('search-block-form', array('form' => $form));} ?>
drupby 20 апреля 2012 в 5:10 просто в template.php function имя_темы_form_search_block_form_alter(&$form, &$form_state) { // задаём default value равное "New search" . $form['search_block_form']['#default_value'] = t('New search'); // обработчик default value при получении\потери фокуса $form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = '" . t('New search') . "';}"; $form['search_block_form']['#attributes']['onfocus'] = "if (this.value == '" . t('New search') . "') {this.value = '';}"; }
Комментарии
Вот решение:
1. Копируем файл modules\search\search-block-form.tpl.php в папку с темой
2. Вставляем в файл код:
<div class="container-inline">
<h2 class="element-invisible">Форма поиска</h2>
<div class="form-item form-type-textfield form-item-search-block-form">
<label class="element-invisible" for="edit-search-block-form--2">Поиск </label>
<input onblur="if (this.value == '') {this.value = 'Поиск по сайту...';} ;" onfocus="if (this.value == 'Поиск по сайту...') {this.value = '';} ;" type="text" id="edit-search-block-form--2" name="search_block_form" value="Поиск по сайту..." size="15" maxlength="128" class="form-text" />
</div>
<div class="form-actions form-wrapper" id="edit-actions"><input type="submit" id="edit-submit" name="op" value="Поиск" class="form-submit" /></div>
<input type="hidden" name="form_build_id" value="form-hn9YxGaCVqRTt1Gpn0lm4IrtHRM0NoilQZreP2827E4" />
<input type="hidden" name="form_token" id="a-unique-id" value="<?php print drupal_get_token('search_block_form'); ?>" />
<input type="hidden" name="form_id" value="search_block_form" />
</div>
</form>
3. Создаем файл template.php в папке с темой и пишем код:
<?php
function phptemplate_search_block_form($form) {
return _phptemplate_callback('search-block-form', array('form' => $form));
} ?>
просто в template.php
// задаём default value равное "New search" .
$form['search_block_form']['#default_value'] = t('New search');
// обработчик default value при получении\потери фокуса
$form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = '" . t('New search') . "';}";
$form['search_block_form']['#attributes']['onfocus'] = "if (this.value == '" . t('New search') . "') {this.value = '';}";
}
drupby
excellent!!!