Загрузка и установка расширений возможна в один клик через url /xtables-requirements/ext
,
которое входит в минимальное меню пользователя с высшими правами по умолчанию.
В этом разделе будут показаны все доступные к загрузке расширения с описаниями своих характеристик и
доступными роутами, которые они предоставляют.
Для создания расширения необходимо создать папку с названием расширения с маленькой буквы,
например: testExt
. В данной папке создать:
model
(для классов с логикой, настроечных файлов, схемы описания базы данных);
@since version 1.4.0
views
(для представлений).
"test-ext": "ext\\testExt\\TestExt"
/config/route-map.json
/test-ext
.
Подробнее Router.
/ext/
/testExt/
/model/
TestExtModel.php
table.php
card.php
requirements.php
db-structure.php
/views/
description.php
some-view.php
else-view.html
TestExt.php
ext
,
namespace ext\testExt;
use ext\testExt\model\TestExtModel;
use xtables\base\Controller;
class TestExt extends Controller
{
public function accessLevels()
{
return Access::FREE; // access levels
//return [
// 'user',
// 'unit'
//];
}
public function index()
{
$test = new TestExtModel($this->request);
// .........
$this->response->json($test->getSomeJson());
}
// some code
}
namespace ext\testExt\model;
use xtables\base\Request;
class TestExtModel
{
protected $request;
public function __construct(Request $request) {
$this->request = $request;
}
// some code
}
В папке с именем (!) model
должен находиться файл db-structure.php
,
в котором указывается схема таблиц базы данных, необходимых для работы расширения. Схема строится по правилам,
указанным в описании Shema.
В папке с именем (!) views
должен находиться файл description.php
,
в котором содержится описание расширения (с указанием предоставляемых расширением url). Данный файл будет подгружаться
в раздел доступных расширений с центрального сервера xTables.
В папке model
может быть добавлен файл requirements.php
,
в котором могут быть определены следующие специальные требования модуля-расширения:
min_ver
- минимальная версия ядра xTables, которая необходима для работы модуля,
установка расширения на меньшей версии будет недоступна и будет выводится сообщение о
необходимости обновиться;
dirs
- директории, содержимое которых должно быть загружено, если не
указано, то по умолчанию загружается содержимое, находящееся внутри папки расширения;
если данный параметр определяется, то он должен указывать и на папку расширения;
files
- файлы, которые должны быть загружены дополнительно, например, это могут быть специфичные css, js файлы.
return [
'min_ver' => '1.4.0',
'dirs' => [
'/ext/articles' => XTABLES_BASE
],
'files' => [
'/js/blueimp-gallery.js' => ROOT_PATH,
'/js/blueimp-gallery.min.js' => ROOT_PATH,
'/css/blueimp-gallery.css' => ROOT_PATH,
'/css/blueimp-gallery.min.css' => ROOT_PATH,
'/img/error.png' => ROOT_PATH,
'/img/error.svg' => ROOT_PATH,
'/img/loading.gif' => ROOT_PATH,
'/img/play-pause.png' => ROOT_PATH,
'/img/play-pause.svg' => ROOT_PATH,
'/img/video-play.png' => ROOT_PATH,
'/img/video-play.svg' => ROOT_PATH
]
];
/logs/safe
- лог авторизаций.
/logs/performance
- журнал производительности.
/manual
- руководство пользователя.
/news
- все системные оповещения.
/users
- все пользователи.
/users/{num}
- карточка пользователя;
/ds/all
- все сертификаты
Расширение для создания юридических значимых документов. Поддерживается создание нового документа, прикрепление к карточке файла-документа, подписание файла-документа юридически значимой электронной подписью с указанием одного из четырех типов подписи (первая подпись, ознакомлен, согласен, утверждаю), создание запросов по документам, формирование ответов.
Документ становится доступным обычному пользователю, если он создан им самим или направлен ему другим пользователем с вопросом.
По умолчанию созданы две группы пользователей:
users
- создают документы, прикрепляют подписантов, включая себя,
подписывают документы, могут просматривать все документы;
unit
- создают документы, прикрепляют подписантов, включая себя,
подписывают документы, могут просматривать только созданные ими документы.
Данное расширение может быть скопировано в /app
для создания дополнительных модулей
юридически значимых документов с особой логикой работы.
В расширении по умолчанию используются sql таблицы:
app_signatures
- основная таблица для хранения электронных подписей;
docs_for_sign
- базовая таблица документов;
docs_for_sign_files
- информация о сохраняемых на сервер файлах-документов;
docs_for_sign_requests
- информация о запросах по конкретным документам;
docs_for_sign_replies
- информация об ответах по конкретным запросам;
В случае копирования расширения в /app
в базе данных необходимо создать аналогичные три таблицы,
откорректировав их с учетом дополнительной логики описываемых процессов.
/ds-docs-all/journal
- все документы без ограничений;
/ds-docs
- все свои документы, созданные самим пользователем;
/ds-docs/inwork
- все документы в работе (по которым имеются открытые вопросы);
/ds-docs/users-groups
- все группы пользователей для использования в документах.
articles
blog
post
Могут быть добавлены и отредактированы данные группы, определены их локализованные названия.
Данное расширение использует следующие sql таблицы:
app_articles
- основная таблица для сохранения любого типа статей с их содержимым;
app_articles_rubrics
- таблица для сохранения информации о рубриках (разделах);
app_articles_comment
- таблица для сохранения комментариев;
app_articles_gallery
- таблица для сохранения информации о файлов, которые
показываются в специальной фото галлерее.
/articles-edit/all
- все статьи (все типы и группы);
/articles-edit/rubrics-all
- все рубрики;
/articles/{rubric}/{article_name}
- текущая статья;
/post/{rubric}/{article_name}
- текущая статья;
/blog/{rubric}/{article_name}
- текущая статья.