Создание расширения

Загрузка и установка расширений возможна в один клик через url /xtables-requirements/ext, которое входит в минимальное меню пользователя с высшими правами по умолчанию.
В этом разделе будут показаны все доступные к загрузке расширения с описаниями своих характеристик и доступными роутами, которые они предоставляют.

Для создания расширения необходимо создать папку с названием расширения с маленькой буквы, например: testExt. В данной папке создать:

  • папку с именем model (для классов с логикой, настроечных файлов, схемы описания базы данных);
  • @since version 1.4.0
    папку с именем views (для представлений).
  • управляющий контроллер - класс, в котором будут отрабатываться входящие запросы по url.
    "test-ext": "ext\\testExt\\TestExt"
  • определить роут для доступа к данному модулю, который будет сохранен /config/route-map.json
    После этого методы данного класса будут доступны к обращению через url /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

Требования расширения

В папке 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

Описание


Расширение для показа логов. По умолчанию, включены показ логов авторизаций и журнала производительности.

URL:

  • /logs/safe - лог авторизаций.
  • /logs/performance - журнал производительности.
Manual
Описание

Расширение для создания справочника (документации) по работе разработанного приложения с текстом, изображениями и видео.

URL:

  • /manual - руководство пользователя.
News
Описание

Расширение для работы с системными оповещениями с возможностью добавления новых, редактирования имеющихся, изменения их статуса для показа пользователям или снятия с показа, определения групп пользователей, для которых будут показываться оповещения. Оповещения показываются сразу после авторизации пользователя.

URL:

  • /news - все системные оповещения.
Users
Описание

Расширение для работы с пользователями. Показываются пользователи, могут редактироваться часть их данных. Логин и пароль пользователя могут быть отредактированы только в личном кабинете. Доступен вход в личный кабинет пользователя для пользователя с высшими правами через карточку пользователя данного расширения. Доступно удаление пользователя (пользователь помечается как удаленный).

URL:

  • /users - все пользователи.
  • /users/{num} - карточка пользователя;
DsCerts
Описание

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

URL:

  • /ds/all - все сертификаты
DsDocs
Описание

Создание юридически значимых документов.

Расширение для создания юридических значимых документов. Поддерживается создание нового документа, прикрепление к карточке файла-документа, подписание файла-документа юридически значимой электронной подписью с указанием одного из четырех типов подписи (первая подпись, ознакомлен, согласен, утверждаю), создание запросов по документам, формирование ответов.

Документ становится доступным обычному пользователю, если он создан им самим или направлен ему другим пользователем с вопросом.

По умолчанию созданы две группы пользователей:

  • users - создают документы, прикрепляют подписантов, включая себя, подписывают документы, могут просматривать все документы;
  • unit - создают документы, прикрепляют подписантов, включая себя, подписывают документы, могут просматривать только созданные ими документы.

Данное расширение может быть скопировано в /app для создания дополнительных модулей юридически значимых документов с особой логикой работы.

В расширении по умолчанию используются sql таблицы:

  • app_signatures - основная таблица для хранения электронных подписей;
  • docs_for_sign - базовая таблица документов;
  • docs_for_sign_files - информация о сохраняемых на сервер файлах-документов;
  • docs_for_sign_requests - информация о запросах по конкретным документам;
  • docs_for_sign_replies - информация об ответах по конкретным запросам;

В случае копирования расширения в /app в базе данных необходимо создать аналогичные три таблицы, откорректировав их с учетом дополнительной логики описываемых процессов.

URL:

  • /ds-docs-all/journal - все документы без ограничений;
  • /ds-docs - все свои документы, созданные самим пользователем;
  • /ds-docs/inwork - все документы в работе (по которым имеются открытые вопросы);
  • /ds-docs/users-groups - все группы пользователей для использования в документах.
Articles
Описание

Расширение для работы с рубриками и статьями для размещения в свободной доступе, ведения блока с комментированием. По умолчанию доступны три группы:
  • articles
  • blog
  • post

Могут быть добавлены и отредактированы данные группы, определены их локализованные названия.

Данное расширение использует следующие sql таблицы:

  • app_articles - основная таблица для сохранения любого типа статей с их содержимым;
  • app_articles_rubrics - таблица для сохранения информации о рубриках (разделах);
  • app_articles_comment - таблица для сохранения комментариев;
  • app_articles_gallery - таблица для сохранения информации о файлов, которые показываются в специальной фото галлерее.

URL:

  • /articles-edit/all - все статьи (все типы и группы);
  • /articles-edit/rubrics-all - все рубрики;
  • /articles/{rubric}/{article_name} - текущая статья;
  • /post/{rubric}/{article_name} - текущая статья;
  • /blog/{rubric}/{article_name} - текущая статья.