36d77f2a8a545ef3be8ed6502f917544dc3ef633
10 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
8582a3eac5 |
fix: resolve release blockers #97 (scalar JSON-LD 500) and #98 (no edit UI)
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
#97 — Fatal frontend 500 from scalar custom_schema: - MokoOGContent::validateJson() now requires a JSON object/array (rejects scalars like 42/"x"/true that previously passed and were stored) - MokoOG render path guards with is_array($decoded) so already-stored scalar payloads can no longer crash the public page #98 — Missing single-tag create/edit admin UI: - Add Controller/TagController (FormController), View/Tag/HtmlView, tmpl/tag/edit.php - Link OG title in the list to the editor; add New/Edit toolbar buttons - Declare tmpl/tag folder in the component manifest - tag.xml: switch cross-package PLG_CONTENT_* labels to COM_MOKOOG_* keys, make content_type/content_id editable+required (enables New), add language field - Add the new COM_MOKOOG_* strings to en-GB and en-US Also fixes #77 while here: seo_title/meta_description form maxlength now match the DB columns (70/200) instead of 255. |
||
|
|
d6fb2816cf |
refactor: replace Joomla-7-deprecated APIs (forward compatibility)
Removes accessors deprecated in Joomla 5 and slated for removal in 7
(extension already runs on 6; this future-proofs for 7):
- Factory::getDbo() -> Factory::getContainer()->get(DatabaseInterface::class)
across plugins, controllers, static helpers, and the install script
- Factory::getUser() -> Factory::getApplication()->getIdentity()
- Factory::getSession() -> Factory::getApplication()->getSession()
- jexit(Text::_('JINVALID_TOKEN')) -> throw new \RuntimeException(..., 403),
consistent with the access-denied checks already in those controllers
Note: SQL update-version concern is already resolved — the release bumped
to 01.05.00, which matches the 01.05.00.sql update slot.
|
||
|
|
7fb7e38762 |
refactor: rename MokoJoomOpenGraph -> MokoSuiteOpenGraph; require Joomla 6+
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Generic: Project CI / Lint & Validate (pull_request) Successful in 16s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 16s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 47s
Generic: Project CI / Tests (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Product rename (display name / docs / comments / language strings only — technical element names mokoog/com_mokoog/MokoOG namespace unchanged): - Replace "MokoJoom" -> "MokoSuite" across 55 files - Fixes the update-site license lookup in script.php, which matched the old "%MokoJoomOpenGraph%" name and would never find a "MokoSuite" site Joomla 6 compatibility: - script.php: minimumJoomla 4.0.0 -> 6.0.0, minimumPhp 8.1.0 -> 8.2.0, and actually enforce the Joomla floor in preflight() (was PHP-only) - Add PKG_MOKOOG_JOOMLA_VERSION_ERROR language strings (en-GB, en-US) - openapi.yaml + README state Joomla 6.0+ requirement - Audit confirmed the codebase already uses only Joomla-6-supported APIs |
||
|
|
b77054b769 |
fix: harden input handling and output safety (#79)
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 11s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
- canonical_url: sanitize via sanitizeUrl() (scheme allowlist) instead of
bare trim() — closes stored-XSS via addHeadLink() on the public frontend
- AI endpoint: replace die('Invalid Token') with a clean event result,
and strip_tags + truncate article_title to 200 chars before use
- SitemapBuilder: whitelist changefreq against the sitemap spec enum,
intval() noindex IDs, strict in_array comparison
- MokoOG: log a WARNING when sitemap.xml write fails instead of ignoring it
|
||
|
|
49d644566a |
feat: add custom schema, AI generation, XML sitemap, platform images
- Custom JSON-LD schema builder: per-article textarea for arbitrary structured data with JSON validation. Closes #70 - AI-powered meta generation: Generate with AI buttons for OG title and description, supports Claude and OpenAI APIs. Closes #71 - XML sitemap: auto-generates sitemap.xml on article save, respects noindex directives. Closes #72 - Per-platform image resizing: Twitter 1200x600, Pinterest 1000x1500, WhatsApp 400x400 alongside default Facebook 1200x630. Closes #74 - DB migration 01.05.00: adds custom_schema column |
||
|
|
872074cd5b |
feat: add FAQ, HowTo, Event, and Recipe JSON-LD schema types
- FAQ: auto-detects h3/h4 + paragraph patterns, outputs FAQPage (#62) - HowTo: auto-detects ordered lists, outputs HowTo with steps (#63) - Event: per-article fields (dates, venue, tickets), event_data JSON column, outputs Event schema (#64) - Recipe: per-article fields (times, ingredients, nutrition), recipe_data JSON column, outputs Recipe schema (#66) - DB migration 01.04.00: adds event_data and recipe_data columns Closes #62, closes #63, closes #64, closes #66 |
||
|
|
b4d5b73d15 |
fix: code quality improvements (#76, #77, #78, #79)
- Add exception logging to BatchController batch skip (#76) - Align form maxlength with DB schema limits (#77) - applySeoTags() already uses public API — no change needed (#78) - Add strip_tags() input sanitization on OG text fields (#79) |
||
|
|
fcfa6838e5 |
fix: address PR #82 review findings
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 14s
Universal: Auto Version Bump / Version Bump (push) Successful in 16s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 54s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
- Only emit og:video:secure_url for HTTPS URLs (review #1) - Only emit og:video:width/height for direct files, not embeds (review #2) - Add server-side http/https scheme validation on og_video save (review #3) - Consolidate duplicate com_mokoshop product blocks into one (review #4) - Fix stale com_virtuemart reference in SQL comment (review #5) - Use COM_MOKOOG_* language keys in tag.xml instead of plugin keys (review #6) |
||
|
|
5b29690d34 |
feat: add og:video support and Pinterest rich pin tags
- Add og:video meta tags with per-article video URL field and auto MIME type detection for YouTube/Vimeo/direct files. Includes DB migration for og_video column. (closes #59) - Add Pinterest rich pin tags: article:tag from Joomla content tags on article pages, product:availability from MokoSuiteShop stock quantity on product pages. (closes #60) |
||
|
|
05b2a44209 |
refactor: rename src/ to source/ and update all CI references
- Rename project source directory from src/ to source/ - Update CI workflows (ci-joomla, pr-check, repo-health) to check source/ first, falling back to src/ and htdocs/ for compat - Update .gitignore vendor exception path - manifest.xml entry-point already updated Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |