EJS (Express.js) — каркас веб-приложений для Node.js. В BILLmanager работа EJS реализована с помощью скрипта /usr/local/mgr5/etc/scripts/template_ejs.js. Для корректной работы шаблонизатора входящий XML-файл преобразуется в JSON.
Шаблоны документов и сообщений в BILLmanager описываются с помощью языка EJS. Добавление и редактирование шаблонов выполняется в разделе Настройки → Шаблоны документов.
Синтаксис 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-шаблона подробно описано в статье Операторы условий.
Функции
Функции позволяют использовать определённый фрагмент кода множество раз без необходимости каждый раз писать его заново. Объявление функции (написание фрагмента кода) выполняется единожды, далее в коде функция может быть вызвана по её имени.
Например, создатель шаблона объявил функцию "date", в которой описал фрагмент кода для замены числового обозначения месяца на буквенное. В шаблоне счёта данную функцию можно применить дважды: в наименовании счёта и в назначении платежа. При этом достаточно будет указать имя функции.
Как использовать функции в коде EJS-шаблона подробно описано в статье Функции.