====== CMS ======
Обработка содержимого производится в соответствии со следующими простыми правилами.
===== Теги замен =====
При загрузке страницы (элемента) содержимое анализируется на предмет наличия тегов форматирования. Поддерживаются следующие теги форматирования.
==== Замена ====
Формат:
{substitute_name}
Тег будет заменен на значение [[CMS:globals|глобальной]] или локальной переменной, например "PAGE" будет заменено на имя текущей страницы.
==== Включение ====
{include_name()}
Тег позволяет включить элемент с именем "include_name" из файловой системы CMS и установить для элемента локальные переменные, переданные в параметрах.
===== Вложение тегов =====
Теги могут быть неограниченно вложены друг в друга, например:
{{PAGE}()}
{{PAGE}/block1()}
при этом сначала будут заменены внутренние теги, то есть вместо "PAGE" будет подставлено имя страницы, а затем получившийся тег будет обработан снова.
===== Разворачивание тегов =====
При вложении и последующей замене тегов весь тег будет заменен соответствующим содержимым, поэтому для обработки заменяемого содержимого тега как самостоятельного тега после замены он должен быть помещен в двойные скобки.
Например, при включении на первой страницы содержимого второй страницы, в которую передается как параметр имя третьей страницы:
{page_two(include_page_three:page_three())}
Вторая страница должна содержать тег в двойных скобках:
{{include_page_three}}
Тогда в первом проходе "include_page_three" будет заменено на "page_three()":
{page_three()}
а во втором проходе тег "{page_three()}" будет обработан и заменен содержимым третьего файла.
===== Экранирование скобок =====
Для установки фигурных скобок в тексте и исключения их их анализа тегов они должны быть экранированы символом обратный слеш:
\{
\}
Экранирование не допускается внутри тегов и/или их параметров.