WP Manifestindependent plugin directory
manifest / utilities / sign-docs

Sign Docs self-updates

WordPress plugin for signed document registration and verification

by Igor Blagoveshchensky · github.com/igor-blag/sign-docs

0stars
0forks

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.zip

Ships 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)

Установка

  1. Скачайте последний релиз.
  2. В админке WordPress: Плагины → Добавить новый → Загрузить плагин.
  3. Загрузите ZIP и активируйте.
  4. Перейдите в Sign Docs → Настройки и укажите подписанта и параметры штампа.

Ручная установка

bash tools/build-dist.sh
cp -r sign-docs /путь/к/wp-content/plugins/

Использование

  1. Sign Docs → Добавить документ.
  2. Выберите PDF-файл.
  3. Заполните реквизиты (категория, тип, дата, номер, название).
  4. Нажмите «Сохранить и подписать» (браузер накладывает штамп через REST API) или «Сохранить без подписи».
  5. Страница проверки доступна по адресу /signed/{id}/.
  6. Используйте Gutenberg-блок «Документ» для встраивания документов в записи и страницы.
  7. Посетители могут проверить 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 или позднее.