Юниты главной

Вывод главной страницы возможен с помощью юнитов, размещенных в каталоге шаблона type/home/units.php. Когда используются юниты, отключается любой другой вариант вывода главной.

Строго говоря, использовать юниты можно произвольно, а не только для главной.

В файле units.php может быть любое количество юнитов, которые выводятся последовательно.

Юниты для главной также можно задать в админ-панели в Настройках шаблона.

Каждый юнит представляет собой секционные опции в виде:

[unit]
данные юнита
[/unit]

Данные юнита задаются в виде «ключ = значение». Существуют предопределенные ключи для разных задач.

Ключ «html»

Ключ html используется для вывода простого html-кода или текста.

[unit]
html = <h1>Заголовок</h1>
[/unit]

При этом допускается использование php-шаблонизатора MaxSite CMS (в виде {{ }} и {% %}).

Если текст нужно разместить на несколько строк, то его следует обрамить с помощью _START_ и _END_:

[unit]
html = _START_
	<h1>Заголовок</h1>
	 <span class="t-red">Текст</span>	
_END_
[/unit]

Данный приём разбиения значения опции можно использовать для любых секционных опций.

В файле units.php используются автоматические замены

  • [siteurl] — заменяется на адрес сайта.
  • [templateurl] — заменяется на url-адрес шаблона.
[unit]
html = <a href="[siteurl]">Главная</a>
[/unit]

Ключ «ushka»

С помощью этого ключа можно вывести произвольную ушку. Достаточно лишь указать имя ушки.

[unit]
ushka = реклама1
[/unit]

Ключ «component»

Для вывода компонента указывается его имя (каталог):

[unit]
component = footer
[/unit]

Ключ «sidebar»

Для вывода произвольного сайдбара указывается его имя:

[unit]
sidebar = 3
[/unit]

Чтобы наполнить сайдбар виджетами, его следует определить в самом шаблоне.

Вывод опций

Для вывода опции нужно указать её ключ. При этом можно указать тип опции и дефолтное значение, если опция не определена.

[unit]
option_key = my_option
option_type = my_type
option_default = Значение по умолчанию
[/unit]

Обычно для шаблона все опции уникальны. Достигается это за счет option_type, который равен текущему шаблону (его каталогу). Поэтому можно не указывать option_type, он будет автоматически присвоен шаблону (или указать как %TEMPLATE%). Если значение по умолчанию — пустая строка, то option_default, также можно не указывать.

В юните происходит только вывод опции. Она задаётся уже в шаблоне в виде ini-файла.

Файл юнита (ключ «file»)

Юнит может выводиться внешним файлом. В этом файле будут доступны все данные юнита. Файлы юнитов главной размещаются в type/home/units/ (если там файла нет, то он ищется от каталога шаблона). Наиболее используемый файл last-pages.php, который позволяет выводить записи с большим количеством параметров.

В общем виде файл указывается с помощью ключа file:

[unit]
file = my_unit.php
[/unit]

В даном примере будет подключен файл type/home/units/my_unit.php, где в произвольном виде можно разместить код для вывода.

Файл юнита «last-pages.php»

файл last-pages.php очень мощный файл и часто используется вебмастерами. В нём достаточно много опций, с помощью которых можно задать критерии получения записей, например номер рубрики, а также сформировать сам html-вывод. Для этого используется шаблонизатор Page_out, а также его «надстройка» Block_pages. Это достаточно сложные php-классы, поэтому всё управление и осуществляется с помощью опций last-pages.php.

Опций достаточно много, поэтому просто откройте last-pages.php для их просмотра. Опции указываются прямо в данных юнита, например:

[unit]
file = last-pages.php
limit = 3
cat_id = 1, 5, 7
line1 = [title]
line2 = [cat][date]
line3 = 
line4 = 
line5 = 
[/unit]

Последнюю версию last-pages.php вы найдёте в default-шаблоне.

Ключ «require»

Ключ require также подключает внешний файл юнита, но всегда указывается относительно каталога шаблона. Кроме этого в таком файле поддерживается php-шаблонизатор (ключ tmpl) и функция парсера текста (ключ parser).

[unit]
require = block/home1.php
tmpl = 1
parser = autotag_simple
[/unit]

В данном примере будет выведен файл block/home1.php который преварительно обработается через php-шаблонизатор и парсер Simple.

Условие вывода юнита

У юнита можно задать условие вывода с момощью ключа _rules. Условие задается в виде php-строки (без ошибок), которая дожна возвращать булево значение. Если условие истино, то юнит будет выполняться, иначе его обработка и вывод будет проигнорирован.

[unit]
_rules = !is_type('home')
html = <a href="[siteurl]">Главная</a>
[/unit]

Данный ввод будет выведен везде, кроме главной.

Специальная конструкция @fromfile

С помощью специальной конструкции @fromfile можно подключить произвольный файл в виде текста. В место этой конструкции будет добавлен текст указанного файла (путь указывается относительно каталога шаблона). Таким образом можно выносить в отдельные файлы прозвольные участки текста.

Например можно вынести весь юнит отдельно:

@fromfile block/home-unit-1.php

Не имеет значения где в units.php указывается @fromfile : вначале произойдёт «склейка» файлов, и только после этого результат будет обработан как секционные опции. Данная возможность позволяет вынести в отдельный файл какую-то сложную часть юнита, чтобы не загромождать код units.php.

[unit]
cat_id = 7..12
limit = 4
@fromfile block/home-unit-2.php
[/unit]

Собственные переменные юнита

В юните можно создавать и использовать собственные переменные. Для задания такой переменной её ключ должен начинаться с var@. А использование (то есть получение значений) с тем же ключом, заключенным в квадратные скобки.

[unit]
file = last-pages.php
cat_id = 5..14
limit = 6

var@title = Книги
var@class = bg-green

block_start= <div class="[var@class]">[var@title]
block_end = </div>
[/unit]

В данном примере были заданы и использованы переменные var@title и var@class. После обработки этот код будет эквивалентен этому:

[unit]
file = last-pages.php
cat_id = 5..14
limit = 6

block_start= <div class="bg-green">Книги
block_end = </div>
[/unit]

Возможность задания переменных обычно используется совместно с @fromfile, чтобы упростить настройку юнита и не загромождать код.

[unit]
file = last-pages.php
cat_id = 5..14
limit = 6

var@title = Книги
var@class = bg-green

@fromfile block/home-unit-3.php 

[/unit]

То есть var-переменные будут использованы в block/home-unit-3.php.

Специальная конструкция @USE_PHP@

В файле units.php обычно размещаются только секционные опции: всё что вне блоков юнитов будет проигнорировано. Но в некоторых случаях необходимо разместить какой-то php-код. Для этого в произвольном месте файла (обычно вверху) нужно разместить специальню конструкцию @USE_PHP@. При её наличии, MaxSite CMS вначале обработает units.php как обычный php-файл (можно использовать php-шаблонизатор), а уже после произвёдет парсинг секционных опций.