Создание новой темы. Часть третья: остальные .tpl.php.

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

Аватар пользователя steel.ne steel.ne 3 апреля 2007 в 21:23

Теперь рассмотрим вклад остальных шаблонов в формирование страницы.

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

Желающие познать, какие переменные можно использовать в каком шаблоне - добро пожаловать на http://drupal.org/node/11812
Если уж очень непонятно - говорите, переведу.

Разберем например состав переменной $sidebar_left.

<div class="block block-user" id="block-user-1">
<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

  <div class="block block-<?php print $block->module; ?>" id="block-<?php print $block->module; ?>-<?php print $block->delta; ?>">
    <h2 class="title"><?php print $block->subject; ?></h2>
    <div class="content"><?php print $block->content; ?></div>
 </div>

Что опять получается? Сначала, используя модуль User, формируется $block->subject и $block->content, эти значения подставляются в шаблон block.tpl.php, его вывод кладется в переменную $sidebar_left, которая затем используется в шаблоне page.tpl.php, который в конечном итоге дополняется HTTP заголовками и отдается пользователю.

Глянем, что можно извлечь из переменной $content:

<div class="node">
<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">&raquo;
<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:

<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
    <?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">&raquo; <?php print $links?></div><?php }; ?>
  </div>

Хм. Прямо братья-близнецы. Кстати, видем пустые теги, например <span class="taxonomy"></span>. Понятно откуда взялись? Как в старом анекдоте: "Ну нет у меня телевизора!"

К этому времени в голове уже четко должна сложится структура всех элементов и взаимоотношение шаблонов в стандартной теме Bluemarine. Если какой-то кусок не осветил, считая его само собой разумеющимся - говорите. А то перейдем к CSS.

Чтобы не было разночтений, прикреплю исходник странички.

ВложениеРазмер
Иконка простого текстового файла index.html_.txt2.95 КБ

Комментарии

Аватар пользователя PVasili PVasili 3 апреля 2007 в 21:43

[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]

Аватар пользователя steel.ne steel.ne 4 апреля 2007 в 9:33

Прочитал все 3 части и не понял собственно где то что обещано в заголовке? Smile

Я думал - "вот щас по-быстрому расскажу как создать CSS-тему". Потом в голову приходит мысль - "надо же рассказать, где посмотреть структуру". И таким образом, пока не написал - не попустило Wink

Аватар пользователя NurOff NurOff 6 февраля 2008 в 12:49

Сижу около 12 часов.
Давно понял что мне надо разобрать переменную content.
Но уже туплю, где эта пременная прячется.
Всего лишь хочу пренести блоки в содержимом наверх.
Чтоб они отображались выше остального материала расположенного на странице.

Аватар пользователя steel.ne steel.ne 7 февраля 2008 в 22:02

Тебе скорее всего надо не переменную разбирать, а просто назначить новые области. Типа как $sidebar_left. И туда уже натолкать блоков.

Аватар пользователя ruman ruman 8 января 2009 в 17:43

steel.ne wrote:
Тебе скорее всего надо не переменную разбирать, а просто назначить новые области. Типа как $sidebar_left. И туда уже натолкать блоков.

как назначять эти новые области?
Возникла такая проблема:
Дизайн четырёх колоночный: левая колонка, две колонки контента, правая колонка
Я так понимаю, что блоки выводятся через переменные вписанные в page.tpl.php
Как мне воткнуть в левую и в правую колонку КОНТЕНТА разные блоки.

Аватар пользователя pselfin pselfin 18 августа 2010 в 16:03

"astrodeep" wrote:
Скажите а где посмотреть можно содержимое переменных? Всю тему облазил)

Если имелось ввиду значение переменных, то стоит начать от сюда.

Аватар пользователя astrodeep astrodeep 18 августа 2010 в 16:08

<a href="mailto:P.Selfin@drupal.org">P.Selfin@drupal.org</a> wrote:
"astrodeep" wrote:
Скажите а где посмотреть можно содержимое переменных? Всю тему облазил)

Если имелось ввиду значение переменных, то стоит начать от сюда.

Quote:

Разберем например состав переменной $sidebar_left.


Где етот состав можно посмотреть?
Я только начинаю изучать друпал-так что может туплю.