diff --git a/CHANGELOG.md b/CHANGELOG.md index 4773aff3..86b4b026 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,28 +18,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **M-4 ServiceIconHelper**: Escaped `$extraClass` parameter in `renderIcon()` with `htmlspecialchars()` to prevent XSS - **M-5 Content plugin**: Fixed double-escaped HTML in cross-post history panel — uses `setFieldAttribute()` to inject history HTML into the note field description after XML load, avoiding XML attribute encoding -### Added -- **ServiceIconHelper**: Centralised icon mapping for all 34 service types — replaces per-template icon arrays with `ServiceIconHelper::getIcon()` / `::renderIcon()` -- **Service Stats drill-down**: New `servicestats` view with per-service analytics — post counts, success rate, daily trend chart, recent posts table, and top articles list -- **Dashboard service links**: Service breakdown table rows now link to the per-service stats view with service type icons -- **Posts list icons**: Service type column in the posts list now shows the service icon -- **Category routing rules**: New `#__mokojoomcross_category_rules` table to whitelist services per Joomla category — if rules exist for a category, only those services receive posts; no rules = all services (backward compatible) -- **CrossPostDispatcher**: Category rule filtering integrated before per-article service filter in the dispatch loop -- **Template editor**: Live character counter below template body textarea with platform-aware limits (green/yellow/red badges) -- **Template editor**: Added `{tags}`, `{hashtags}`, and `{field:xxx}` rows to the placeholder reference table -- **Content plugin**: Cross-post history panel in article editor showing last 10 posts with status badges, service names, timestamps, and error messages -- **Config**: New "Category Rules" fieldset with explanatory note about the feature - -### Fixed - **Content plugin**: Fixed `onContentBeforeDisplay` signature for Joomla 5/6 — now accepts `BeforeDisplayEvent` object instead of individual parameters -### Added -- **CrossPostDispatcher**: New static helper (`com_mokojoomcross/Helper/CrossPostDispatcher`) centralising dispatch logic for reuse by all source plugins -- **Content plugin**: Added `onContentAfterSave` and `onContentChangeState` handlers with Joomla 5/6 event compatibility, dispatching via `CrossPostDispatcher` -- **plg_system_mokojoomcross_events**: New source plugin for MokoJoomCalendar — cross-posts calendar events when published -- **plg_system_mokojoomcross_gallery**: New source plugin for MokoJoomGallery — cross-posts galleries and images when published - -### Fixed - **QueueProcessor**: Replaced read-then-write DB lock with MySQL advisory locks (`GET_LOCK`/`RELEASE_LOCK`) to eliminate race condition - **Twitter/X**: Replaced Bearer token auth with OAuth 1.0a (HMAC-SHA1) — Bearer tokens are app-only and cannot create tweets - **service.xml**: Fixed missing closing `` tag on webhook method field @@ -55,7 +35,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **Nostr**: Stub with clear "not yet implemented" message (requires WebSocket) - **RSS Feed**: Local service — no external API, always succeeds + ### Added +- **ServiceIconHelper**: Centralised icon mapping for all 34 service types — replaces per-template icon arrays with `ServiceIconHelper::getIcon()` / `::renderIcon()` +- **Service Stats drill-down**: New `servicestats` view with per-service analytics — post counts, success rate, daily trend chart, recent posts table, and top articles list +- **Dashboard service links**: Service breakdown table rows now link to the per-service stats view with service type icons +- **Posts list icons**: Service type column in the posts list now shows the service icon +- **Category routing rules**: New `#__mokojoomcross_category_rules` table to whitelist services per Joomla category — if rules exist for a category, only those services receive posts; no rules = all services (backward compatible) +- **CrossPostDispatcher**: Category rule filtering integrated before per-article service filter in the dispatch loop +- **Template editor**: Live character counter below template body textarea with platform-aware limits (green/yellow/red badges) +- **Template editor**: Added `{tags}`, `{hashtags}`, and `{field:xxx}` rows to the placeholder reference table +- **Content plugin**: Cross-post history panel in article editor showing last 10 posts with status badges, service names, timestamps, and error messages +- **Config**: New "Category Rules" fieldset with explanatory note about the feature + +- **CrossPostDispatcher**: New static helper (`com_mokojoomcross/Helper/CrossPostDispatcher`) centralising dispatch logic for reuse by all source plugins +- **Content plugin**: Added `onContentAfterSave` and `onContentChangeState` handlers with Joomla 5/6 event compatibility, dispatching via `CrossPostDispatcher` +- **plg_system_mokojoomcross_events**: New source plugin for MokoJoomCalendar — cross-posts calendar events when published +- **plg_system_mokojoomcross_gallery**: New source plugin for MokoJoomGallery — cross-posts galleries and images when published + - **Credential fields**: Added fields for 19 previously missing services (Pinterest, Tumblr, TikTok, Nostr, ActivityPub, Brevo, ConvertKit, Constant Contact, Hashnode, Blogger, Google Business, RSS Feed config) - **Twitter**: Access Token and Access Token Secret fields for OAuth 1.0a - **LinkedIn**: Refresh token field for automatic token renewal @@ -85,6 +82,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **WordPress canonical URL**: WordPress cross-posts now include an "Originally published at" source link appended to content with the Joomla article URL - **REST API dispatch endpoint**: `POST /api/v1/mokojoomcross/dispatch` — trigger cross-posts for an article via API with optional service filtering, duplicate guard, and template rendering + ### Added (original) #### Core Engine @@ -197,7 +195,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - 9 wiki documentation pages - Windows Terminal profile in Joomla dropdown -## [01.00.00] - 2026-05-28 + +## [01.00] - 2026-05-28 ### Added - Initial release