=== Koha OPAC Discovery Bridge ===
Contributors: saptarshighosh
Tags: koha, library, opac, ils, catalog
Requires at least: 5.8
Tested up to: 7.2
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Search and display records from a Koha LMS OPAC inside WordPress, with a detail card, citations, MARC view, and a printable catalog card.

== Description ==

Koha OPAC Discovery Bridge lets a WordPress site act as a discovery front end for a Koha
Integrated Library System. Search results and item detail pages are fetched server-side from
your Koha OPAC and rendered inside WordPress, so visitors never leave your site.

Features:

* `[koha_search]` shortcode — a paginated search results list.
* `[koha_detail]` shortcode — a record detail card with APA/MLA citations, a MARC view modal,
  and a downloadable catalog card image.
* Settings page under Settings → Koha Discovery to configure the OPAC base URL, the detail
  page, and results per page.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install the zip via Plugins → Add New → Upload Plugin.
2. Activate the plugin through the "Plugins" screen in WordPress.
3. Go to Settings → Koha Discovery and enter your Koha OPAC base URL and choose the detail page.
4. Create a search page containing `[koha_search]` and a detail page containing `[koha_detail]`.

== Frequently Asked Questions ==

= Where do I find my Koha OPAC base URL? =

Use the public OPAC root, for example `https://opac.example.org`.

= Does this plugin modify data in Koha? =

No. All requests to Koha are read-only.

== Changelog ==

= 1.1.0 =
* Fixed plugin header: valid lowercase-hyphenated Text Domain and an existing Domain Path.
* Added explicit version strings to all enqueued styles/scripts.
* Added nonce verification to the MARC-view AJAX endpoint.
* Escaped all dynamic output; sanitized/unslashed all request input.
* Added sanitize callbacks to all registered settings.
* Bundled html2canvas locally instead of loading it from a remote CDN; moved detail-card
  JavaScript into a properly enqueued script file.
* Added this readme.txt.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.1.0 =
Security and compliance fixes; please update.
