5.0 KiB
5.0 KiB
Changelog
All notable changes to MokoSuiteOpenGraph will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Security
- Fix JSON-LD XSS vulnerability via
</script>injection in content data (#34) - Add ACL permission checks to Batch and ImportExport controllers (#37)
- Add CSV import file type, MIME type, size, and content_type validation (#35)
- Fix multilingual data corruption in content plugin load/save (#41)
Added
- Fediverse/Mastodon
fediverse:creatormeta tag — first extension on any CMS to support this (#57) - Live character count indicators on OG title, OG description, SEO title, meta description fields with color-coded warnings (#58)
- LinkedIn social preview card in article/menu editor alongside Facebook and Twitter/X previews (#61)
og:videometa tag support with per-article video URL field, auto-detect MIME type for YouTube/Vimeo/direct files (#59)- Pinterest rich pin tags:
article:tagfrom Joomla content tags,product:availabilityfrom MokoSuiteShop stock (#60) - FAQ JSON-LD schema with auto-detection from article h3/h4 headings (#62)
- HowTo JSON-LD schema with auto-detection from ordered lists (#63)
- Event JSON-LD schema with per-article event fields (dates, venue, tickets) (#64)
- LocalBusiness JSON-LD schema with global plugin configuration (#65)
- Recipe JSON-LD schema with per-article fields (times, ingredients, nutrition) (#66)
- VideoObject JSON-LD schema for articles with video URLs (#67)
- SEO content scoring panel with 7 checks and pass/fail indicators (#68)
- Discord, Mastodon, and Slack social preview cards in editor (#69)
- Custom JSON-LD schema builder — per-article textarea for any schema.org type (#70)
- AI-powered meta tag generation with Claude and OpenAI API support (#71)
- XML sitemap generation on article save, respects noindex directives (#72)
- OG coverage dashboard in tag manager with coverage percentage (#73)
- Per-platform image resizing: Twitter 1200x600, Pinterest 1000x1500, WhatsApp 400x400 (#74)
- PHPUnit test suite with 16 unit tests for JsonLdBuilder (#75)
- OpenAPI 3.0 specification for REST API (#80)
- Site-wide default OG title and description plugin parameters
- Discord embed color via
theme-colormeta tag (color picker in plugin config) - LinkedIn article tags:
article:published_time,article:modified_time,article:author og:image:widthandog:image:heightfor faster social preview renderingonMokoOGAfterRenderevent for third-party plugin extensibility- Joomla Web Services API for OG tags — full CRUD at
/api/v1/mokoog/tags(#27) - Live social preview in article/menu editors (Facebook and Twitter/X card mockups) (#3)
- CSV import/export for bulk OG tag management (#12)
- OG image text overlay generator (#7)
- Multilingual OG tag support with per-language records (#11)
- JSON-LD structured data: Article, Product, WebPage, BreadcrumbList schemas (#6)
- Social platform debugger quick links (Facebook, LinkedIn, Google) (#9)
- MokoSuiteShop product OG tag support with pricing meta and JSON-LD Product schema (#53)
- WhatsApp and Telegram link preview optimization (#10)
- Category-level OG tag support (#4)
- Batch OG tag generation for existing articles (#1)
- Auto-resize OG images to 1200x630px with center crop (#2)
- SEO meta tag management: title, description, robots, canonical URL (#8)
- Per-article and per-menu-item OG fields in the editor
- Auto-generation of OG tags from article content, title, and images
- Default fallback image configuration
- Admin tag manager component with filtering, search, and pagination
- Facebook App ID and Telegram channel support
- Database table
#__mokoog_tagswith multilingual unique key
Fixed
- Add exception logging to BatchController batch skip (#76)
- Align form maxlength attributes with DB schema limits (#77)
- Add
strip_tags()input sanitization on OG text fields (#79) - Only emit
og:video:secure_urlfor HTTPS URLs - Only emit
og:video:width/heightfor direct files, not embeds - Consolidate duplicate MokoSuiteShop product blocks
- Fix stale
com_virtuemartreference in SQL comment - Use component language keys for og_video field in tag.xml
Changed
- Consolidated article DB queries into single cached lookup — 5 queries reduced to 1 (#38)
- Dynamic
og:image:width/og:image:heightfrom actual image dimensions instead of hardcoded (#39) - Replace GD
@error suppression withLog::add()warnings (#49) - TagTable::check() validates og_type, field lengths, canonical_url, robots directives (#43)
- CSV import/export now includes language column for multilingual support (#52)
- Batch process limit capped at 200 per request (#42)
- Canonical URL replacement uses public
getHeadData()/setHeadData()API (#39) - Language-aware queries on
loadOgDataByType()andloadOgDataByMenu()(#47)
Removed
- Removed dead ContentType adapters (K2, VirtueMart, HikaShop) — not targeting these platforms (#36)
- Removed
<updateservers>from package manifest — managed externally (#44) - Removed deploy-manual.yml workflow