Kleiner Crashkurs zum Web Asset Manager.
- DU findest im Core die Datei media\vendor\joomla.asset.json. (Hinweis: Es gibt weitere joomla.asset.json im Joomla-Core!)
- In dieser mehrere Einträge mit "name": "awesomplete".
- Darunter einer der ein Asset vom Typ "type": "script" definiert. Sieht derzeit so aus:
{
"name": "awesomplete",
"type": "script",
"uri": "vendor/awesomplete/awesomplete.min.js",
"attributes": {
"defer": true
},
"package": "awesomplete",
"version": "1.1.5"
},
Um dieses Asset zu überschreiben, trägst du in deinem Template in der Datei joomla.asset.json ein ähnliches Asset an (beachte das "uri"):
{
"name": "awesomplete",
"type": "script",
"uri": "awesomplete.js",
"attributes": {
"defer": true
},
"package": "awesomplete",
"version": "1.1.5"
},
und legst im js-Ordner deines Templates die Datei
an bzw. kopierst die unminifizierte js-Datei aus dem Core dorthin. Das sollte schon reichen, damit die dann verwendet wird und keine .min.js oder nerviger .min.js.gz gezogen wird. Natürlich kannst auch die im Override-Ordner anlegen, aber das wären dann die nächsten Schritte, weil du willst ja bearbeiten.
Wo nun der "js-Ordner deines Templates" ist, hängt von deinem Template ab. Vielleicht in /media/templates/site/TEMPLATENAME/js oder noch old-fashioned in /templates/TEMPLATENAME/js
Für Spielkinder: Du kannst aber auch eine "uri" definieren, die sonstwo ist.
Natürlich kannst du auch old-fashioned überschreiben, also eine teilweise unsäglich verschachtelte Ordner-Struktur in deinem Template-js-Ordner anlegen. wie das noch unter Joomla-3 nötig war.
Wenn ich im Netz richtig gelesen habe gibt es den Ordner "media/vendor" extra dafür dass diese Dateien nicht mittels Override überschrieben werden können.
Verstehe ich das richtig???
Das ist Unsinn. Nahezu alles im /media/-Ordner ist irgendwie im eigenen Template überschreibbar, aber siehe oben "unsäglich verschachtelte Ordner-Struktur" falls man den WAM nicht verwendet, was aber ab Joomla 4 ein "selber doof" wäre. Aaaaber, natürlich gibt es abseits von Core-Erweiterungen noch fremde, wo man nicht drumrum kommt old-fashioned zu murksen, weil sie weder den WAM noch eine eigene joomla.asset.json nutzen.
UUUnd es gibt auch WAM-Methoden mit denen man aus dem PHP-Code heraus ein WAM-Asset umleiten kann, ohne joomla.asset.json, aber das spare ich mir jetzt