Sign Docs self-updates
WordPress plugin for signed document registration and verification
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/igor-blag/sign-docs/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Плагин для фиксации и проверки подписанных PDF-документов простой электронной подписью в WordPress.
Скачать последний релиз · Все релизы
Описание
Sign Docs хранит исходный PDF как контрольную копию, вычисляет серверный SHA-256, создаёт публичную копию с визуальной отметкой (штамп + QR-код) и показывает страницу проверки для каждого документа.
Разработан для образовательных организаций, подпадающих под Постановление Правительства РФ № 1802 (20.10.2021), требующее подписывать локальные акты простой электронной подписью и публиковать на официальном сайте.
Возможности
- Загрузка PDF-документов с подписанием через браузер (pdf-lib на стороне клиента)
- Серверный SHA-64 исходного файла — главный источник истины
- Двухфазная подпись: prepare (сохранение исходника) → штамп в браузере → complete (сохранение подписанной копии)
- Публичная страница проверки по адресу
/signed/{id}/с деталями документа и хешем - Клиентская проверка PDF по SHA-256 без загрузки на сервер
- QR-код, ведущий на страницу проверки
- Gutenberg-блок
sign-docs/documentдля встраивания документов - AI-автозаполнение реквизитов (опционально, требует WP AI Client + OpenRouter)
- Настраиваемая матрица названий документов
- Замена документов (новый документ помечает старый как «Заменён»)
- Таксономии: категория, тип, подразделение, институция
- Архив документов: вкладки «Актуальные / Архив / Все» вместо стандартных статусов «Опубликованные / Личные»
- Безвозвратное удаление документов вместе с файлами (только из архива)
- Управление правами на загрузку для редакторов
Требования
- WordPress 6.5+
- PHP 8.1+
- Современный браузер с JavaScript (для подписания PDF)
Установка
- Скачайте последний релиз.
- В админке WordPress: Плагины → Добавить новый → Загрузить плагин.
- Загрузите ZIP и активируйте.
- Перейдите в Sign Docs → Настройки и укажите подписанта и параметры штампа.
Ручная установка
bash tools/build-dist.sh
cp -r sign-docs /путь/к/wp-content/plugins/
Использование
- Sign Docs → Добавить документ.
- Выберите PDF-файл.
- Заполните реквизиты (категория, тип, дата, номер, название).
- Нажмите «Сохранить и подписать» (браузер накладывает штамп через REST API) или «Сохранить без подписи».
- Страница проверки доступна по адресу
/signed/{id}/. - Используйте Gutenberg-блок «Документ» для встраивания документов в записи и страницы.
- Посетители могут проверить PDF на странице проверки, выбрав локальный файл.
Обновления
Плагин поддерживает самообновление из GitHub Releases. При публикации новой версии в админке появится уведомление об обновлении.
Структура проекта
sign-docs.php # Точка входа
includes/
class-plugin.php # Координатор, хуки
class-post-type.php # CPT
class-meta.php # Метаполя
class-taxonomies.php # Таксономии
class-storage.php # Файловое хранилище и SHA-256
class-translit.php # Транслитерация кириллицы в латинские имена
class-site-icon.php # Кэш иконки сайта для QR
class-title-template.php # Матрица названий
class-document-service.php # Создание и подписание документов
class-rest-controller.php # REST API
class-ai-metadata.php # AI-подсказки
class-verification-page.php # Страница проверки
class-settings.php # Настройки
class-admin.php # Админка
class-blocks.php # Gutenberg-блок
class-usage-index.php # Индекс использования
class-updater.php # Обновления из GitHub
assets/
js/ # Скрипты (admin-upload, document-block, public)
css/ # Стили
vendor/ # Сторонние библиотеки (pdf-lib, PDF.js, qrcode, fontkit)
docs/ # Документация модулей
tools/
build-dist.sh # Сборка дистрибутива
create-release.sh # Создание ZIP для релиза
Разработка
Сборка дистрибутива
bash tools/build-dist.sh
Создаёт чистую папку sign-docs/ с файлами, необходимыми для WordPress.
Создание релиза
bash tools/create-release.sh v0.3.0
gh release create v0.3.0 'sign-docs.zip#Sign Docs plugin' --title 'v0.3.0' --notes 'Что нового'
Тесты
php tests/run.php
Лицензия
GPL v2 или позднее.