Orthodox Calendar

Plugin Banner

Orthodox Calendar

by davidbrush

Download
Description

Orthodox Calendar displays daily Orthodox calendar information from Holy Trinity Orthodox Church.

The plugin language is selected by an administrator in Settings > Orthodox Calendar. The selected language determines the calendar service URL, remote endpoint, widget title, and navigation messages.

English configuration:

  • Title: Orthodox Calendar
  • Site: https://www.holytrinityorthodox.com/calendar/
  • Remote endpoint: https://www.holytrinityorthodox.com/calendar/calendar2.php

Russian configuration:

  • Title: Православный календарь
  • Site: https://www.holytrinityorthodox.com/ru/calendar/
  • Remote endpoint: https://www.holytrinityorthodox.com/ru/calendar/calendar2.php

The Russian remote endpoint is normalized to HTTPS.

Features include:

  • English or Russian language selection as a plugin option.
  • Display the current day’s Orthodox Calendar.
  • Navigate to the previous day.
  • Return to today’s date.
  • Navigate to the next day.
  • Uses the WordPress HTTP API.
  • Uses the WordPress AJAX API.
  • Sanitizes and validates incoming data.
  • Escapes output according to WordPress coding standards.
  • Uses a strict HTML allowlist for remote content.
  • Validates remote links and images against the selected Holy Trinity calendar path.
  • Converts the remote Windows-1251 calendar response to UTF-8.
  • Uses WordPress transients to reduce remote requests.
  1. Upload the orthodox-calendar folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the WordPress Plugins screen.
  3. Go to Settings > Orthodox Calendar and choose English or Russian.
  4. Go to Appearance > Widgets and add the “Orthodox Calendar” widget to a sidebar.
How do I choose the language?

Go to Settings > Orthodox Calendar and select English or Русский. English is the default.

Does the plugin use file_get_contents()?

No. The plugin uses the WordPress HTTP API with wp_remote_get().

Is calendar information cached?

Yes. Calendar responses are sanitized and cached temporarily using the WordPress Transients API. English and Russian responses use separate cache keys.

Does the remote calendar use Windows-1251?

Yes. The remote calendar response is converted from Windows-1251 to UTF-8 before sanitization and display.

1.3.0

  • Added English/Russian language selection as a WordPress plugin option.
  • Added Settings > Orthodox Calendar.
  • Added language-specific calendar site URLs and remote endpoints.
  • Added English and Russian widget titles and navigation messages.
  • Added language to transient cache keys.
  • Added strict URL path validation for the selected calendar language.
  • Preserved the WordPress HTTP API and AJAX architecture.
  • Preserved the strict remote HTML allowlist and output escaping.
  • Preserved Windows-1251 to UTF-8 conversion.

1.2.0

  • Modernized plugin structure.
  • Replaced deprecated plugin path constants.
  • Replaced direct remote requests with the WordPress HTTP API.
  • Removed file_get_contents().
  • Removed get_headers().
  • Replaced the standalone PHP proxy with the WordPress AJAX API.
  • Added nonce verification.
  • Added sanitization and validation of AJAX input.
  • Added output escaping.
  • Added transient caching.
  • Moved JavaScript to a separate file.
  • Updated widget registration.
  • Improved accessibility of navigation buttons.

1.1

  • Previous version.
Back to top