Шаблон Zebrum Lite представляет собой PHP-файл, поэтому для вывода частей страницы используются PHP-функции.
Хочется обратить особое внимание на функцию z_html()
. Вызов этой функции в шаблоне для обычной страницы приведет к подключению части шаблона из файла page.php
.
Содержимое файла page.php
в стандартном шаблоне:
<div class="page"> <h2 class="pagetitle"><?php z_h1(); ?></h2> <?php z_breadcrumb(array('title' => 'Путь:')); ?> <div class="entry"><?php z_content(); ?></div> <?php z_pagenumbers('subpages'); ?> <div class="postinfo">Эта страница была опубликована <?php z_time('d.m.Y'); ?> в <?php z_time('H:i'); ?>. <?php z_pagetags('<br />Метки: '); ?></div> </div>
Таким образом все содержимое страницы выносится в отдельный файл page.php
.
Это сделано для того, чтобы у модулей была возможность самим формировать HTML-код содержимого страницы.
Например, модули zmodule_allpages
, zmodule_listpages
и zmodule_tags
сами формируют HTML-код содержимого страницы, используя для этого файл части шаблона listpages.php
, который определяет как выводить список страниц.
Если в шаблоне не используется вызов функции z_html()
, то страницы, использующие эти модули, не будут отображать своего содержимого.
Для вывода тэгов с информаций о странице используется функция z_head()
. Её вызов должен быть внутри тэга <head>
.
<head> <?php z_head(); ?> </head>
Результат выполнения этой функции может выглядить следующим образом:
<title>Бесплатный движок для твоих сайтов!</title> <meta name="keywords" content="zebrum, бесплатная cms, cms на файлах" /> <meta name="description" content="Бесплатная система для создания и поддержки мини-сайтов." /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="alternate" type="application/rss+xml" title="Zebrum Lite" href="http://mysite.ru/feed/" />
Плагины и модули могут добавлять свою информацию в секцию HEAD
. Например, информация об RSS-ленте появится только при включенном плагине zplugin_rss
.
Информация о заголовке браузера, ключевых словах и описании страницы берется из свойств объекта страницы.
В самом шаблоне до вызова функции z_head()
можно заменить заголовок браузера или мета-тэги, используя объект шаблона. Изменение свойств объекта страницы в шаблоне до вызова функции уже не повлияет на результат её выполнения.
В шаблонизаторе для формирования HTML-кода может находиться не одна страница, а несколько.
Например, при подключении части шаблона listpages.php
из модуля zmodule_allpages
в шаблонизатор передается несколько страниц для формирования списка страниц.
Для перемещения между объектами страниц используется аналог курсора, который указывает на текущей объект страницы из списка. При этом большинство функций шаблонизатора (например, z_h1
или z_pagetags
) выводят информацию о странице, на которую указывает курсор.
Рассмотрим упрощённый вариант шаблона listpages.php
.
Пример 3.3. Упрощённый шаблон listpages.php
<h1><?php z_h1(); ?></h1> <?php z_breadcrumb(array('title' => 'Путь:')); ?> <?php while (z_nextpage()) : ?> <h2><a href="<?php z_link(); ?>"><?php z_h1(); ?></a></h2> <?php endwhile; ?> <?php z_pagenumbers('listpages'); ?>
Для вывода названий текущей страницы и всех страниц из списка используется одна и таже функция z_h1()
.
При подключении шаблона курсор указывает на первую страницу из списка. Модуль zmodule_allpages
первой страницей добавляет текущую страницу, то есть страницу, которая содержит список других страниц. Поэтому название запрошенной страницы отображается в тэге h1
.
Для перемещения курсора на следующую страницу используется функция z_nextpage()
. Она возвращает объект следующей страницы или false
, если в списке больше нет страниц. В приведенном примере результат выполнения этой функции используется для управления циклом while
.
Используя функцию z_havepages()
можно узнать, есть ли ещё в списке страницы. Например, можно выводить сообщение о том, что в списке нет страниц, как это происходит в следующем примере.
Пример 3.4. Пример использования функции z_havepages()
<h1><?php z_h1(); ?></h1> <?php z_breadcrumb(array('title' => 'Путь:')); ?> <?php if (z_havepages()) : ?> <?php while (z_nextpage()) : ?> <h2><a href="<?php z_link(); ?>"><?php z_h1(); ?></a></h2> <?php endwhile; ?> <?php z_pagenumbers('listpages'); ?> <?php else: ?> <p>Нет записей.</p> <?php endif; ?>
Текущий объект страницы, на который указывает курсор, можно получить используя функцию z_page()
.
Ниже перечислены функции для вывода некоторых свойств страницы. Доступ к дополнительным свойствам можно получить через объект страницы, возвращаемый функцией z_page()
.
Под траницей будем подразумевать страницу, на которую указывает курсор.
-
z_title()
Выводит заголовок браузера страницы.
-
z_h1()
Выводит название страницы.
-
z_link()
Выводит ссылку на страницу, относительно корня домена.
-
z_time($format = "Y-m-d")
Выводит дату публикации страницы. В качестве аргумента функции можно передать формат вывода даты.
Формат вывода соответствует формату функции PHP
date
.-
z_content()
Выводит текст страницы.
-
z_teaser($more_link_text)
Выводит тезис страницы.
Текст для тезиса определяется следующим образом.
Если в тексте присутствует
<!--more-->
, то выводится текст до этого маркера и ссылка на страницу с текстом$more_link_text
.Если у страницы несколько подстраниц, то в качестве текста будет использоваться первая подстраница. Текст берется до маркера
<!--more-->
, если он присутствует в тексте подстраницы. В любом случае, так как у страницы есть подстраницы, то будет выводиться ссылка на страницу.Текст для ссылки передается в качестве аргумента.
<?php z_teaser("Читать запись полностью »"); ?>
-
z_pagetags($before, $separator, $after)
Выводит список тэгов страницы. Если на сайте есть страница с модулем
zmodule_tags
(или свой модуль, реализующий раздел тэгов), то с тэгов будет проставляться ссылки на страницы тэгов.В качестве аргументов функции можно передать три аргумента, позволяющие оформить вывод списка тэгов.
$before
— текст, который будет выводиться перед списком тэгов;$separator
— разделитель, который будет выводиться между тэгами;$after
— текст, который будет выводиться после списка тэгов.Если у страницы нет ни одного тэга, то ничего выводиться не будет.
Для вывода постраничной навигации в системе был создан статический класс znavi
.
По умолчанию постраничная навигация может выводиться в двух предопределенных форматах: "listpages" и "subpages". Первый используется в шаблоне списка страниц, второй — для вывода списка дочерних страниц.
Информация о количестве страниц в навигации задается системой (или модулем) и не зависит от того, на какую страницу указывает z_page()
.
Эти форматы можно переопределять в файле functions.php
.
Пример 3.5. Переопределение форматов постраничной навигации
znavi::setPatterns("listpages", array( 'before' => '<div id="wp_page_numbers"><ul>', 'title' => '<li class="page_info">Страница %1$d из %2$d</li>', 'page' => '<li><a href="%2$s">%1$d</a></li>', 'selectedPage' => '<li class="active_page"><a href="%2$s">%1$d</a></li>', 'separator' => '', 'after' => '</ul><div style="float: none; clear: both;"/></div></div>', )); znavi::setPatterns("subpages", array( 'before' => '<p>', 'title' => '<strong>Страницы:</strong> ', 'page' => '<a href="%2$s">%1$d</a>', 'selectedPage' => '%1$d', 'separator' => ' ', 'after' => '</p>', ));
Для вывода постраничной навигации достаточно вызвать функцию z_pagenumbers
и в качестве аргумента указать название формата.
Такое разделение формата вывода постраничной навигации от функции вызова было сделано для удобного соблюдения единообразия оформления постраничной навигации в разных шаблонах.
Zebrum Lite 2.0 поддерживает и старую функцию вывода постраничной навигации, где в качестве аргументов передается информация о вёрстке.
Пример 3.7. Вывод постраничной навигации с использованием z_pagenavigation
<?php z_pagenavigation( '<p>Страницы:', // текст перед списком '<a href="#link">#number</a>', // шаблон вывода номера страницу '#number', // шаблон вывода номера текущей страницы '</p>', // текст после списка ', ' // разделитель между номерами страниц ); ?>
Рекомендуется использовать функцию z_pagenumbers()
.
-
z_breadcrumb($params)
Функция является обёрткой для вывода виджета
zwidget_breadcrumb
. В качестве аргумента можно передать массив с настройками виджета.-
z_listpages($params)
Функция является обёрткой для вывода виджета
zwidget_listpages
. В качестве аргумента можно передать массив с настройками виджета.-
z_menu($params)
Функция является обёрткой для вывода виджета
zwidget_pagemenu
. В качестве аргумента можно передать массив с настройками виджета.-
z_subpages($sort, $open, $line, $close)
Функция является обёрткой для вывода виджета
zwidget_listpages
.Аргументы функции:
$sort
— порядок сортировки страниц;$open
— текст, который будет выведен перед списком страниц;$line
— шаблон строки со ссылкой на страницу;$close
— текст, который будет выведен после списка страниц.В шаблоне строки можно использовать следующие метки:
#link
— будет заменено на ссылку на страницу;#title
— будет заменено название пункта меню страницы.-
z_tagcloud()
Функция является обёрткой для вывода виджета
zwidget_tagcloud
. В качестве аргумента можно передать массив с настройками виджета.-
z_sitemap()
Выводит ссылку на страницу с модулем карты сайта (
zmodule_sitemap
). В качестве текста ссылки будет использовано название пункта меню страницы карты сайта.Если на сайте нет карты сайта, то вместо ссылки будет выведен текст "Нет карты сайта".
-
z_tags()
Выводит ссылку на страницу тэгов (
zmodule_tags
). В качестве текста ссылки будет использовано название пункта меню страницы тэгов.Если на сайте нет страницы тэгов, то вместо ссылки будет выведен текст "Нет облака тэгов".