[document]
type = manual
name = "Как устроена тема"
description = 'Одним из самых часто задаваемых вопросов являются вопросы об устройстве темы движка. Сразу надо заметить, что шаблоны темы устроены просто и дают вэбмастеру свободу творчества. И так ключевые факты:

  • тема это html, в котором отсутствует исполняемый php код
  • все шаблоны темы умещаются в одном файле index.tml (безусловно, речь не идет о стилях и картинках, только html)
  • в шаблонах используются теги вида $object.property (по русски $объект.свойство)
  • для разделения шаблонов используются html комментарии вида <!--section-->...любой html или другие шаблоны...<!--/section-->

Разберем детально на примере темы по умолчанию, которая находится в папке themes/default дистрибутива. Если все упростить то тема устроена следующем образом:

  • меню
  • контент
  • два сайтбара с виджетами
  • подвал

Вот реальный пример, взята тема по умолчанию и из нее для понимания я вырезал все шаблоны. Используются глобальные объекты $options и $template, которые всегда доступны в шаблоне.


<body>
    <div id="header"><div id="logo"><span class="name"><a href="$options.url/">$options.name</a></span><span class="slogan">$options.description</span>
</div></div>
    <div id="topmenu">
$template.menu
</div>
<div id="out">
<div id="middle">
    <div id="content">
$template.content
    </div>
    <div id="sidebar">
$template.sitebar
    </div>

<pre><code>&lt;div id="footer"&gt;
&lt;div id="bottom"&gt;
&lt;ul id="footerbar"&gt;

$template.sitebar

        &lt;div id="copyright"&gt;&lt;span class="blogolet"&gt;&lt;a href="$options.url$options.home"&gt;$options.name&lt;/a&gt;&lt;/span&gt;$template.footer&lt;/div&gt;
&lt;/div&gt;