=== Orthodox Calendar ===
Contributors: David Leselidze
Tags: orthodox, calendar, church, christian, russian, bilingual
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Displays the Orthodox Calendar from Holy Trinity Orthodox Church in English or Russian.

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

== Installation ==

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.

== Frequently Asked Questions ==

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

== Changelog ==

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

== Upgrade Notice ==

= 1.3.0 =

Adds administrator-controlled English/Russian calendar selection and language-specific Holy Trinity Orthodox Calendar endpoints.
