Skip to main content

Helper

Handlebars

Використовуємо для виводу динамічних даних в шаблони.

Користуйтеся офіційною документацією: https://handlebarsjs.com/guide/

string

Для роботи з текстом

HelperPropsОпис
concatargs (Рядки для об'єднання)Об'єднання двох рядків
substrdata(Строка або число яке обрізається), options: from(Число з якого обрізати строку), max(Число до якого обрізати строку)Обрізання строки. Є можливість вказання точної кількості
mlsdata(Рядок для перекладу), options(en, ru...зазначений переклад data)Переведення строки на мову, що обрана
mdToHTMLoptions: file(Отримані дані про файл)Перетворення з файла readme.md до формату HTML
decodeURIdata (Строка для декодування)Декодування компоненти URI. Використовується для виведення на сторінці пошукового запиту, який привів на дану сторінку
string_to_arraydata(Строка для форматування), options: array_n(Індекс, який дістаємо з масиву), separate(По чому розділяти строку)Форматування з строки у масив
str_replacedata(Рядок для форматування), args (строки для заміни), options: br (вставка тегу)Виконання заміни частини строки на значення з останнього аргументу.
escapeQuotesdata(Строка)Оброблює строку для запобігання sql вразливості
coalesceargs (Масив аргументів для фільтрування)Повертає перший не null елемент
encodeURIdata(Набір вхідних даних, строка)Кодування URI компоненти. Внаслідок кодування ми отримуємо дані, спец-символи яких замінені на відповідні їм значення URI
str_roddata(Cтрока для перетворення)Змінює відмінки по батькові
translitdata(Cтрока для перетворення)Форматування символів з кирилиці на латиницю
// concat 
{{concat '123' '456'}} //123456

// substr
{{substr '123456' max=2}} //12
{{substr 'testSTR' from=3}} // tSTR

{{{mls 'page' ua='Сторінка' en='Page'}}} // Якщо мова сторінки en - виведе Page

{{{mdToHTML file='# markdown-it rulezz!'}}} // markdown-it rulezz!

{{{decodeURI '%5C%5C123'}}} // \\123

{{string_to_array '11/22/33/44/55/66' separate='/'}} // 11,22,33,44,55,66 - масив

{{{str_replace 'Перший рядок<br>Наступний рядок' br=1}}}
// Перший рядок
// Наступний рядок
{{str_replace 'This Is Alias' ' ' '!'}} // This!Is!Alias

{{{escapeQuotes "asdqweqwe'adasdqwe"}}} // asdqweqwe''adasdqwe

{{{encodeURI '\\123'}}} // %5C%5C123

{{{str_rod 'Іванович'}}} // Івановича

{{{translit "Верифікувати"}}} // Veryfikuvaty

format

Для форматування та виводу шаблонів

HelperPropsОпис
setdata(назва змінної), args(Масив, у якому містяться html строки), options: save(Для перевірки чи робити збереження в базі)cтворює змінну, яка використовується у шаблоні та може бути записана в БД
emptyпросто повертає ''Повертає пустий рядок замість змісту іншого хелпера при компіляції шаблону
_hbdata(Зміст переданих даних), options: template(Назва шаблона для демонстрації), cache(Передати будь-який параметр для кешування шаблона),Виводить блок встановленого типу на сторінці сайту
_hb_syncте саме, що і у _hbСинхронізує шаблон згідно запиту. Є перевірка на кешування даних
skip2data (рядок для форматування)Переданий аргумент огортається в подвійні фігурні кавички. Є можливість перетворення строки у хелпер.
skipdata (рядок для форматування)Переданий аргумент огортається в потрійні фігурні кавички
{{set 'is_authorized' 'true'}} {{is_authorized}} // is_authorized=true
// Створює змінну is_authorized, яка може бути викликана з будь-якої частини шаблону та встановлює значення

{{{empty _hb template="change-password-email-template"}}} // ''

{{{_hb template="header"}}}

{{{_hb_sync template=(coalesce @root._q grid.query opt.q '1=1')}}}
// Синхронізація шаблону згідно запиту зі змінної opt.query_text або grid.query (за відсутності - значення за замовчуванням 1=1)

{{{skip2 "name"}}} // {{name}}

{{{skip name}}} // {{{name}}}

format 2

Функції, які відповідають за форматування даних

HelperPropsОпис
formatNumdata (Число для форматування), options: format Шаблон вигляду результату, lang(Мова на якій видати інформацію), currency (Валюта), round(Округлення)Форматування з числа в строку
formatNumberdata(Число для форматування)Форматування до числа
formatDatedata(дата для форматування), options: format(Формат для вигляду при поверненні), time (Для вибору чи робити формат виводу години і хвилини, чи ні), trunc (Для вибору чи онуляти рік або квартал), shift_year (Здвинути рік), shift_quarter(Здвинути квартал), shift_month(Здвинути місяць), shift_week(Здвинути тиждень), shift(Здвинути час)Форматування дати за умовою і можливе зміщення дат і часу. Є можливість виведенння поточної дати через значення аргументу "0"
formatDigitdata(Число для форматування), options: rank(Фіксована довжина)Форматування чисел. Приводить до встановленої довжини шляхом доповнення
formatAutodata(Данні для форматування)Для форматування автоматично отриманого значення
num_formatdata(number), options: dec(число цифр після коми для заокруглення), fixed (Фіксоване число цифер після коми)Форматування у число. Є можливість використання разом із значком span
formatUnitdata(Число для перетворення), options: number(Число після точки), unit(одиниці об'єму файлу: TB,GB,MB,KB,B)Повертає розмір растру у відповідних одиницях об'єму файлу
formatRelativedata(Дата для перетворення), options: locate(Мова якою відобразити час: en ru ua), percent(Будь-яке значення для відображення часу у відсотках)Форматування часу скільки залишилося чи пройшло від заданого
/*Формат для вигляду при поверненні.
Можливі значення: dd, mm, MM, month, mon, yy, YY, hh, mi, sec, mw_ua, mw_en, mw_ru, wd_ua */
// trunc - Для вибору чи онуляти рік або квартал
// shift_year, shift_quarter, shift_month, shift_week,shift - Здвинути рік/квартал/місяць/тиждень/час

// 09 - 2022 вересня
{{formatDate "2021-09-08T12:22:27.983" shift_year=1 format='mm - yy mw_ua'}}

// 01 Січень 2021 12:22:27
{{formatDate "2021-09-08T12:22:27.983" trunc='year' format='dd month yy hh:mi:sec'}}

{{{formatDigit '11' rank=4}}}

{{formatUnit '123.45678' number="2"}} // 123.46B

// dec - кількість цифр після коми
// product_price = 123,4633333
{{{num_format product_price dec="2"}}} // 123,46

{{{formatNum '56480'}}} // 56480 (п'ятдесят шість тисяч чотириста вісімдесят) грн. 0 (нуль) коп.

{{{formatNumber '56480'}}} // 56 480.00

{{{formatRelative '2020-01-04'}}} // 3 років тому

condition

Для виводу даних в залежності від виконання певних умов

HelperPropsОпис
ifCondargs[0] - перше значення. args[1] - оператор. args[2] - друге значення.Перевірка двох значень та виконання коду при виконанні умови, а також у всіх інших випадках. Дії: ==, !=, ===, !==, &&, <, <= , >, >=, &,!~, ~, in, not in. У наступних хелперах condition аргументи та дії такі ж самі.
ifCondAndargsСтворення шаблона за перевіркою виконання декількох умов.
ifCondOrargsСтворення шаблона за перевіркою "АБО". Повинна виконатись хоча б одна умова
ifEvaldataФункція для виконання коду у формі строки за визначеними параметрами
    {{#ifCond '1' '==' '1'}}Умова виконана{{^}}Не виконана умова{{/ifCond}} // Умова виконана
// const status = 3;
{{#ifCond 'status' 'in' '1,2,5'}}Умова виконана{{^}}Не виконана умова{{/ifCond}} // Умова не виконана

{{#ifCondAnd 1 '==' 1 2 'in' '2,3' 2 'in' '1,2' }}1{{^}}2{{/ifCondAnd}} // 1

{{#ifCondOr 1 '==' 1 2 'in' '2,3' 2 'in' '1,2' }}Хоча б одна умова виконана{{^}}Жодна умова не була виконана{{/ifCondOr}}
// Хоча б одна умова виконана

{{#ifEval '1 && true'}}1{{^}}2{{/ifEval}} // 1
{{#ifEval 'null && true'}}1{{^}}2{{/ifEval}} // 2

content

Для відображення контенту

HelperPropsОпис
contentListoptions: table (Таблиця в базі або конфіг таблиця), query (Запит до бази), limit (Кількість рядків на сторінці), tag (Для звязування фільтрів), sql (Вивід sql запиту), timing (Вивід часу виконання), disable_search (Відключити пошук), search_column (Колонки для пошуку), token (Для отриання токенів значень)Відображення даних з таблиці або запиту до БД на сторінці. За запитом отримуємо масив json із рядків бази даних. Є можливість застосування синтаксису sql у змінній query для формування запиту до БД.
_tableoptions: name (Назву шаблону таблиці в БД), template (Назва шаблона картки), fields(Поля таблиці, за замовчуванням всі, При явному вказанні можливо обрати деякі), hide(Вказати поля, які необхідно приховати)Виведення віджету таблиці в інтерфейсі. Є можливість вказання фільтрів для даних, а також застосування додаткових можливостей, до переліку яких входять можливість редагування даних, режим картки тощо.
productPageroptions: limit (Максимальна кількість елементів),page_limit (Максимальна кількість сторінок на показ) sql(Для перевірки чи повертати sql запит),s template(Якщо вказаний шаблон)Пагінатор. Дозволяє розбити масив даних на частини. Зазвичай використовується разом з contentList
_patternoptions: chars (Перелік та порядок виводу колонок з БД), name (назва), _template (Допоміжний шаблон, який використовується для виводу даних)Виведення інформації із таблиці з урахуванням переліку та послідовності колонок
columnListoptions: table(назва таблиці), template (назва шаблону)Відображення списку колонок таблички
_svgoptions: table (Назва шаблону таблиці), fields (Перелік полів, що необхідно вивести) status (Змінна, яка відповідає за класифікацію об'єктів), query (Запит до таблиці table), style (Стилізація CSS), href (Колонка посилання)Відображення SVG з геометрії вказаної таблиці. Таблиця має задаватись явно, а також мати Primary Key
_inputoptions: name(Назва поля форми буде передаватись на сервер), data (Класифікатор для формування випадаючого списку), value(Значення поля по замовчуванню), type (Тип поля)Створює випадаючий список у формі поля. Необхідно вказати селект або класифікатор, поле та таблицю в БД
// table - назва таблиці в бд або повноцінний запит в дужках '()'
// limit - кількість рядків на сторінці (limit за умовчуванням = 16)
//query - умова пошуку
{{#contentList table="(SELECT * FROM data_barlessness.entrance_group where id_build = '{{id_build}}')" limit=100}}
{{#each rows}}
{{/each}}
{{/contentList}}

{{#contentList table="data_barlessness.entrance_group" query="id_build = '{{id_build}}'"}}
{{#each rows}}
{{/each}}
{{/contentList}}

{{{_table name="decision_db.decision.table" query="status=1"}}}
// Виведе таблицю decision_db.decision.table.json з записами, які мають статус '1'

{{#contentList table='crm_order.order_list' query="1=1" order="cdate desc" limit=1}}
{{#each rows}}
{{{_pattern
chars="cdate,otherColumn1,otherColumn2"
table="crm_order.order_list.table"
template="order_item.pattern.pt"
href="/order/{{order_id}}"
share=true
info="title=title"
data=this
}}}
{{/each}}
{{{productPager}}}
{{/contentList}}


{{{_svg table="(select st_makepoint(1,1) as geom, 'title' as title, obj_id as id)" query="1=1" style="stroke:##769bb8; fill:#e2ecf4;" highlight_style="fill:#ffb047;" sql=1 height="600" href="/reference/geomSvg"}}}

{{{_input type='select' data="acc_plan_status" name='checklist_ind_status' value=ind_val}}}

filter

Для фільтрації даних

HelperPropsОпис
filterListoptions: table (Назва таблиці), tag(Для фільтрів), filter (Фільтри явно json)Фільтрація списку, query (Запит до таблиці)
filterListVueТак само як у filterList. Також: display (Спосіб відображення, напр. Іnline-block), customFilters (Користувацькі фільтри)Фільтрація списку у vue
filterSQLoptions: table (Назва таблички), filter (Параметри для фільтрації), data (Параметри для фільтрації, якщо не задано filter)Фільтрація sql
filterIDargs: ідентифікатор, params: data(Parent_key для бд)Фільтрування по ідентифікатору
{{{filterID gid data='gromada'}}}

{{{filterListVue table="producer_view_letter" tag="brands_aptekar" filter='[
{"name":"opd_title", "ua":"Виробник","ru":"Производитель","type":"Autocomplete"},
{"name":"opd_country","ua":"Країна","ru":"Страна"},
{"name":"details.category","ua":"Країна","ru":"Страна"}
]' sql1=1}}}

{{{filterList table="ts_approval_docs.ts_passports" tag="ts_passp_tag" template="core.filter_simple.pt" sql1=1 filter='[
{"name":"ts_type","type":"Checkbox", "data":"ts_type","ua":"Тип тимчасової споруди"},
{"name":"ts_regnum","type":"Autocomplete","ua":"Реєстраційний номер"}
]'}}}

select

Для отримання даних

HelperPropsОпис
selectparams: data (Параметр по чому вибирати дані), data (назва колонки або строка)Співставлення даних з класифікатором або селектом в БД. Використовується у шаблонах
badgeoptions: data (Назва класифікатора з color), data (назва колонки або строка)Створення тегу span з вибраним кольором значка
selectListoptions: key (Ключ для фільтрації), value (Значення для шаблона), data (Назва класифікатора або селекта), filter (Назва фільтра), _href (Посилання). data: назва колонкиВибирає всі значення з select
{{{badge status data="status_classifier"}}}

{{{select '1' data="account_status"}}} // Діючий (Статус '1' містить значення 'Діючий' у класифікаторі)
{{select uid data='user_id'}}

{{#selectList page.metadata.theme data="inspire_category" }}
<a href="{{data}}" target="_blank" class="inspire__block"
style="border:1px solid {{color}}">
<span>{{name}}</span>
</a>
{{/selectList}}

form

Для вставки форм

HelperPropsОпис
_formoptions: form (Назва форми), template (Назва шаблона), api (Апі), obj (Об'єкт), action (Дія), model (Назва моделі для пошуку у бд)Відображення html форми. Дозволяє викликати функції з БД, API, а також передавати параметри, що користувач явно не вносить. id Ідентифікатор для отримання даних з таблиці
__formoptions: id, table, api, form, modal_title (Назва модального вікна), modal (Назва для отримання шаблону модального вікна), width (Ширина вікна), reload (Перезавантаження)Відображення форм через хелпер. Є можливість виведення форми на сторінці або її відкриття через кнопку.
{{{_form form="softpro_support.login.form"}}}

{{{__form form='softpro_support.login.form' model='admin.users' obj='uid={{{user.uid}}}'
* modal='<a class="btn btn-default"><span class="btn-label"></span>Add user</a>'}}}

json

Для виводу даних у форматі json

HelperPropsОпис
jsondata: назва об'єктуJSON.stringify - об'єкту. Є можливість виведення налаштувань сайту
_keysdata: назва об'єктуВитягування ключів з об'єкту. Є можливість повернення лише непустих ключів
JSONdata: назва об'єкту, args[1] - Елемент для з'єднання об'єктуФорматування об'єкта в об'єкт json або string. Є можливість виведення геометрії у форматі GeoJJON
{{{json user}}}

{
"uid": "1", "email": "ivanov.test@gmail.com",
"enabled": true, "max_age": null, "allow_ip": null,
"sur_name": "admin", "editor_id": "1",
"user_name": "admin", "user_type": "admin"
.....
} // приклад виводу

{{{JSON geom}}} // Виведе геометрію об'єкту у форматі GeoJJON

{{_keys @root}}
/*
приклад виводу - mode,view,data[mode],data[view],url_part[],user,_uid,uid,dbname,domain,
port,__port,folder,setting,lang,_lang
*/

math

Для математичних операцій

HelperPropsОпис
_countdata: об'єкт або масивДовжина об'єкту або массиву. Дозволяє отримати кількість елементів
_evaldata: Набір вхідних даних (Строка з обчисленнями)Функція для виклику eval. Дозволяє виконувати арифметичні обчислення над змінними
_mathoptions: operator (Оператор для дії з числами), arg1 (Перше число для дії),arg2 (Друге число для дії). args[0] - Перше число для дії, args[1] - Оператор для дії з числами, args[2] - Друге число для діїДії над числами. Дозволяє виконання простих математичних операцій arg1 Перше число для дії, arg2 Друге число для дії
math_sumdata: масив чисел для додавання. args[0] - Перший елемент для додавання args[1] - Другий елемент для додавання. options: fixed (к-сть цифр після коми), attr (Параметр по чому додавати з об'єкта)Отримує суму за атрибутом із масиву. Є можливість вказання точностіsa
rounddata: число. params: dec (Підрахування числа після роздільника) floor (False - округлення до низу)Округлення числа до певної точності. Є можливість округлення до низу
_randomdata: Значення для хешуванняВипадковий хеш-код. Використовується функцією формування динамічних табів в інтерфейсі
incargs: Масив чисел для складанняСкладення двох значень з масива. Є можливість використання у якості порядокового номеру
{{{_count user}}} // 37 (Об'єкт user містить 37 ключів зі значеннями)

{{{_eval '(12-12+2)'}}} // 2

{{_math '1' '+' '1'}} // 2
{{_math operator='-' arg1=10 arg2=5}} // 5

{{math_sum (formatDate cdate format='yy') 1}} // Додає до дати один рік

{{round 3.14159265359 dec="6"}} // 3.141593

{{{inc (coalesce @index 0)}}} // 1

{{{_random}}} // c2b027c30e (приклад отриманого хеш-коду)

util

HelperPropsОпис
util_abbrdata: СтрокаВиведення аббревіатури з текстової строки
qrcode-generatoroptions: text (Змінна, що містить посилання на файл або сторінку), type (Тип зображення), margin (Відступ), size (Розмір)Генерує зображення з QR кодом, що перенаправляє на посилання
qrcode-generator-base64options (з хелперу вище)Генератор QR код. Є можливість задання відступу та встановлення розширення вихідного зображення
mapdata: геометрія, options: layers (Список шарів), height (Висота карти), width (ширина карти), obj (Об'єкт для генерації шаблону), id (Ідентифікатор для отримання даних з базі)Отримання карти з бази. Є можливість кастомізації
print_mapoptions: geom, layers, buffer (Буфер для отримання даних з бази), width, height, pin_width (Закріпленна ширина для карти)Формує зображення карти. Використовується при формуванні витягу із БД у вигляді документу.
{{{util_abbr 'Test Question'}}} // TQ

{{{util_get1 @root @root.user}}} // ?

{{{qrcode-generator text=qr_link type='png' margin=1}}}

{{{qrcode-generator-base64 text=qr_link type='png' margin=1}}}

{{util_find conditions_json "cond_value,note" attr="cond_id" val="35"}}

{{{_vue "/vue/core/components/UIKit/list/vs-table-simple.vue" id=user_group_id model="admin.user_group_rel.table"}}}

{{{map '{"type":"Point","coordinates":[22.482923735,48.960322333]}' height=600 id="2728523421016131109"}}}

{{{print_map geom=geom layers="topo100" width=300 height=300 buffer=10000 base64=1}}}

echart

Для діаграм і візуалізації

HelperPropsОпис
bioptions: table_name, query, api, groupby, cls, color, type, height, widthдля графіків
echarts_lineoptions: table_name, x_axis, query, chart_style,show_legend, smooth, area_style, height, widthдля графіків
echarts_mapoptions: table_name, tooltip_name, show_map_labels, show_bar, query, id_column, data_columnдля діаграм у вигляді карт
echarts_pieoptions: table_name, name_column, group_type, dict_name, show_legend, x_offset, radius, inner_radiusдля секторних діаграм
{{{bi table_name="data_dma.build_passport" groupby="doc_status" height="300" type="bar"}}}


{{{echarts_line table_name = 'data_parcel.cad_parcel' x_axis='simple' smooth=1 show_legend=1 chart_style= 'light'}}}

{{{echarts_map table_name='data_parcel.cad_zone' tooltip_name='Площа зони'
* show_map_labels=1 show_bar=1 query="cad_zone_id >'10'" id_column='cad_zone_id' data_column='area'}}}

{{{echarts_pie table_name='data_parcel.cad_parcel' name_column='parcel_ownership' group_type='count' dict_name='ownership_buidl' show_legend=1 x_offset='75%' radius='80%' }}}

{{{echarts_pie group_type='count' height='350px' width='500px' show_legend=1 name_column='project_status' dict_name="project_status" table_name="need_recovery.all_projects" show_legend=1 x_offset='55%' radius='60%' inner_radius='20%'}}}

file

Для роботи з файлами

HelperPropsОпис
image_base64args[0] - назва фотоБудує шлях до фото. Використовується для виведення зображень у витязі (документі)
pdf_to_base64Img_helperargs[0] - назва фото, options: title (Назва документу) style (Стилізація (верстка)), img_w (ширина), filepath (Шлях до файла)Конвертація PDF-файлу до формату base64 з метою відображення його у якості додатку до основного PDF файлу.
fileExistsdata: шлях до файлуПеревірка чи існує файл
{{{image_base64 '/files/site/07a0a970-98ab-11e9-9c44-77fb2216dab1.png'}}}
{{{image_base64 (qrcode-generator text=qr-link type='png' margin=1)}}}

{{{pdf_to_base64Img_helper '/help/test_for_helper.pdf' title="Example"
style="display:block;width:100%;margin-bottom:30pt;" img_w=720}}}