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

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

Синтаксис 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-шаблона подробно описано в статье Операторы условий

Функции

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

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

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