Всем привет! Вроде изъезженная тема, но всё равно есть вопрос...
Благодаря многим полезным статьям здесь сделал свою форму, как мне нужно. Но бесит одна вещь - элементы заворачиваются в дивы, причём местами очень бестолково.
Например:
<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 сделать всё, что нужно), они там тупо не нужны...
Комментарии
В theme_form_element должно и имя формы поступать. Если форма та, что вам нужна, темизируйте, если нет - отдаёте штатный код.
А что, хорошая идея! Спасибо! Вот, как я сделал:
<?php
if ($element["#parents"][0] == "search_block_form" || $element["#parents"][0] == "search_theme_form")
{
return $value;
}
else
{
// дефолтный код
}
?>
Если у кого будут ещё идеи или поправки - с удовольствием выслушаю
Тоже столкнулся с такой проблемой. Помоему, если нужно вырезать дивы только в форме поиска, то это лучше сделать регулярным выражением или функцией strip_tags, вроде:
<?php
print strip_tags($search_box, '<input> , <button>'); ?>
просто в page.tpl.php
пишите:
<?php
// ....
<?php if ($search_box): ?>
<?php print strip_tags ( $search_box , '<form><input><label>') ; ?>
<?php endif; ?>
// ....
?>
Вопрос также актуален и для Drupal 7: https://stackoverflow.com/questions/14822660/how-do-i-remove-inner-div-o...
Ответ не нашёл