EJS (Express.js) — каркас веб-приложений для Node.js. В BILLmanager работа EJS реализована с помощью скрипта /usr/local/mgr5/etc/scripts/template_ejs.js. Для корректной работы шаблонизатора входящий XML-файл преобразуется в JSON. 

Шаблоны документов и сообщений в BILLmanager описываются с помощью языка EJS. Добавление и редактирование шаблонов выполняется в разделе НастройкиШаблоны документов.

Комментирование и теги


Комментарии в шаблонах можно обозначать двумя способами:

  1. С помощью конструкции "/* <Текст комментария> */", где
    • /* — начало комментария;
    • */ — конец комментария.
    В одну конструкцию может быть помещено множество строк текста.
  2. С помощью конструкции "// <Текст комментария>". Комментарием считается весь текст после символов //, комментарий заканчивается переносом строки. 

В коде шаблона используемые выражения JavaScript, HTML и комментарии заключаются в специальные теги.

СущностьТегиОписание
Выражения JavaScript <% (...) %>Теги служат для определения операций JavaScript

HTML-код

<%= (...) %>Теги служат для экранирования HTML-конструкций
<%- (...) %>Теги служат для вывода информации с буферизацией без экранирования
Комментарии<%# (...) %>Теги служат для выделения комментариев

Переменные


Объявление переменной начинается с ключевого слова var, за ним следует произвольное имя переменной, например:

var myVariable;
JS

Объявление переменной завершается точкой с запятой. Имена переменных в EJS-шаблонах зависят от регистра: "myVariable" и "myvariable" являются разными переменными.

Тип данных переменной определяется в зависимости от присвоенного значения (контекстно): 

var myText = 'Текстовая переменная'; // В одинарных кавычках указывается строка
var myNumber = 10; // Численный тип данных. Значение указывается без кавычек. 
var myBoolean = true; // Логический тип данных. Слова true и false являются ключевыми, не заключаются в кавычки. 
var myObject = document.querySelector('h1'); // Переменная для хранения объектов. Может хранить любую сущность биллинговой системы. 
var myArray = [1, 'Плательщик', 2, 'Провайдер']; //Массив данных. Позволяет хранить множество элементов. 
JS

Содержимое


В EJS-шаблоне информация может быть представлена с помощью:

  • блоков (разделов) форматирования. Обозначаются тегами <div> (...) </div>;
  • таблиц. Обозначаются тегами <table> (...) </table>;
  • списков. Обозначаются тегами <ul> (...) </ul>;
  • ссылок на изображения. Обозначаются тегом <img src=(...)/>.  

Внешний вид печатной формы документа строится на основе описанных в коде элементов и их параметров форматирования. 

Подробнее о представлении информации с помощью EJS-шаблона см. статью Содержимое EJS-шаблонизатора

Операторы условий


Условия в EJS-шаблоне позволяют проверить истинно ли указанное утверждение и в зависимости от результата выполнять определённый фрагмент кода. Например, если тип плательщика "Юридическое лицо", то выводить на печатной форме счёта поля "ИНН" и "КПП". 

Подробнее использование операторов условий в коде EJS-шаблона см. в статье Операторы условий в EJS-шаблонизаторе

Функции


Функции позволяют использовать определённый фрагмент кода множество раз без необходимости каждый раз писать его заново. Объявление функции (написание фрагмента кода) выполняется единожды, далее в коде функция может быть вызвана по её имени. 

Например, объявлена функция "date", в которой описан фрагмент кода для замены числового обозначения месяца на буквенное. В шаблоне счёта данную функцию можно применить дважды: в наименовании счёта и в назначении платежа. Для этого достаточно указать имя функции "date".

Подробнее использование функций в коде EJS-шаблона см. в статье Функции EJS-шаблонизатора.