Georg-Kloster Calendar Workshop

Описание

Добавляет 22 динамических блока Gutenberg и шорткоды. Календарные и библейские данные поступают из внешних сервисов, перечисленных ниже; собственная календарная база данных в плагин не включена.

Исходный код и разработка

Публичный репозиторий исходников: https://github.com/VAtapin/wp_orthodox_calendar
Исходники JavaScript и CSS: https://github.com/VAtapin/wp_orthodox_calendar/tree/main/assets

Файлы assets/admin.js, assets/calendar.js, assets/editor.js, assets/admin.css и assets/calendar.css — оригинальные читаемые исходники, включённые в этот ZIP. WordPress использует их напрямую. Транспиляция, объединение, минификация и генерация JavaScript/CSS отсутствуют; отдельного скрытого дерева исходников нет. Скрипты используют библиотеки Gutenberg, предоставляемые WordPress, а не включённые в плагин копии.

Редактируйте эти исходные файлы напрямую. Для установки и разработки плагина сборка npm не требуется. Для проверки синтаксиса JavaScript выполните node —check assets/admin.js, node —check assets/calendar.js и node —check assets/editor.js. PHP-файлы можно проверить командой php -l. Необязательное форматирование: npx prettier@3.6.2 —write assets/.js assets/.css. Репозиторий содержит scripts/build-language-files.mjs для повторной сборки каталогов MO с помощью Node.js. Порядок упаковки выпуска описан в README.md публичного репозитория.

Шорткоды

[orthocal_today]
[orthocal_upcoming limit=»5″ filter=»main»]
[orthocal_month year=»2027″ month=»5″]
[orthocal_year year=»2027″]
[orthocal_day date=»2027-05-02″]
[orthocal_readings date=»2027-05-02″]
[orthocal_calendar open=»modal»]
[orthocal_fasting]
[orthocal_saints]
[orthocal_feasts limit=»5″]
[orthocal_memorial]
[orthocal_pascha year=»2027″]
[orthocal_fasts year=»2027″]
[orthocal_date]
[orthocal_texts]
[orthocal_troparia scope=»resurrection» tone=»1″]
[orthocal_kontakia scope=»weekday» weekday=»1″]
[orthocal_prayers]
[orthocal_magnifications]
[orthocal_horologion]

open=»inline|modal|page» задаёт способ открытия дня; reading_open=»inline|modal» — способ открытия чтений. Для отдельной страницы разместите на ней [orthocal_day] и выберите эту страницу в настройках. Параметры sections=»fasting,saints,readings,texts,icons», images=»0|1″ и heading=»0|1″ управляют содержимым. Конструктор в админке показывает параметры и результат.
image_size=»120″ задаёт высоту картинки поста в пикселях; ширина сохраняет пропорции исходного изображения. Существующие шорткоды со значениями small, medium и large по-прежнему используют высоты 28, 44 и 72 пикселя.
Справочная библиотека содержит первоначальный корпус из 98 церковнославянских текстов с источниками и ожидает богослужебной редакторской проверки. Она не назначает текст ежедневной службе автоматически. Акафисты запланированы в BibleDesktop и пока не подключены.

Общие параметры: lang=»ru|cu|de|uk|pl», profile=»typikon-strict|parish», theme=»book|modern|inherit», compact=»0|1″ и oldstyle=»0|1″. Часослов использует защищённый маршрут служб и включает вставки шестого часа. Пустая дата означает текущую дату в часовом поясе WordPress. Поддерживаются годы 1900–2200.
Фильтры ближайших событий: main (главные и поминальные), twelve (Пасха и двунадесятые праздники), great (великие), memorial (поминальные) и all (все). Поиск охватывает указанную дату и следующие 366 дней; выводится не более 10 событий.

Внешние сервисы

Календарный API: https://bible-desktop.com/api/v1/calendar/
Используется для расчёта дат, праздников, постов, памятей и ссылок на чтения. Загрузка блока, его предпросмотр в админке или изменение даты передают с сервера WordPress дату/период, язык, календарный профиль и параметры отображения/фильтрации. Публичные запросы включают X-Calendar-Client: orthocal-wordpress. Для обычного публичного использования регистрация и ключ не нужны.
Условия использования: https://bible-desktop.com/pages/api-terms
Политика конфиденциальности: https://bible-desktop.com/pages/api-privacy

API Bible Desktop: https://bible-desktop.com/api/
Используется для переводов Библии, книг, глав, богослужебных библиотек, житий и каталогов/изображений икон. При открытии чтений или библиотеки передаются выбранный перевод, книга/глава, язык, идентификатор произведения или параметры страниц и фильтров. При загрузке икон передаются календарные месяц/день либо идентификатор материала/изображения. При отсутствии данных в кэше WordPress загружает изображения и шрифты; плановая перепроверка кэша передаёт условные HTTP-заголовки. Bible Desktop рассчитывает календарь локально. Прежний ключ Kalendar никогда не передаётся новому поставщику.
Условия использования: https://bible-desktop.com/pages/api-terms
Политика конфиденциальности: https://bible-desktop.com/pages/api-privacy

Оба сервиса получают IP-адрес запрашивающего сервера, время запроса, запрошенный ресурс и технические HTTP-заголовки. Плагин не передаёт IP-адреса посетителей, имена, адреса электронной почты, пароли WordPress или содержимое записей. Удалённые медиафайлы кэшируются и раздаются локально. При наличии действующей записи кэша запрос может не выполняться. Полные тексты, иконы и жития не включены в ZIP; права на соответствующие материалы сохраняют силу.
Единый адрес API Bible Desktop можно изменить в настройках подключения. Эти ссылки описывают поставщиков по умолчанию; администраторы, выбирающие другого поставщика, должны изучить его условия использования и политику конфиденциальности и сообщить о них пользователям.

Кэш и доступ

Требуется обновлённый календарный API: upcoming, view=summary и заголовок X-Calendar-Application-Cache-TTL.
Успешные календарные ответы сохраняются не более чем на 300 секунд и только с разрешения API; отзыв доступа и изменения базы данных учитываются не позднее истечения этого срока. После ошибок устаревшие данные не используются. Ответы без разрешающего заголовка не сохраняются между запросами.
Библейские ответы сохраняются на выбранный срок: 0, 1, 6 или 24 часа (по умолчанию — 24). Директива no-store запрещает сохранение, если API отдельно его не разрешил. Браузер объединяет одновременные одинаковые запросы.
Локальные изображения и шрифты хранятся в uploads/orthocal-cache. Удалённые фотографии уменьшаются до 1200 пикселей по длинной стороне и сжимаются до размера не более 100 КБ перед сохранением. Условная проверка ETag/Last-Modified через WP-Cron выполняется раз в 6, 12, 24 или 168 часов (по умолчанию — 24). Изменённый файл получает новый URL с хешем, а последняя рабочая копия сохраняется при ошибке. Лимит кэша — 200 МБ; старые версии можно удалить в админке. Файлы медиабиблиотеки WordPress не затрагиваются.
Публичные маршруты REST ограничены фиксированными источниками и разрешённым списком параметров. Счётчики WordPress ограничивают обычный поток запросов; для строгой защиты от распределённого исчерпания квот настройте также ограничение частоты запросов на веб-сервере.
Если сайт использует полностраничный кэш, исключите страницы календаря либо задайте срок хранения не более 300 секунд и очищайте кэш в полночь по часовому поясу сайта. Иначе HTML может оставаться в кэше дольше данных API.
Сохранение настроек сбрасывает кэш плагина. Деактивация сохраняет настройки.

Возможности

22 динамических блока Gutenberg и шорткоды, отдельное меню плагина, конструктор с живым предпросмотром и копированием шорткодов, встроенная справка, серверный рендеринг HTML, переключение дат без перезагрузки, всплывающие окна, поиск по памятям дня, постоянные ссылки ?orthocal_date=YYYY-MM-DD, независимые блоки, три темы оформления, адаптивная вёрстка, стили для печати и навигация с клавиатуры.
Настройки, блоки Gutenberg, карточки дня и окно чтения поддерживают подписи на русском, немецком, украинском и польском языках; язык календарных данных и язык Библии выбираются отдельно. Переводы календаря могут быть неполными. Встроенные богослужебные тексты — церковнославянские; немецкие издания доступны по ссылкам. Отсутствующие данные никогда не заменяются другими иконами или житиями.

Скриншоты

Блоки

Этот плагин предоставляет 22 блока.

  • Orthodox calendar: Orthodox calendar
  • Orthodox calendar: Saints commemorations
  • Orthodox calendar: Canons
  • Orthodox calendar: Yearly calendar
  • Orthodox calendar: Daily readings
  • Orthodox calendar: Feasts
  • Orthodox calendar: Upcoming feasts
  • Orthodox calendar: Troparia
  • Orthodox calendar: Yearly fasts
  • Orthodox calendar: Horologion
  • Orthodox calendar: Calendar day
  • Orthodox calendar: Liturgical texts
  • Orthodox calendar: Pascha
  • Orthodox calendar: Akathists
  • Orthodox calendar: Prayers
  • Orthodox calendar: Fasting and meals
  • Orthodox calendar: Memorial days
  • Orthodox calendar: Monthly calendar
  • Orthodox calendar: Today
  • Orthodox calendar: Kontakia
  • Orthodox calendar: New and old style date
  • Orthodox calendar: Magnifications

Установка

  1. WordPress Плагины Добавить новый Загрузить плагин: orthocal-1.3.78.zip.
  2. Активируйте плагин.
  3. Календарь работает сразу после активации. Чтобы изменить адрес API Bible Desktop, откройте Georg-Kloster Calendar Workshop Подключение.
  4. Добавьте на страницу блоки из категории «Виджеты» или шорткоды.

Прежний ключ Kalendar не передаётся в Bible Desktop. Старые настройки сохраняются, но не используются для авторизации публичных календарных запросов. API календаря, текстов, переводов и икон настраивается в разделе Georg-Kloster Calendar Workshop Подключение. Адрес по умолчанию — https://bible-desktop.com; доступ к файлам для настройки не нужен.

Отзывы

Нет отзывов об этом плагине.

Участники и разработчики

«Georg-Kloster Calendar Workshop» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«Georg-Kloster Calendar Workshop» переведён на 3 языка. Благодарим переводчиков за их работу.

Перевести «Georg-Kloster Calendar Workshop» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.3.78

  • Исходные строки PHP, JavaScript и блоков Gutenberg переведены на американский английский.
  • Русский, немецкий, украинский и польский переводы сохранены с новыми английскими ключами.
  • Различены контексты названий месяцев и дат; независимые языки блоков и текстов сохранены.

1.3.77

  • Подключены подписи настроек, Gutenberg и окна чтения к gettext и переводам скриптов WordPress.
  • Сохранены прежние переводы и добавлены полные каталоги на русском, немецком, украинском и польском языках.
  • Язык каждого блока и язык богослужебного текста остаются независимыми от языка сайта.

1.3.76

  • Показываются действительный год исторического издания и сведения об источнике сохранённых немецких молитв.
  • Добавлена поддержка проверенных немецких утреннего, вечернего и причастного правил через существующие API.

1.3.75

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

1.3.74

  • Сохранённые старые ссылки на молитвы открывают полные канонические произведения.
  • Добавлены группы молитв; фактические языки текстов указаны явно.
  • Старые копии молитв сбрасываются; полные издания кэшируются с учётом редакции содержимого.

1.3.73

  • Для публичных дат и IP-адресов клиентов снимается экранирование, выполняются очистка и проверка.
  • Для Plugin Check пояснены навигация без изменения данных и необходимые механизмы взаимодействия с кэшем страниц и базой данных.

1.3.72

  • Включены читаемые исходники JavaScript/CSS; описаны публичный репозиторий и порядок разработки.
  • Перед отображением повреждённых данных внешнего API полностью проверяются даты постных периодов.
  • Для всех transient-ключей ответов, периода ожидания и ограничения частоты запросов используется установленный префикс orthocal.

1.3.71

Все календарные запросы теперь используют настроенного поставщика Bible Desktop. Отдельный адрес API Kalendar и передача его ключа удалены. Декоративные наборы, знаки Типикона и шрифт Monomakh включены локально; шорткоды и галереи сохранены.

1.3.70

  • Плагин переименован в Georg-Kloster Calendar Workshop; используется соответствующий Text Domain.
  • Описаны запросы к внешним API; добавлены ссылки на условия использования и политику конфиденциальности поставщиков.
  • Существующие блоки, шорткоды и настройки сохранены.

1.3.69

  • Удалённые фотографии икон сжимаются до размера не более 100 КБ перед сохранением в WordPress.
  • После обновления однократно удаляются полноразмерные файлы старых версий плагина.

1.3.68

  • Адрес https://bible-desktop.com восстановлен как текущий адрес публичного API по умолчанию.

1.3.67

  • Исправлена загрузка икон, когда настроенный публичный API возвращает изображения с отдельного медиадомена.

1.3.66

  • В настройки плагина добавлен редактируемый адрес публичного API.

1.3.65

  • Адрес календарного API вынесен в единое место.

1.3.64

  • Лимит постоянного локального медиакэша увеличен с 64 МБ до 200 МБ.
  • Плагин переименован в Orthodox Calendar – Workshop; Text Domain приведён в соответствие с его slug на WordPress.org.
  • Версия WordPress, на которой плагин проверен, обновлена до 7.1.

1.3.63

  • Text Domain локализации WordPress приведён в соответствие с одобренным slug плагина; добавлена версия WordPress, на которой плагин проверен.

1.3.62

  • Исправлен Plugin URI для подачи в WordPress.org; теперь он отличается от URL автора.

1.3.61

  • Настроенное количество икон ограничивает только карточки в блоке; каждая икона дня и все её изображения остаются доступными в галерее.
  • Галереи икон плагина защищены от подмены всплывающими галереями темы.
  • Добавлены русские и немецкие переводы заголовка плагина.