Темизация формы поиска. Лишние div'ы

Главные вкладки

Аватар пользователя CSoft CSoft 1 августа 2010 в 16:13

Всем привет! Вроде изъезженная тема, но всё равно есть вопрос...

Благодаря многим полезным статьям здесь сделал свою форму, как мне нужно. Но бесит одна вещь - элементы заворачиваются в дивы, причём местами очень бестолково.

Например:

<div>поиск <div class="form-item" id="edit-search-block-form-1-wrapper">
 <input type="text" maxlength="128" name="search_block_form" id="edit-search-block-form-1" size="15" value="" title="Введите слова, которые вы хотите искать." class="form-text" />
</div>
 <input type="submit" name="op" id="edit-submit" value="" class="form-submit search" />
...
</div>

Ужас... Решил я убрать всё лишнее, отыскал, что это всё вокруг рисует theme_form_element, оформил его в template.php, подкорректировал под себя.

Всё отлично, всё нравится, но, как вы поняли, это коснулось всех форм на сайте. Вот собственно и вопрос: можно ли вызвать эту функцию только для модуля поиска или ещё как-то по-другому? А может даже и другой совсем путь есть...

Мне дивы эти не просто портят вид формы (хоть я и могу в css сделать всё, что нужно), они там тупо не нужны...

Комментарии

Аватар пользователя direqtor direqtor 1 августа 2010 в 16:38

В theme_form_element должно и имя формы поступать. Если форма та, что вам нужна, темизируйте, если нет - отдаёте штатный код.

Аватар пользователя CSoft CSoft 1 августа 2010 в 17:06

"direqtor" wrote:
В theme_form_element должно и имя формы поступать. Если форма та, что вам нужна, темизируйте, если нет - отдаёте штатный код.

А что, хорошая идея! Спасибо! Вот, как я сделал:

<?php
if ($element["#parents"][0] == "search_block_form" || $element["#parents"][0] == "search_theme_form")
{
  return 
$value;
}
else
{
  
// дефолтный код
}
?>

Если у кого будут ещё идеи или поправки - с удовольствием выслушаю Smile

Аватар пользователя Erly Erly 17 октября 2010 в 18:47

Тоже столкнулся с такой проблемой. Помоему, если нужно вырезать дивы только в форме поиска, то это лучше сделать регулярным выражением или функцией strip_tags, вроде:


<?php 
print strip_tags($search_box'<input> , <button>');   

?> 
Аватар пользователя Erly Erly 17 октября 2010 в 19:08

просто в page.tpl.php

пишите:

<?php
// ....
<?php if ($search_box): ?>                           
  <?php print strip_tags (  $search_box '<form><input><label>') ; ?>                           
<?php endif; ?>
// ....
?>