EJS (Express.js) — каркас веб-приложений для Node.js. В BILLmanager работа EJS реализована с помощью скрипта /usr/local/mgr5/etc/scripts/template_ejs.js. Для корректной работы шаблонизатора входящий XML-файл преобразуется в JSON.
Шаблоны документов и сообщений в BILLmanager описываются с помощью языка EJS. Добавление и редактирование шаблонов выполняется в разделе Настройки → Шаблоны документов.
Комментирование и теги
Комментарии в шаблонах можно обозначать двумя способами:
- С помощью конструкции "/* <Текст комментария> */", где
- /* — начало комментария;
- */ — конец комментария.
- С помощью конструкции "// <Текст комментария>". Комментарием считается весь текст после символов //, комментарий заканчивается переносом строки.
В коде шаблона используемые выражения JavaScript, HTML и комментарии заключаются в специальные теги.
Переменные
Объявление переменной начинается с ключевого слова var, за ним следует произвольное имя переменной, например:
var myVariable;
Объявление переменной завершается точкой с запятой. Имена переменных в EJS-шаблонах зависят от регистра: "myVariable" и "myvariable" являются разными переменными.
Тип данных переменной определяется в зависимости от присвоенного значения (контекстно):
var myText = 'Текстовая переменная'; // В одинарных кавычках указывается строка
var myNumber = 10; // Численный тип данных. Значение указывается без кавычек.
var myBoolean = true; // Логический тип данных. Слова true и false являются ключевыми, не заключаются в кавычки.
var myObject = document.querySelector('h1'); // Переменная для хранения объектов. Может хранить любую сущность биллинговой системы.
var myArray = [1, 'Плательщик', 2, 'Провайдер']; //Массив данных. Позволяет хранить множество элементов.
Содержимое
В EJS-шаблоне информация может быть представлена с помощью:
- блоков (разделов) форматирования. Обозначаются тегами <div> (...) </div>;
- таблиц. Обозначаются тегами <table> (...) </table>;
- списков. Обозначаются тегами <ul> (...) </ul>;
- ссылок на изображения. Обозначаются тегом <img src=(...)/>.
Внешний вид печатной формы документа строится на основе описанных в коде элементов и их параметров форматирования.
Подробнее о представлении информации с помощью EJS-шаблона см. статью Содержимое EJS-шаблонизатора.
Операторы условий
Условия в EJS-шаблоне позволяют проверить истинно ли указанное утверждение и в зависимости от результата выполнять определённый фрагмент кода. Например, если тип плательщика "Юридическое лицо", то выводить на печатной форме счёта поля "ИНН" и "КПП".
Подробнее использование операторов условий в коде EJS-шаблона см. в статье Операторы условий в EJS-шаблонизаторе.
Функции
Функции позволяют использовать определённый фрагмент кода множество раз без необходимости каждый раз писать его заново. Объявление функции (написание фрагмента кода) выполняется единожды, далее в коде функция может быть вызвана по её имени.
Например, объявлена функция "date", в которой описан фрагмент кода для замены числового обозначения месяца на буквенное. В шаблоне счёта данную функцию можно применить дважды: в наименовании счёта и в назначении платежа. Для этого достаточно указать имя функции "date".
Подробнее использование функций в коде EJS-шаблона см. в статье Функции EJS-шаблонизатора.