Справочник по языку шаблонов WebProject

В шаблонах WebProject используется html код и операторы для вставки переменных и функций.

Справочник по языку шаблонов WebProject

Переменные и функции

Простая вставка выполняется указанием переменной или функции с аргументами в фигурных скобках:

  • 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}
<!--{/}-->