Commit Graph

12 Commits

Author SHA1 Message Date
Jonathan Miller
9e257d16ed Bridge: rewrite as rename-in-place + DB update (no external downloads)
Some checks failed
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 4s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 4s
- Rename templates/mokocassiopeia → mokoonyx
- Rename media/templates/site/mokocassiopeia → mokoonyx
- Update #__extensions element and name
- Update #__template_styles template, title, and params
- Update #__menu link references
- Update #__update_sites to point to MokoOnyx updates.xml
- Clear #__updates cached entries for old extension
- No HTTP requests, no ZIP downloads, no Installer conflicts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 12:31:50 -05:00
Jonathan Miller
4d20eee830 Bridge: fetch stable URL from MokoOnyx updates.xml, fix double-exec
Some checks failed
Repo Health / Access control (push) Successful in 1s
Auto-Update SHA Hash / Update SHA-256 Hash in updates.xml (release) Failing after 5s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
- Remove hardcoded RELEASE_URL, discover from updates.xml stable channel
- Add discoverStableUrl() to parse MokoOnyx updates.xml at runtime
- Extract httpGet() helper for reuse across download + XML fetch
- Remove bridge call from update() — postflight() handles it
- Always targets stable channel for production-safe installs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-21 12:02:18 -05:00
Jonathan Miller
4e6f14c3ba Bridge: install from release, copy user files + params after. Bump 03.10.12
Some checks failed
Repo Health / Access control (push) Successful in 2s
Auto-Update SHA Hash / Update SHA-256 Hash in updates.xml (release) Failing after 6s
Repo Health / Release configuration (push) Failing after 4s
Repo Health / Scripts governance (push) Successful in 5s
Repo Health / Repository health (push) Failing after 5s
1. Download & install MokoOnyx from Gitea release
2. Copy user files (custom themes, user.css/js) to MokoOnyx
3. Migrate template styles with params
Fallback: if download fails, copy user files only (MokoOnyx must be
installed manually)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:51:19 -05:00
Jonathan Miller
9ce333ebe1 Bridge: download and install MokoOnyx from Gitea release
Some checks failed
Repo Health / Access control (push) Successful in 1s
Auto-Update SHA Hash / Update SHA-256 Hash in updates.xml (release) Failing after 5s
Repo Health / Release configuration (push) Failing after 4s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 4s
Instead of copying/renaming files, the bridge now:
1. Downloads mokoonyx ZIP from Gitea releases
2. Installs via Joomla's Installer (proper extension registration)
3. Migrates template styles and default assignment
4. Falls back gracefully with manual install link if download fails

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:40:18 -05:00
Jonathan Miller
b92f6a41ff Favicon: tri-backend support — GD, Imagick, or pure PHP fallback
Some checks failed
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 4s
Repo Health / Scripts governance (push) Successful in 5s
Repo Health / Repository health (push) Failing after 4s
Pure PHP backend decodes PNG (IHDR+IDAT+zlib), resizes with bilinear
interpolation, and encodes back to PNG — zero extension dependencies.
Supports RGB, RGBA, and indexed PNG color types.

Priority: GD → Imagick → pure PHP. Falls back gracefully.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 13:52:06 -05:00
Jonathan Miller
8c4b26cdef Remove user.css/user.js from minify list (site-specific, not shipped)
Some checks failed
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 4s
Repo Health / Repository health (push) Failing after 3s
2026-04-18 17:36:59 -05:00
Jonathan Miller
8c5473b140 Fix sync script :root parsing, add offline/editor/user to minify. Bump 03.10.06
Some checks failed
Repo Health / Access control (push) Successful in 1s
Auto-Update SHA Hash / Update SHA-256 Hash in updates.xml (release) Failing after 4s
Repo Health / Release configuration (push) Failing after 4s
Repo Health / Scripts governance (push) Successful in 4s
Repo Health / Repository health (push) Failing after 4s
- Sync: compare against standard theme (not deleted custom starters)
- Sync: handle :root{ on same line (dark.standard.css format)
- Minify: added offline.css, editor.css, a11y-high-contrast.css,
  user.css, user.js to minification list

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 17:34:59 -05:00
Jonathan Miller
2ad624a48c Fix favicon: support JPG/WebP/GIF, add logging, fix path resolution
Some checks failed
Repo Health / Access control (push) Successful in 1s
Auto-Update SHA Hash / Update SHA-256 Hash in updates.xml (release) Failing after 5s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Repository health (push) Failing after 3s
- Support all common image formats (PNG, JPEG, GIF, WebP, BMP)
  not just PNG — uses getimagesize() to detect type
- Add Log::add() warnings when generation fails (GD missing,
  file not found, unsupported format)
- Fix source path: try both direct path and images/ prefix
  to handle Joomla media field variations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 12:24:42 -05:00
Jonathan Miller
e4b38df975 Fix SHA-256 checksum: remove sha256: prefix (Joomla expects raw hex)
Some checks failed
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 4s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 4s
Joomla's update system compares hash_file() output (raw hex) against
the <sha256> element value. The sha256: prefix caused mismatch.

Also adds bridge migration helper for future MokoOnyx rename.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 11:33:16 -05:00
Jonathan Miller
5e5d6a4e89 Offline page redesign, remove brand showcase tab, force a11y/theme to bottom-right
Some checks failed
Repo Health / Access control (push) Failing after 1s
Repo Health / Release configuration (push) Has been skipped
Repo Health / Scripts governance (push) Has been skipped
Repo Health / Repository health (push) Has been skipped
- Offline page: full-viewport Joomla offline_image background, centered glass card
  overlay with logo glow, message, offline position, login accordion, copyright
- Favicon: added to offline page, HTML-escaped paths in helper
- Removed brand showcase tab, added footer CSS vars to CSS Variables tab
- Forced a11y toolbar and theme FAB to bottom-right (removed position selectors)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 18:29:43 -05:00
a8e1ddbb05 Auto-minify CSS/JS: dev mode deletes .min, prod mode regenerates
- helper/minify.php: PHP-based CSS/JS minifier with timestamp caching
- Dev mode ON: deletes all .min.css and .min.js files
- Dev mode OFF: regenerates .min files from source if stale or missing
- Covers template.css, light/dark standard/custom theme CSS, template.js
- No external build tools needed — template is self-contained

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 22:05:09 -05:00
96161f34ae Add favicon configuration with auto-generation from PNG upload
- New "Favicon" tab in template config with media picker for PNG upload
- helper/favicon.php generates all standard sizes from source PNG using GD:
  - favicon.ico (16x16 + 32x32 embedded)
  - apple-touch-icon.png (180x180)
  - favicon-32x32.png, favicon-16x16.png
  - android-chrome-192x192.png, android-chrome-512x512.png
  - site.webmanifest for PWA icon discovery
- Generated files cached in images/favicons/ with timestamp checking
- Link tags auto-injected in <head> when favicon source is configured
- Language strings added for en-GB and en-US

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 13:45:34 -05:00