=== Puzzle Maker Pro Online ===
Contributors: your-wporg-username
Tags: puzzles, puzzle, interactive, catalog, publishing
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Publish interactive puzzle catalogs exported by Puzzle Maker Pro. Upload a catalog zip, get a playable page.

== Description ==

Puzzle Maker Pro Online turns the catalog batches you export from the
Puzzle Maker Pro desktop app into playable, interactive puzzle pages on
your WordPress site.

Each catalog you upload becomes a Puzzle Catalog post. The plugin validates
and extracts the catalog zip, then renders a playable puzzle page using the
hosted Puzzle Maker Pro engine. Visitors solve the puzzles in the browser.

Features:

* Upload an exported catalog zip and publish it as a playable page.
* Instant preflight when you choose a file: see the puzzle types, count,
  and any skipped files before you save.
* Drag-and-drop the catalog zip onto the upload box, or click to browse.
* Add your own text above and below the puzzle on each catalog page.
* Renders on the catalog post's own page, or anywhere with the
  `[pmp_catalog id="123"]` / `[pmp_catalog slug="my-catalog"]` shortcode.
* List catalogs anywhere with `[pmp_catalog_list]`, filterable by category,
  tag, or puzzle type, with date/title ordering.
* Catalog-only Categories and Tags that never mix with your blog posts.
* Supports mixed-type catalogs (several puzzle types in one batch).
* Bundled demo catalogs you can install with one click.

= External service =

Puzzle pages are rendered by the hosted Puzzle Maker Pro engine at
https://puzzleengine.bookpublishertools.com/v1/. The plugin loads the
engine's JavaScript and CSS from that host, and the browser renders your
catalog's JSON locally in the visitor's browser. The engine base URL is
configurable on the plugin's Settings page (for example, to point at a
self-hosted engine build). The plugin sends no personal data to the engine;
the engine loads only the public catalog JSON files stored in your own
site's uploads folder.

Terms of service: https://www.bookpublishertools.com/
Privacy policy: https://www.bookpublishertools.com/

== Installation ==

1. In WordPress, go to Plugins > Add New > Upload Plugin, upload the plugin
   zip, then activate it.
2. A "Puzzle Catalogs" menu appears in the admin sidebar.
3. In Puzzle Maker Pro, export an HTML batch and zip the batch folder
   (catalog JSON + per-puzzle JSON files).
4. Puzzle Catalogs > Add New > upload the zip in the Catalog Upload box >
   Publish.
5. Visit the new catalog's page to play, or embed it elsewhere with
   `[pmp_catalog id="<post id>"]`.

Requires the PHP zip extension (ZipArchive) on the server.

== Frequently Asked Questions ==

= What do I upload? =

A zip of a batch folder exported by Puzzle Maker Pro: the catalog JSON plus
the per-puzzle JSON files. Zipping the folder or its contents both work.
Only JSON and bitmap image files are extracted; anything else (including
index.html) is skipped.

= Can one catalog contain several puzzle types? =

Yes. Puzzle types are read from the puzzle files themselves, so a mixed
batch is published as a "Mixed" catalog with each type listed as a tag.

= Does it work without the hosted engine? =

The interactive player is served by the hosted engine. You can point
Settings > Engine base URL at your own engine build if you prefer to
self-host it.

== Changelog ==

= 1.0 =
* First stable release.
* Catalog author: the Author box now shows on the catalog edit form by default,
  so the byline your theme shows can be reassigned right where you edit the
  catalog (still also available inline from the catalog list via Quick Edit). No
  need to enable it from Screen Options first.
* Plugins screen: the plugin's row now notes that updates are downloaded and
  installed manually from your bookpublishertools.com member area.

= 0.9.4 =
* Catalog author: the catalog post type now supports an author, so the byline
  your theme shows can be reassigned. Enable the Author box from Screen Options
  on the edit screen, or set it inline from the catalog list (Quick Edit).

= 0.9.3 =
* Catalog categories/tags: type terms auto-created by an older version with the
  raw code as their name (e.g. "binary-puzzles") are upgraded to the display
  name ("Binary Puzzles") on the next import. A name you have edited yourself is
  left as-is.

= 0.9.2 =
* Catalog editing: the post body editor is replaced by a compact "Catalog Text"
  box with separate Above and Below fields, shown on the catalog page above and
  below the puzzle — keeping the Catalog Upload box above the fold.
* Catalog Upload: drag a catalog .zip onto the drop zone (or click it) instead
  of browsing for the file.

= 0.9.1 =
* Catalog metadata: the post title (and its slug, when still auto-generated)
  now defaults from the exported catalog's `catalog.title` when the editor
  leaves the title blank (a title you set is never overwritten), and
  `[pmp_catalog_list]` shows the catalog description.

= 0.9.0 =
* Pre-release. Catalog upload, validation, and rendering; instant preflight;
  catalog taxonomies and `[pmp_catalog_list]`; bundled demo catalogs.
* Importer hardening: bitmap-only image extraction (SVG no longer accepted),
  combined extracted-size cap, and a no-gap catalog swap that restores the
  previous catalog if a replacement fails to move into place.

== Upgrade Notice ==

= 1.0 =
First stable release. The catalog author is now editable directly on the edit
form (no Screen Options step needed), as well as via Quick Edit.

= 0.9.4 =
The catalog author is now editable (Screen Options → Author, or Quick Edit).

= 0.9.3 =
Legacy puzzle-type categories/tags named after the raw code are renamed to their
display name on the next import (your own renames are kept).

= 0.9.2 =
Replaces the post editor with Above/Below catalog text fields and adds
drag-and-drop zip upload.

= 0.9.1 =
Adds catalog title/description use: post title defaults from catalog.title, and
the catalog listing shows the description.

= 0.9.0 =
Pre-release build for testing.
