=== Shakvaro EGF Reader Shortcode === Contributors: devshakil, shakvaro Tags: shortcode, egf, interactive, game, embed Requires at least: 5.8 Tested up to: 6.9 Requires PHP: 7.2 Stable tag: 1.0.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Embed and play EGF 1.1 interactive games inside WordPress posts or pages with a simple shortcode. == Description == **Shakvaro EGF Reader Shortcode** lets you embed an EGF 1.1 interactive game player directly inside any WordPress post or page using a simple shortcode. Upload your `.egf` file to the Media Library, copy its URL, and drop the shortcode — the reader renders in-place with built-in pause, score, about, and settings panels. The reader is fully client-side: once rendered it loads the `.egf` package, unpacks it, and plays the game without making any third-party calls. This plugin is not affiliated with, endorsed by, or sponsored by the authors of the EGF (Educational Game Format) specification or egf-format.org. "EGF" refers to the open file format the reader supports. = Features = * Simple `[egf_reader]` shortcode — no block editor required. * Allows uploading `.egf` files to the WordPress Media Library. * Built-in player UI: pause, score tracking, about-the-game, and audio/theme settings. * Interface available in 9 languages (English, French, Spanish, Portuguese, Chinese, Arabic, Hindi, Urdu, Russian) with automatic browser-language detection. * Light and dark themes. * Works on any theme — the reader is self-contained and style-scoped. = Shortcode parameters = * `game` *(required)* — URL of the `.egf` game file to load. * `lang` *(optional, default: `auto`)* — interface language. Use `auto` to pick the best language from the visitor's browser, or force one: `en`, `fr`, `es`, `pt`, `zh`, `ar`, `hi`, `ur`, `ru`. * `theme` *(optional, default: `light`)* — `light` or `dark`. * `nocache` *(optional, default: `1`)* — set to `0` to allow the browser to cache the `.egf` package. = Example = `[egf_reader game="https://your-site.com/wp-content/uploads/2025/04/my-game.egf" lang="auto" theme="light"]` == Installation == 1. Upload the `shakvaro-egf-reader-shortcode` folder to the `/wp-content/plugins/` directory, or install the plugin through the WordPress Plugins screen. 2. Activate the plugin through the **Plugins** screen in WordPress. 3. Upload an `.egf` file to your **Media Library** and copy its URL. 4. Insert the shortcode into any post or page: `[egf_reader game="https://your-site.com/wp-content/uploads/game.egf"]` == Frequently Asked Questions == = What is an EGF file? = EGF (Educational Game Format) 1.1 is an open package format for interactive games. An `.egf` file is a zipped bundle containing the game's scenes, assets, and metadata. = Does the plugin send data to any external service? = No. The reader runs entirely in the visitor's browser and loads the `.egf` file from your own server (or wherever you host it). No analytics, tracking, or third-party requests are made by the plugin. = The shortcode shows "missing game attribute" — why? = The `game` attribute is required and must point to the URL of your `.egf` file. Example: `[egf_reader game="https://your-site.com/wp-content/uploads/game.egf"]` = WordPress won't let me upload my .egf file. = Activating the plugin whitelists the `.egf` extension in the Media Library. If you still see a "Sorry, this file type is not permitted for security reasons" error, your host may have additional restrictions — check with your hosting provider. = Can I embed more than one game on the same page? = Yes. Each shortcode instance gets its own unique container and player state. == Screenshots == 1. The reader rendered inside a WordPress page via the `[egf_reader]` shortcode. 2. Built-in "About the game" modal showing game metadata. 3. Settings modal — volume, theme, and language controls. == Changelog == = 1.0.1 = * First public release on WordPress.org. * Renamed plugin to "Shakvaro EGF Reader Shortcode" to clarify no affiliation with the EGF project. * Replaced `time()`-based asset cache-busting with a proper plugin version constant. * Added full plugin header (License, Text Domain, Requires PHP, Requires at least, Tested up to). * Added text domain and made all user-facing strings translatable. * Refactored template output to escape every dynamic value at the point of echo. == Upgrade Notice == = 1.0.1 = First public release — adds proper versioning, i18n, and WordPress.org compliance.