Руководтсво администратора/разработчика

Документация

Функции

Расширенные

Функции взаимодействия разных компонентов системы


output

Формирование значений

Функция output производит извлечение свойств переменной конфигурации и формирует значение на основании полученных в контексте данных.

Формат

output element congiguration data type

element - название элемента конфигурации
congiguration - объект конфигурации
data - контекст (объект данных, на основании которого будет формироваться значение
type - формат ответа.

  • по-умолчанию (пустое значение) - тестовый форма вывода.
  • html - выводит преобразованный в формат html. Необходимо в случае наличия в ответе HTML-разметки, в противном случае данный HTML-ответ будет экранирован для обеспечения требований безопасности.

Пример:

{{$f1 := output "field" . $data ""}}

В данном примере в переменную $f1 передается значение, которое было описано в элементе field конфигурации. В качестве данных для его получения был использован текущий контекст (.). Данные выводятся в текстовом формате.


parseparam

Обработка вложенных операций

При разработке когфигурации Блока возникают ситуации, когда необходимо значение одного параметра вложить в другой. Это делается инструацией %параметр%

Пример конфигуации:

{
    "id":{"type":"text","source":"123-123-123"},
    "url":{"type":"text","source":"/path=%id%"}
}

В этом примере видно, что в переменную id было положено значение "123-123-123" и оно будет передано в переменную url в том месте, где указана конструкция %id%.

Для обработке переменной url в Шаблоне необходимо "распарсить" данную переменную, т.е. произвести вычисление переменной id и вставить ее в необходимое место в переменной url, исходя из текущего контекста:

{{ parseparam "переменная" "конфигурация" "данные" "тип_вывода"}}
  • переменная - название переменной из конфигуации, которая содержит внутри себя конструкцию %...% будет "распарсена"
  • конфигурация - объект конфигурации текущего блока
  • данные - объект данных, которые будут использоваться при преобразовании
  • тип вывода - данные могут быть получены в текстовом формате или в формате HTML

Пример

{{$parsedurl := parseparam "url" $.Configuration $data ""}}

Примечание: Данный пример упрощен для понятия, на самом деле можно просто вручную внести данные 123-123-123 :) Но как правило, переменная id может принимать значения данных полей из контекста.


dict

Мультиплексирование параметров

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

dict  key1 value1 key2 value2 ....

key1 - ключ
value1 - значение
....  - количество пар может быть неограниченным

Пример мультиплексирования шаблоне:

{{template "sub-template" dict "Data" . "Values" $.Values}}

где, "sub-template" - название шаблона, в который передаются значения
"Data" - название параметра, в который будет передано значение_1
. - переданные значения (в данном примере - текущий контекст)
"Values" - название параметра, в который будут передано значение_2
$.Values - передаваемые значения (в данном примере структура Values из корневого контекста ($)

Пример создания переменной структуры:

{{ $new_structure := dict "param" "value" }}


set

Задать значение в структуре

Функция set создает новое/меняет значение в имеющейся структуре. Возвращает текущую структуру, в которую добавлялось поле.

Формат:

set struct key value

struct - структура
key - ключ в структуре (строка)
value - значение (любые значения)

Пример:

{ $_ := set $.Value "fisher" "Грека"}

В данном примере в структуру Value из полученного контекста мы добавили поле "fisher" и положили значение "Грека".

Примечание: Чтобы не отображать возвращаемое функцией значение мы присваеваем его нулевой переменной "$_"


get

Получение значения структуры

Функция get получает значение в имеющейся структуре. Возвращает текущуее значение поля.

Формат:

get struct key

struct - структура
key - ключ в структуре (строка)

Пример:

{ $res := get $.Value "fisher"}

>> Грека

В данном примере из структуры Value будет получено значение поля "fisher" - "Грека".


confparse

Обработка @-функции внутри конфигурации

Функция confparse производит обработку @-функций внутри конфигурации.

Формат:

confparse ConfigurationRaw Request Data


ConfigurationRaw - системная переменная, содержащаю "сырую" конфигурацию (без обработки @-функций.

Request - системная переменная запроса

Data - переменная, которая содержит контекст данных, которые будут использованы при обработки @-функций конфигурации.

Пример:

{{$ConfigurationNew := confparse $.ConfigurationRaw $.Request $Data}}

 

Описание:

Конфигурация, доступная в переменной $.Configuration в HTML-шаблоне и имеющая @-функции, обрабатывается при генерации формы. При обработки выполняются все @-функции с использованием текущего контекста. В момент генерации формы этот контект - объект страницы формы.

Бывают ситуации, когда в конфигурации мы прописываем значения переменных для других вариантов вывода данных, например при выводе встроенной в форму таблицу блока.

В этом случае, значение переменной (например uid-объекта "uid":{"type":"text","source":"2019-12-20T10-33-43Z-ca7908"},) в конфигурации будет содежать uid-объекта формы, а нам необходимо получать uid-перебираемых объектов. (конечно, всегда можно напрямую обратиться к свойству uid объекта внутри HTML-шаблона, но предположим, что мы хотим это значение задавать через переменную конфигурации)

Для этих целей существует текстовая переменная контекста $.ConfigurationRaw, которая содержит конфигурацию, без обработанных @-фукнций.

Для ее обработки необходимо добавить ее в цикл получения объектов и выполнять обработку @-функций внутри конфигурации при каждой итерации с новым объектом.


dogparse

Обработка @-функций в шаблонизаторе

Функция dogparse позволяет обрабатывать системные @-функции внутри html-кода страницы применительно к строковым значениям.

Формат:

dogparse string request data

string - строка, в которой содержатся @-фукнции
request - системное значение состояния запроса ($.Request)
data - данные, которые могут быть использованы при обработки @-функции (как правило полученные из запроса)

Пример

{{ $str := "Идентификатор пользователя = @User(UID)" }}
{{ dogparse $str $.Request $.Data.default.Data }}

>> Идентификатор пользователя = cf8f33e4-1fed-4521-9515-23d5b77e0345