Есть ли, несложная возможность, приписать полю поиска такое свойство?
<input type="text" name="login_name" value="Ваш логин" class="data" onfocus="if(this.value=='Поиск по сайту')this.value=''" onblur="if(this.value=='')this.value='Поиск по сайту'" />
Т.е. что бы в окошке поиска всегда светилась надпись "Поиск по сайту", а при шелчке в окне, надпись "Поиск по сайту" - исчезала. Как этого добиться? Что то методом бубенных танцев вокруг search.module у меня ничего не вышло.
Спасибо, заранее.
Комментарии
В файле template.php пишите след код:
$form['search_block_form_keys']['#value'] = t('Search');
$form['search_block_form_keys']['#attributes'] = array(
'onBlur'=> "if (this.value.length == 0) {this.value='{$form['search_block_form_keys']['#value']}'}",
'onFocus'=> "if (this.value== '{$form['search_block_form_keys']['#value']}') {this.value=''}"
);
return drupal_render($form);
}
что-то примерно такое )) точно не помню, но примерно так.
У меня 6 друпал, там вроде эта фишка работать не будет? Потому что нет под 6 друпал search_block_form которую можно вставить в template.php
Впрочем если прописать по тому принципу что вы привели, прямо search.module, то ничего кроме белой страницы не грузится. Как точно сделать, кто-то может подсказать?
почему например присвоенный мною класс, прописанный в style.css, в этом коде работает нормально:
а onBlur и onFocus ни под каким соусом не работают?
Проверено на drupal 5, может и в 6 можно по такому пути пойти? В папке с темой создать файл block-search-0.tpl.php и в него поместить:
<form action="/search/node" accept-charset="UTF-8" method="post" id="search-block-form">
<div style="width:100%"><input type="text" placeholder="Поиск" name="search_block_form_keys" id="SearchField" class="field"></div>
<input type="hidden" name="form_token" id="edit-search-block-form-form-token" value="<?php echo drupal_get_token('search_block_form'); ?>"/>
<input type="hidden" name="form_id" id="edit-search-block-form" value="search_block_form" />
<input type="hidden" name="op" id="edit-submit" value="Поиск" />
</form>
</div>
<script>if(document.getElementById) var ph = new InputPlaceholder (document.getElementById ('SearchField'), 'Поиск', 'fieldfill', 'field');</script>
нет, не сработало.
если ввести этот код:
и
через firebug, то все работает.
В подтверждение картинка прикреплена.
Но когда вставляешь это в search.module то кавычки такие - " ,а не такие - ' , он похоже не обрабатывает нормально.
Что делать? Причем на drupal.org про это нигде в обсуждениях не нашел. Вернее обсуждения и вопросы есть, а решения нет.
Что никто не знает, возможно это или нет и как?
2 J. Bravo
С Вашим примером я наверное не все правильно сделал?
файл block-search-0.tpl.php я сделал, код поместил. Но по какому принципу он должен был начать работать, я не понял...
Идея заключается в том, что этот файл должен использоваться движком темы для построения блока с определенным идентификатором (в данном случае - search-0). Такой подход использовался в пятой версии. В версии 6 вполне возможно что-то изменилось, но думаю принципиальная возможность пойти по такому пути осталась. Поищите, как выполнять темизацию отдельных блоков в Drupal 6. Если не получится - пишите, попробуем разобраться вместе.
Суммарно, опытным путем, т.к. иначе просто не умею:) (для 5 версии):
<form action="/search/node" accept-charset="UTF-8" method="post" id="search-block-form">
<div style="width:100%">
<input value="Поиск по сайту" onFocus="this.value=''" onBlur="if (this.value==''){this.value='Поиск по сайту'}" placeholder="Поиск" name="search_block_form_keys" id="SearchField" class="field">
</div>
<input type="hidden" name="form_token" id="edit-search-block-form-form-token" value="<?php echo drupal_get_token('search_block_form'); ?>"/>
<input type="hidden" name="form_id" id="edit-search-block-form" value="search_block_form" />
<input type="hidden" name="op" id="edit-submit" value="Поиск" />
</form>
</div>
<script>if(document.getElementById) var ph = new InputPlaceholder (document.getElementById ('SearchField'), 'Поиск', 'fieldfill', 'field');</script>