Commit Graph

5 Commits

Author SHA1 Message Date
Jonathan Miller a5b14048f4 refactor: rename MokoOpenGraph → MokoJoomOpenGraph, add moko-platform standards compliance
- Rename project display name across 69 files (PHP, XML, INI, SQL, CSS, JS, JSON, MD)
- Add <display-name> to .mokogitea/manifest.xml per moko-platform schema
- Update pkg_mokoog.xml <name> to "Package - MokoJoomOpenGraph" (Joomla convention)
- Update all update server URLs to new repo path
- Add CONTRIBUTING.md and CODE_OF_CONDUCT.md (required by repo-health workflow)
- Add .gitattributes for line-ending normalization and export-ignore rules
- Add .gitignore

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 20:40:21 -05:00
Jonathan Miller 04d1da29d4 feat(i18n): add multilingual OG tag support (closes #11)
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 3s
- Add language column to #__mokoog_tags (default * for all languages)
- Updated unique key to include language
- SQL migration 01.02.00 for upgrades
- og:locale output from current Joomla language (en-GB to en_GB)
- Language-aware OG data loading: exact match preferred over wildcard

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 18:35:49 -05:00
Jonathan Miller 54bf5f7737 feat(seo): add SEO meta tag management (closes #8)
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 3s
- Add seo_title, meta_description, robots, canonical_url columns
- SQL migration for upgrades (01.01.00.sql) + updated install schema
- New "SEO Meta Tags" fieldset in article/menu editor with:
  - SEO title (70 char max, overrides <title>)
  - Meta description (200 char max)
  - Robots directive (noindex, nofollow, nosnippet, etc.)
  - Canonical URL override
- System plugin applies SEO tags in onBeforeCompileHead before OG tags
- SEO audit column in admin tag list (missing desc, title too long, noindex)
- Content plugin saves/loads all SEO fields alongside OG data

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 17:50:28 -05:00
Jonathan Miller 98ac42c398 fix: resolve 10 issues found in code review
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
Critical:
- Create missing pkg_mokoog.sys.ini package language file
- Create missing forms/tag.xml and forms/filter_tags.xml for component
- Remove non-existent Service/ folder from component manifest
- Remove non-existent scriptfile from system plugin manifest

Important:
- Remove unused DatabaseAwareTrait from system plugin
- Add Event parameter to onBeforeCompileHead (Joomla 5 SubscriberInterface)
- Guard onContentAfterSave with isClient('administrator') check
- Fix duplicate DEFAULT keyword in SQL CREATE TABLE
- Quote column names with quoteName() in content plugin select
- Remove duplicate language file registration in component manifest

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 17:40:40 -05:00
Jonathan Miller c9fe15c90c feat: initial MokoOpenGraph package scaffold
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
Joomla package (pkg_mokoog) with three sub-extensions:
- com_mokoog: Admin component with tag manager, MVC, database schema
- plg_system_mokoog: OG + Twitter Card meta tag injection via onBeforeCompileHead
- plg_content_mokoog: Per-article and per-menu-item OG fields in editor

Includes CI/CD workflows, issue templates, 12 feature issues, and
full Joomla 4/5 DI container architecture.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 17:10:17 -05:00