Теперь рассмотрим вклад остальных шаблонов в формирование страницы.
Если уже вдумчиво сравнить шаблон с исходником сформированно страницы, то мы можем легко определить, какой переменной какой кусок кода соответствует. Естественно можно создавать свои переменные, переделать функции их формирования, но это задачи третьего пункта. Сейчас нас интересует минимальные косметические изменения.
Желающие познать, какие переменные можно использовать в каком шаблоне - добро пожаловать на http://drupal.org/node/11812
Если уж очень непонятно - говорите, переведу.
Разберем например состав переменной $sidebar_left.
<h2 class="title">admin</h2>
<div class="content">
<ul class="menu">
<li class="collapsed"><a href="/?q=node/add">Create content</a></li>
<li class="leaf"><a href="/?q=user/1">My account</a></li>
<li class="collapsed"><a href="/?q=admin">Administer</a></li>
<li class="leaf"><a href="/?q=logout">Log out</a></li>
</ul>
</div>
</div>
И сравним его с block.tpl.php
Что опять получается? Сначала, используя модуль User, формируется $block->subject и $block->content, эти значения подставляются в шаблон block.tpl.php, его вывод кладется в переменную $sidebar_left, которая затем используется в шаблоне page.tpl.php, который в конечном итоге дополняется HTTP заголовками и отдается пользователю.
Глянем, что можно извлечь из переменной $content:
<h2 class="title"><a href="/?q=node/1">Моя первая страница</a></h2>
<span class="submitted">Submitted by <a href="/?q=user/1" title="View user profile.">admin</a> on Mon, 04/02/2007 - 18:11.</span>
<span class="taxonomy"></span>
<div class="content"><p>Собственно моя первая страничка.</p>
</div>
<div class="links">»
<ul class="links inline">
<li class="first last comment_add"><a href="/?q=comment/reply/1#comment-form" title="Add a new comment to this page." class="comment_add">Add new comment</a></li>
</ul>
</div>
</div>
Сравним-ка это все дело с node.tpl.php:
<?php if ($picture) {
print $picture;
}?>
<?php if ($page == 0) { ?><h2 class="title"><a href="<?php print $node_url?>"><?php print $title?></a></h2><?php }; ?>
<span class="submitted"><?php print $submitted?></span>
<span class="taxonomy"><?php print $terms?></span>
<div class="content"><?php print $content?></div>
<?php if ($links) { ?><div class="links">» <?php print $links?></div><?php }; ?>
</div>
Хм. Прямо братья-близнецы. Кстати, видем пустые теги, например <span class="taxonomy"></span>
. Понятно откуда взялись? Как в старом анекдоте: "Ну нет у меня телевизора!"
К этому времени в голове уже четко должна сложится структура всех элементов и взаимоотношение шаблонов в стандартной теме Bluemarine. Если какой-то кусок не осветил, считая его само собой разумеющимся - говорите. А то перейдем к CSS.
Чтобы не было разночтений, прикреплю исходник странички.
Вложение | Размер |
---|---|
index.html_.txt | 2.95 КБ |
Комментарии
[url=http://wiki.drupal.ru/doc/peremennye_v_shablonakh]о переменных[/url]======================================================
[url=http://wiki.drupal.ru]Документация[/url],[url=http://wiki.drupal.ru/doc/poleznye_ssylki_dlya_dizainerov]Дизайн[/url],[url=http://wiki.drupal.ru/doc/gotovye_perevody]Переводы[/url]
Прочитал все 3 части и не понял собственно где то что обещано в заголовке?
Прочитал все 3 части и не понял собственно где то что обещано в заголовке?
Я думал - "вот щас по-быстрому расскажу как создать CSS-тему". Потом в голову приходит мысль - "надо же рассказать, где посмотреть структуру". И таким образом, пока не написал - не попустило
Сижу около 12 часов.
Давно понял что мне надо разобрать переменную content.
Но уже туплю, где эта пременная прячется.
Всего лишь хочу пренести блоки в содержимом наверх.
Чтоб они отображались выше остального материала расположенного на странице.
Тебе скорее всего надо не переменную разбирать, а просто назначить новые области. Типа как $sidebar_left. И туда уже натолкать блоков.
как назначять эти новые области?
Возникла такая проблема:
Дизайн четырёх колоночный: левая колонка, две колонки контента, правая колонка
Я так понимаю, что блоки выводятся через переменные вписанные в page.tpl.php
Как мне воткнуть в левую и в правую колонку КОНТЕНТА разные блоки.
Спасибо. Факт. Сделал новй регион. Вопрос решился.
а как сделать доступным выражение
<?php print $breadcrumb; ?>
из файла page.tpl.php в файле node.tpl.php ?спасибо, если бы пораньше наткнулся то сэкономил бы время
Скажите а где посмотреть можно содержимое переменных? Всю тему облазил)
Если имелось ввиду значение переменных, то стоит начать от сюда.
Где етот состав можно посмотреть?
Я только начинаю изучать друпал-так что может туплю.