=== EfficiencyNext Data Connector === Contributors: efficiencynext Tags: external data, rest, api, JSON, template Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 8.0 Stable tag: 1.0.1 License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html Display external API data in WordPress posts and pages using placeholders, shortcodes, and templates. == Description == EfficiencyNext Data Connector is a modern, lightweight WordPress plugin that lets you fetch data from external APIs and display it in your posts and pages using simple placeholders, shortcodes, and Mustache-style templates. **Key Features:** * **Zero Dependencies** - No external libraries required, pure PHP 8.0+ code * **PHP 8.3 Compatible** - Built from the ground up for modern PHP * **Shortcode Support** - Use `[effcncynxtdc source="Name"]` in your content * **Mustache-style Templates** - Familiar `{{variable}}` syntax * **Loop Support** - Iterate over arrays with `{{#items}}...{{/items}}` * **Secure** - All output is HTML-escaped, templates are sanitized with wp_kses * **Smart Admin Interface** - Add, edit, and delete data sources with a modern UI * **API Preview** - Test your API endpoints and discover available fields right in the editor * **Template Helpers** - Insert common template patterns with one click * **Translation Ready** - Fully internationalized with text domain and language file support **Template Syntax:** * `{{variable}}` - Display a simple value * `{{#section}}...{{/section}}` - Loop over arrays or conditional sections * `{{^section}}...{{/section}}` - Show content when a value is empty or missing * `{{.}}` - Current item in a simple loop * `{{object.property}}` - Access nested properties with dot notation **Shortcode Usage:** * `[effcncynxtdc source="SourceName"]` - Render a configured data source * `[effcncynxtdc source="SourceName" url="https://..."]` - Override the API URL * `[effcncynxtdc source="SourceName" template="{{name}}"]` - Override the template * `[effcncynxtdc_inline source="SourceName"]` - For inline usage == Installation == 1. Upload the `efficiencynext-data-connector` folder to `/wp-content/plugins/` 2. Activate the plugin through the 'Plugins' menu in WordPress 3. Go to **Settings → Data Connector** in the admin menu to configure your data sources == Configuration == 1. Click **Add New Source** to create a data source 2. Enter a **Source Name** (used with shortcodes and for identification) 3. A **Placeholder** is auto-generated (e.g., `{{Positions}}`) - this goes in your page/post content 4. Enter your **API URL** that returns JSON data 5. Click **Preview API** to see the JSON response and available template fields 6. Create your **Template** using Mustache-style syntax - click the available fields to insert them 7. Toggle **Inline** if the placeholder appears within a paragraph == Frequently Asked Questions == = What PHP version is required? = PHP 8.0 or higher is required. The plugin is fully tested with PHP 8.3. = How do I use shortcodes? = Add `[effcncynxtdc source="YourSourceName"]` in your post or page content. The source name must match a configured data source. You can optionally override the URL or template via shortcode attributes. = Can I use dynamic URLs? = Yes! You can use query parameters in your API URLs. For example: `https://api.example.com/data?id={{id}}` The `{{id}}` will be replaced with the `id` query parameter from the current page URL. = How do I loop over an array? = Use section tags: `{{#items}}
  • {{name}}
  • {{/items}}` = Is the output secure? = Yes. All variable output is automatically HTML-escaped to prevent XSS attacks. Templates are sanitized using WordPress's wp_kses function, which strips dangerous HTML tags like script, iframe, and form elements while preserving safe formatting tags. = Can I translate the plugin? = Yes! EfficiencyNext Data Connector is fully internationalized. Place your translation files in the `wp-content/plugins/efficiencynext-data-connector/languages/` directory using the text domain `efficiencynext-data-connector` (e.g., `efficiencynext-data-connector-fr_FR.po`). All admin interface strings, including JavaScript-rendered text, are translatable. = What HTML tags are allowed in templates? = Templates support common structural and formatting tags including: table elements, divs, spans, paragraphs, headings, lists, links, images, strong, em, code, pre, and semantic HTML5 elements. Script, iframe, form, and other potentially dangerous tags are stripped. == Changelog == = 1.0.0 = * Initial release for WordPress.org * Modern admin interface with add/edit/delete source management * AJAX-powered settings with modal editor * API preview with automatic field discovery * Template helper toolbar with common patterns * WordPress shortcode support: [effcncynxtdc] and [effcncynxtdc_inline] * Input sanitization: wp_kses for templates, esc_url_raw for URLs, placeholder validation * Mustache-style template engine with loops, conditionals, inverted sections, and dot notation * Zero external dependencies, PHP 8.0+ compatible * Full internationalization (i18n) with load_plugin_textdomain and translatable JavaScript strings * Automatic migration from pre-release storage format = 1.0.1 = * Added support for Basic Authentication and API Key Authentication