Концепция расширений на примере шаблонов
gimntut opened this issue · comments
Гимаев Наиль commented
При чтении шаблона:
- По событию срабатывает скрипт, который передаёт файл шаблона на удалённый сервер
- Удалённый сервер выделяет из шаблона запросы и направляет их обратно на databoom
- databoom отправляет ответы на запросы на удалённый сервер
- удалённый сервер формирует на основе шаблона страницу и передаёт её обратно в скрипт
- databoom возвращает страницу пользователю
Файл extension.rules.json
// В данном примере идёт привязывание к событием файлов, а должно к событиям хостинга
{
"name": "Template renderer",
"name[ru]": "Визуализатор",
"description[ru]": "Крутая штука",
"extensionID": "templateRenderer",
"extensionUID": "blablablablablablablablablablablabla",
"parseObjName": "parseObjName from parser.js",
"export": {
"onSuperRead": {
"if": true
}
},
"file/templates/*.html": {
"onGet": {
"event[js]": "renderTemplate from renderTemplate.js"
},
"onUpload": {}
}
}
Файл renderTemplate.js
function renderTemplate(context) {
sendTemplateToRemoteHttpServer(remoteServerURL, context.file.text, successCallBack);
}
function successCallBack(context, data) {
context.data = data;
context.runEvent('onBeforeChangeTextFile', context);
context.file.text = data.text;
}
Файл rules.json
{
"extensions/templateRenderer": {
"onBeforeChangeTextFile": {
"oData": ""
}
}
}