Здравствуйте!
Темизация формы поиска, да и вообще темизация любых форм в Друпал - вопрос достаточно популярный и уже хорошо разжеваный. Методы темизации форм всем желающим хорошо известны.
Не ожидал я, что столкнусь в этом деле с проблемой....
Суть проблемы в следующем.
Делаем все как сделует, в template.php создаем функцию
/**
* This snippet catches the default searchbox and looks for
* search-block-form.tpl.php file in the same folder
* which has the new layout.
*/
return _phptemplate_callback('search-block-form', array('form' => $form));
}
В файл search-block-form.tpl пишем темизированный код
<table class="search">
<td class="s_left"> </td>
<td><input type="text" maxlength="128" name="search_block_form_keys" id="edit-search_block_form_keys" size="78" value="" title="Введите слова для поиска" class="form-text" /></td>
<td class="sbmt"><input type="image" id="edit-search-image" src="<?php print base_path() . path_to_theme() ?>/img/search-button.png" name="op" value="GO!" /></td>
<td class="s_right"></td>
</table>
</td>
<input type="hidden" name="form_id" id="edit-search-block-form" value="search_block_form" />
<input type="hidden" name="form_token" id="a-unique-id" value="<?php print drupal_get_token('search_block_form'); ?>" />
На выходе получается вот что:
<div> <td class="search">
<table class="search">
<td class="s_left"> </td>
<td><input type="text" maxlength="128" name="search_block_form_keys" id="edit-search_block_form_keys" size="78" value="" title="Введите слова для поиска" class="form-text" /></td>
<td class="sbmt"><input type="image" id="edit-search-image" src="/sites/all/themes/root/img/search-button.png" name="op" value="GO!" /></td>
<td class="s_right"></td>
</table>
</td>
<input type="hidden" name="form_id" id="edit-search-block-form" value="search_block_form" />
<input type="hidden" name="form_token" id="a-unique-id" value="934db82a8e682f0c758d31b22abbe6f7" />
</div></form>
По сути это как раз то что нужно, но! Я не могу управлять местом вывода тега "form". А это бы мне очень нужно для верстки. Знающие подтвердят, что наличие тега form влияет на отображение расстояний в его окрестностях, в частности это ярко выражено в Internet Explorer.
Как управлять именно выводом тега ? А лучше вообще - как избавиться от последствий при отображении?
В свое время я избавлялся так, выводил открытие формы где-нибудь между открытием таблицы и открытием ячейки :-)Но это ж шалости, а как по правильному?
Комментарии
style.css:
margin:0;
padding:0;
}
Не работает?
Интересует тот же вопрос. Какой код написать в шаблоне? Если написать <?php print $search_box ?> то на него не действует то, что мы написали в search-block-form.tpl
<?php
$search_block = drupal_get_form('search_block_form');
print render($search_block);
?>