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>
This commit is contained in:
2026-04-02 13:45:34 -05:00
parent de5b4395cd
commit 96161f34ae
6 changed files with 210 additions and 0 deletions

View File

@@ -53,6 +53,7 @@
<filename>script.php</filename>
<filename>sync_custom_vars.php</filename>
<filename>templateDetails.xml</filename>
<folder>helper</folder>
<folder>html</folder>
<folder>language</folder>
<folder>templates</folder>
@@ -116,6 +117,12 @@
</field>
</fieldset>
<!-- Favicon tab -->
<fieldset name="favicon" label="TPL_MOKOCASSIOPEIA_FAVICON_FIELDSET_LABEL">
<field name="favicon_note" type="note" description="TPL_MOKOCASSIOPEIA_FAVICON_NOTE" />
<field name="favicon_source" type="media" label="TPL_MOKOCASSIOPEIA_FAVICON_SOURCE_LABEL" description="TPL_MOKOCASSIOPEIA_FAVICON_SOURCE_DESC" directory="favicons" types="images" accept="image/png" />
</fieldset>
<!-- Google tab -->
<fieldset name="google" label="TPL_MOKOCASSIOPEIA_GOOGLE_FIELDSET_LABEL">
<field name="googletagmanager" type="radio" label="TPL_MOKOCASSIOPEIA_GOOGLETAGMANAGER_LABEL" description="TPL_MOKOCASSIOPEIA_GOOGLETAGMANAGER_DESC" layout="joomla.form.field.radio.switcher" filter="boolean">