Загрузка...

3. Типы документов / 3.03. Шаблоны

Для каждого типа документа можно использовать 2 типа шаблонов: шаблон просмотра и шаблоны формы. При создании документа или его редактировании при помощи действия Редактирование используется шаблон формы. Для отображения документа в режиме просмотра применяется шаблон просмотра. 

Переменные

Шаблоны позволяют определять любой внешний вид документа, вставлять поля документа и следующие переменные:

  • ИМЯ АВТОРА - поле Отображаемое имя Структуры для автора документа;
  • НАЗВАНИЕ ПОДРАЗДЕЛЕНИЯ - название подразделения автора по Структуре на момент создания документа;
  • ИМЯ ПОЛЬЗОВАТЕЛЯ - поля Отображаемое имя Структуры для пользователя, открывшего документ;
  • НАЗВАНИЕ ТЕКУЩЕЙ ТОЧКИ МАРШРУТА;
  • ТЕКУЩЕЕ ВРЕМЯ в соответствии с локализованным форматом, приведенном в файле language/код-языка.php;
  • ТЕКУЩАЯ ДАТА в соответствии с локализованным форматом, приведенном в файле language/код-языка.php;
  • ВРЕМЯ СОЗДАНИЯ ДОКУМЕНТА в формате, как у переменной ТЕКУЩЕЕ ВРЕМЯ;
  • ДАТА СОЗДАНИЯ ДОКУМЕНТА в формате, как у переменной ТЕКУЩАЯ ДАТА.

Расширенные возможности

Количество шаблонов просмотра и формы не ограничено, и администратор может создавать любые дополнительные шаблоны при помощи кнопки + , расположенной правее вкладки основного шаблона. При добавлении шаблона необходимо ввести его название и условие отображения (сравниваемое поле, каким образом оно будет сравниваться и поле, из которого будет получено значения для сравнения). Если уже есть добавленные ранее дополнительные шаблоны, то в форме добавления нового шаблона можно выбрать его местоположение. Добавленные шаблоны можно изменять и удалять при помощи кнопки Изменить, доступной на вкладке соответствующего шаблона. При наличии дополнительных шаблонов система проверяет условия по каждом из них в порядке их следования. Как только условие шаблона установит истину, проверка останавливается и используется найденный шаблон. 

Шаблоны локализованные, что означает необходимость создания отдельного шаблона для каждого языка, установленного в системе. 

Сложные формы

Для создания сложных форм применяются Условия, которые позволяют скрывать и отображать заданные поля и HTML-элементы шаблона в зависимости от значений полей. Настройка Условий осуществляется при помощи кнопки "Условия", размещенной на панели кнопок редактора шаблона.

Каждое Условие состоит из двух блоков: проверки значения поля (или полей) и набора действий, которые выполняются, если поля имеют соответствующие значения.

В проверке значений условия может быть добавлено несколько вариантов на одно или несколько полей, эти варианты могут быть логически связаны через И или ИЛИ.

В блоке действий доступны следующие действия:

  • Скрыть какое-либо поле либо любой HTML-элемент c идентификатором, имеющийся в шаблоне. При настройке шаблона формы можно также настроить отображение кнопки сохранения и отмены. 
  • Показать какое-либо поле или любой HTML-элемент c идентификатором, имеющийся в шаблоне. При настройке шаблона формы можно также скрывать кнопки сохранения и отмены. 
  • Записать . Это действие позволяет записать в любое поле документа заданное значение. Значение задается при помощи редактора, в котором можно размещать другие поля документа, арифметические знаки, скобки и так далее. В поле можно вводить Java Script код. Например, следующий код вернет порядковый номер дня недели даты, введенной в поле date шаблона:
    (function(){  var date = new Date({{ date }});  return date.getDay();})();
    Фактически, содержимое редактора интерпретируется как код Java Script. Чтобы убедиться, что это содержимое вернет то значение, которое вы ожидаете, можно воспользоваться консолью браузера (Ctr + Shift + I, вкладка Console), в которую можно его вставить, нажать на кнопку ввода и получить результат (разумеется, вставки полей {{ field }} будут вызывать ошибки в консоли, поэтому их необходимо заменить конкретными значениями).
    При использовании действия в шаблонах просмотра не допускается использование тегов в записываемых значениях, поэтому они автоматически вырезаются.
    В поля, поддерживающие множественный выбор (например, Список со включенным множественным выбором) можно записывать несколько значений, перечисляя их через запятую.
  • Загрузить . Действие имеет три параметра. Первый - поле, в которое будет загружено значение с сервера. Второй - поле, содержащие идентификатор документа, из которого будет получено значение на сервере. Можно передать несколько идентификаторов, перечисленных через запятую, и тогда действие загрузит значения заданного поля для всех этих документов, перечислив их через запятую. И третий - поле этого документа (из второго параметра). Очень желательно, чтобы типы полей - загружаемое и то, в которое загружается, - совпадало, в противном случае после сохранения загруженное значение может не сохранится, а в некоторых случаях и некорректно отобразиться в шаблоне после загрузки. 
    Действие Загрузить будет полезно в тех случаях, когда в зависимости от выбранного пользователем в шаблоне значения какого-либо поля, нужно загрузить в документ ту или иную информацию. Загрузка осуществляется в фоновом режиме и, при наличии быстрого доступа к серверу, загруженные поля могут отобразиться практически моментально.

Переменные шаблона

В шаблон передаются некоторые дополнительные переменные:

{{ document_uid }} - идентификатор документа

{{  render_id }} - уникальный идентификатор рендеринга документа; может использоваться для обеспечения уникальности идентификаторов, применяемых в шаблоне в случае перекрытия документа (когда, например, текущий документ отображается через поле "Образ документа" в действии "Диалог") и пр.

{{ get.param }} - вывод значения GET-параметра с названием param.

В шаблоне можно скрывать некоторые элементы HTML при выводе на печать. Для этой цели следует использовать CSS-класс no-print.