Сервис чатов от Августа: качество, надежность, скорость
 
новости новостей нет» все новости

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

Документация




НАЗНАЧЕНИЕ И ПРАВИЛА ИСПОЛЬЗОВАНИЯ ШАБЛОНОВ 
===========================================

Определения
-----------
Шаблон — HTML-код, содержащий переменные и функции шаблона.
    Назначение шаблона заключается в создании каркаса кода.
    Конечный HTML-код формируется в результате парсинга шаблона.

Парсинг — процесс обработки шаблона программой парсера,
    при котором происходит замена переменных и функций шаблона
    на свои значения. Результатом парсинга является конечный
    HTML-код, выводимый в окно браузера.

Переменные шаблона — специальные коды, указывающие парсеру,
    что в этом месте должны производиться замены переменных на свои
    значения. Значения переменных зависят от конкретного шаблона.

Функции шаблона — аналогичны переменным шаблона, но принимают
    аргументы, которые передаются внутри круглых скобок, результат
    функции зависит от переданных ей параметров.


Синтаксис
---------
Шаблонные переменные определяются своим именем, которое с двух сторон
ограничивается знаком процента (%).
Шаблонные функции отличаются от шаблонных переменных наличием круглых
скобок, в которых указывается список аргументов, перечисленных через
запятую. Количество аргументов определяется назначением функции.
Имена шаблонных переменных и функций могут состоять только из латинских
букв, цифр и символа подчеркивания, длина имени может быть равна
одному символу и более.
Аргументами функций могут быть следующие данные:
- десятичные числа;
- строки;
- массивы;
- шаблонные переменные;
- шаблонные функции.
Все функции встроены в парсер и определить свою функцию нельзя.

Пример шаблонной переменой: %NAME%
Пример шаблонной функции: %input("name", "", 10, %len%)%

Типы
----
Десятичные числа - это последовательность цифр от 0 до 9.
Пример: 12345

Строка - это набор символов, ограниченный слева и справа символами
кавычек (") или апострофа (').
Пример строки: "это строка"

Если внутри строки требуется применить символ кавычек, то его надо
экранировать - перед символом поставить обратный слэш (\). Чтобы
вывести сам обратный слеш его также надо экранировать, т.е. два
обратных слэша (\\) выводятся как один.
Пример: "это \"слово\" в кавычках".

Внутри строк можно использовать шаблонные переменные и функции,
записываться они должны с символами процента по краям, при парсинге
они будут заменяться своим значением.
Пример: "Мое имя: %NAME%"

Если требуется, чтобы парсер не делал замен шаблонных переменных и
функций, символ процента надо дублировать, иными словами, два
символа процента в строке (%%) будут выводиться как один.
Пример: "в этой строке переменная %%NAME%% не будет заменена"

Массивы - набор данных, объединенных в одну переменную, элементы
массива записываются в квадратных скобках через запятую. Типы данных
элементов массива могут быть те же, что и аргументы у функций.
Пример: [1, "один", 2, "два"]
Примечание: массивы можно применять только в качестве аргументов
функций, присваивать переменным массивы нельзя.


Использование
-------------
Переменные и функции шаблона предназначены для подстановки значений
в HTML-код. Это означает, что переменные и функции шаблона после
парсинга будут заменены своим значением - последовательностью символов
(строкой), либо пустой строкой (никаких символов не содержится).

Важное замечание: любая конструкция с переменными или функциями шаблона
возвращает строку, даже при использовании выражения присваивания эта
конструкция вернет пустую строку. Если переменная шаблона не определена -
она возвращает пустую строку.

Самый простой способ использования переменной шаблона - просто ее написать.
Пример:

%NAME%

Если у нас была определена переменная NAME, то после парсинга она будет
заменена на свое значение.

В шаблоне можно определить свои переменные. Для этого есть два способа
определения переменных. Первый, аналогичен оператору присваивания в языках
программирования. Значением для присваивания может быть: десятичное число,
строка, другая переменная или функция.
Присваивание десятичного числа:
%NUMBER = 10%

Присваивание строки:
%NAME = "Вася Пупкин"%

Присваивание другой переменой:
%MY_VAR = %NAME%%

Присваивание функции
%INPUT = %input("name", "", 10, %len%)%%

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

Второй способ предназначен для занесения в переменную многострочного
текста, при этом, парсинг не осуществляется, т.е., если в тексте будет
встречена конструкция шаблонных переменных или функций никаких замен
производиться не будет, они будут выводиться точно таком же виде как
и были записаны. Сам многострочный текст должен находиться внутри блока,
который определяется строкой-ограничителем.
Пример:

%TEXT<<<END
Здесь находится многострочный текст
Все встреченные шаблонные переменные и функции
обрабатываться парсером не будут.
END%

Здесь слово END (можно выбрать любое слово) является строкой-ограничителем
и определяется сразу после имени переменной (TEXT) и тройного символа
меньше (<<<). С новой строки начинается многострочный текст. Для
обозначения конца текста это же слово-ограничитель должно быть записано в
начале новой строки.

Конструкции присваивания ничего не возвращают, поэтому в конечном HTML-коде
на их месте будут пустые строки.

Есть две конструкции, выполняющие дополнительную обработку строк.
Первая имеет такую запись:

%{"строка"}%

Смысл этого выражения заключается в том, что можно динамически формировать
имя переменой, которая будет заменена своим значением.
Пример:

%{"NAME"}%

Эта конструкция полностью эквивалента записи %NAME% и не имеет практического
смысла. Другой пример показывает гибкость этой записи:

%STATE_0 = "выключено"%
%STATE_1 = "включено"%
%{"STATE_%STATE%"}%

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

STATE | результат
------+----------
  0   | выключено
  1   | включено


Вторая конструкция предназначена для парсинга строки и записывается в
таком виде:

%(%TEXT%)%

Если переменная TEXT содержит некий шаблон, то эта запись выполнит парсинг
этого шаблона и вернет результат. Удобно применять такую запись после
определения многострочного текста.


Условные операторы
------------------

Кроме обычных замен в шаблоне парсер позволяет управлять логикой разбора
шаблона. Для этого существуют два варианта записи условных конструкций.
* Первый вариант:

%?
шаблон_1
%:%
шаблон_2
?%

В этой конструкции выбор между шаблонами шаблон_1 и шаблон_2 зависит от
значения всех шаблонных переменных и функций из первого шаблона (шаблон_1).
Если все переменные и функции в первом шаблоне возвращают не пустые строки,
то обработан будет этот первый шаблон, второй будет проигнорирован. Если
хотя бы одна переменная или функция из первого шаблона вернет пустую
строку - обработан будет второй шаблон.
Есть упрощенный вариант записи этой конструкции, когда второго шаблона нет:

%?
шаблон
?%

Шаблон будет обработан только при условии, что все переменные и функции в
шаблоне вернули не пустую строку.

* Второй вариант записи условия.
В этом варианте используется шаблонная функция, которая определена в самом
парсере.
Есть две формы вызова этой функции:
1. %IF(%COND%, "строка_1", "строка_2")%
2. %IF("строка_1", "строка_2")%

В первой форме функции %IF()% передаются три аргумента:
  первый - это условная переменная, от значения который зависит выбор между
           вторым и третьим аргументом
  второй - строка, которую вернет функция %IF()%, если значение условной
           переменной истинно
  третий - строка, которую вернет функция %IF()%, если значение условной
           переменной ложно

Во второй форме функции %IF()% передаются два аргумента - оба строки, если
первая строка не пустая, функция вернет ее, иначе, функция вернет вторую
строку.

Для операций сравнения в парсере определены четыре функции, которые можно
использовать в качестве условия в функции %IF()%.
1. %TRUE()%
   функция может принимать один и более аргументов, возвращает истинно
   только если все аргументы функции имеют истинное значение.
2. %EQ()%
   функция принимает два аргумента и сравнивает строки на равенство,
   возвращает истинно, если обе строки равны посимвольно.
3. %LT()%
   функция принимает два аргумента и сравнивает два числа, возвращает
   истинно, если первое число меньше второго.
4. %GT()%
   функция принимает два аргумента и сравнивает два числа, возвращает
   истинно, если первое число больше второго.

Важное замечание: значения "истинно" и "ложно" в шаблонах имеет немного
иной смысл, чем в языках программирования. Так как, все шаблонные
функции возвращают строку, то результат работы функций сравнения не
должен никак отображаться в конечном HTML-коде. Для это были выбраны
следующие значения, которые возвращают функции сравнения:
    истинно - одиночный символ пробела, в HTML-коде его не будет видно
    ложно   - пустая строка

Однако, для входных аргументов строка "0" имеет значение "ложно", т.к.
в случае если строка полностью состоит из цифр значение "истинно" будет
принято только для цифр отличных от нуля.


Список всех шаблонных функций, встроенных в парсер
--------------------------------------------------
Функции для условного выполнения кода:
	%TRUE()%
	%IF()%
	%EQ()%
	%LT()%
	%GT()%

Функции общего назначения:
	%SESS()%
	%CHAT()%
	%CFG()%
	%CFGJS()%
	%PEOPLE()%
	%CSS()%
	%DATE()%
	%TIME()%
	%LONG_DAYS()%
	%LONG_TIME()%
	%NAVIGATION()%

Функции для получения данных:
	%GET()%
	%POST()%
	%COOKIE()%
	%AGENT()%
	%SERVER()%

Функции для строк:
	%TRIM()%
	%UP_CASE()%
	%LOW_CASE()%

Функции для форм:
	%input()%
	%text()%
	%checkbox()%
	%radio()%
	%radio2()%
	%select()%
	%select2()%
	%button()%
	%submit()%

© August 2000–2024

Пользовательское соглашение   
Яндекс.Метрика www.megastock.ru