Справочник по языку шаблонов WebProject
В шаблонах WebProject используется html код и операторы для вставки переменных и функций.
Переменные и функции
Простая вставка выполняется указанием переменной или функции с аргументами в фигурных скобках:
- site.name - название сайта
- site.url - URL сайта
- year - текуший год
- url - URL страницы или элемента
- title - заголовок текста страницы или элемента
- page.title - заголовок страницы или элемента
- meta - META свойства страницы: описание, ключевые слова и директива BASE (возможно использование в виде:
<!--{meta/}-->
) - name - название страницы или элемента
- date - дата страницы или элемента
- text - html текст страницы или элемента
- plaintext - неформатированный текст страницы или элемента
- macrotext - неформатированный текст страницы или элемента обработанный шаблонизатором
- description - текст описания страницы или элемента
- src - URL изображения для фото
- page.url - URL страницы которому принадлежит фото или ссылка
- width - ширина изображения
- height - высота изображения
- target - для ссылок помеченных для открытия в новом окне возвращает target="_blank"
- isPage - определено, если элемент является Страницей
- isLink - определено, если элемент является Ссылкой
- isImage - определено, если элемент является Изображением
- isSection - определено, если элемент является Разделом
- isSnippet - определено, если элемент является Фрагментом
- isWidget - определено, если элемент является Виджетом
- isHomePage - определено, если элемент является Главной страницей
- isActive - определено, если элемент является текущей страницей
- hasText - определено, если у элемента задан текст
- hasLinks - определено, если к элементу подключены ссылки
- hasPhotos - определено, если к элементу подключены фото
- hasImages - определено, если у элемента есть подключенные изображения
- hasItems - определено, если у элемента есть дочерние элементы
- image - возвращает URL первого фото подключенного к элементу
- sitemap - выводит карту сайта в виде ненумерованного списка
- prop - возвращает значение пользовательского свойства по имени или определено, если значение свойства равно второму или последующим аргументам
- isItem - определено, если указанное свойство определено в родителе элемента
- date - возвращает дату элемента в указанном формате
- thumb - создает эскиз изображения заданного размера и возвращает его URL
- word - возвращает слово из текста
- crypt - аналог UNIX-функции Crypt
- substr - возвращает подстроку из текста
- replace - поиск и замена текста
- isFile([тип_файла]) - определено, если ссылка является файлом указанного в аргументе типа
- isPreview - определено, если выполняется предварительный просмотр сайта
- isTemplate(имя_шаблона) - определено, если элемент использует указанный шаблон
- itemProp(группа_элемента,имя_свойства) - возвращает свойство элемента по группе и имени свойства
- widgetProp(группа_виджета,имя_свойства) - возвращает свойство виджета по группе и имени свойства
Переменные и функции определяемые пользователем
Пользовательские переменные и функции определяются на вкладке Настройки в поле Свойства. Например:
цена=50 руб.
Использовать переменные можно в тексте страницы или в шаблоне:
Цена товара: {цена}
Там же можно задавать и функции пользователя:
цена=<span class="price">от {$1} до {$2} руб.</span>
Для вызова функции указывается ее имя и аргументы в круглых скобках перечисленные через запятую:
Цена товара: {цена(50,100)}
Условия
Условия так же как и переменные или функции указываются в фигурных скобках, но с указанием специальных знаков:
{?условие}
- начало условия - следующий за конструкцией код выполняется, если условие выполнено (переменная или результат функции определен){:?условие}
- иначе если - выполняется если выполняется условие{:}
- иначе - выполняется если ни одно условие не выполнено{/?}
- конец условия
Перед условием можно указать знак !, тогда результат условия будет обратным, так же допустимы операции сравнения (> < = !=
) с числовыми константами и комбинации условий через операторы &
(и), |
(или).
Итераторы
Итераторы определяют блок кода который может быть выполнен несколько раз, в зависимости от того сколько элементов выбрано. Итераторы имеют следующий вид: <!--{тип_итератора[:[группа],[номер],[количество]]}-->
код_для_подстановки_переменных
<!--{/}-->
. Элементы можно фильтровать по группе (группа указывается на вкладке Настройки в свойствах элемента) и выводить с определенного номера в списке заданное количество элементов. Все эти параметры указываются после названия типа итератора и двоеточия через запятую. Определены следующие типы итераторов:
- menu - меню сайта
- breadcrumbs - хлебные крошки
- item - один подчиненный элемент страницы или элемент виджета (фото и ссылка)
- items - подчиненные элементы страницы или элементы виджета (фото и ссылки)
- snippet - один фрагмент страницы или элемента
- snippets - фрагменты страницы или элемента
- page - одна подчиненная страница
- pages - подчиненные страницы
- widget - один виджет
- widgets - группа виджетов
- image - одно из изображений текущего элемента или подчиненных
- images - серия изображений текущего элемента или подчиненных
- photo - одно фото из подключенных к элементу
- photos - серия фото подключенных к элементу
- link - одна из ссылок подключенных к элементу
- links - список ссылок подключенных к элементу
- post - страница или ссылка являющаяся элементом новостного канала сайта (в качестве фильтра для выборки используется не группа элемента, а определенное свойство или их комбинация через символ |)
- posts - список страниц и ссылок являющимися элементами новостного канала сайта (в качестве фильтра для выборки используется не группа элемента, а определенное свойство или их комбинация через символ |)
- paginator - список страниц родителя
Переменные и функции итераторов
- index - номер элемента в списке
- count - количество элементов
- isFirst - определено, если это первый элемент
- isLast - определено, если это последний элемент
- isCol - пределено, если номер элемента кратен аргументу
- isActive - пределено, если это текущий элемент
- isPrev - пределено, если это предыдущий элемент
- isNext - пределено, если это следующий элемент
Примеры использования итераторов
Создание меню:
<ul class="menu"> <!--{menu}--> <li><a href="{url}">{name}</a></li> <!--{/}--> </ul>
Подключение кода аналитики из виджета группы analytics:
<!--{widget:analytics}--> {plaintext} <!--{/}-->
Вывод всех фрагментов страницы с заголовком, фото и текстом:
<!--{snippets}--> <h3>{title}</h3> <!--{photo}--> <img src="{thumb(538,210,t)}" alt="{title}" /> <!--{/}--> {text} <!--{/}-->