Joomla 4 mit WARP 7
Mit der Veröffentlichung von Joomla 4 wurde leider auch der Support der WARP 7-Templates seitens Yootheme eingestellt. D. h., WARP 7-Templates sind nicht kompatibel zu Joomla 4, was zu einigen Fehlern im Front- und Backend führt. Das WARP 7-Framework ist noch auf vielen Websites im Einsatz und funktioniert mit Joomla 3 wunderbar. Supportende für Joomla 3 ist für den 17.08.23 angepeilt (https://developer.joomla.org/roadmap.html), man kann also noch ruhigen Gewissens das Update hinauszögern, sofern man nicht auf die neuen Funktionen von Joomla 4 angewiesen ist.
Für alle, die schon früher in den Genuss von Joomla 4 kommen möchten und ein WARP 7-Template einsetzen, habe ich nachfolgend ein paar gängige Fehler und deren Lösungen notiert, die nach dem Update auf Joomla 4 in Verbindung mit einem WARP 7-Template auftreten können. Die Liste ist beileibe nicht vollständig, wird aber sukzessive erweitert.
Achtung
Nach Möglichkeit das WARP 7-Template vorher auf die aktuellste Version updaten, da ansonsten andere/zusätzliche Fehlermeldungen ausgegeben werden können. Die folgende Liste basiert auf dem aktuellsten Master-Template mit WARP 7-Framework (Version 7.3.37)
Fehler 1
Fehlermeldung im Frontend:
Call to undefined method Joomla\CMS\Application\SiteApplication::isSite()
Lösung:
In folgender Datei müssen 2 Stellen angepaßt werden:
templates\{your_template]\warp\systems\joomla\src\Warp\Joomla\Helper\SystemHelper.php
In Zeile 122 wird
isSite()
zu
isClient('site')
und in Zeile 124
isAdmin()
zu
isClient('administrator')
Fehler 2
Module werden nicht angezeigt:
Bestimmte Modul-Positionen werden im Frontend nicht angezeigt, weil im Yootheme-Template eine ungültige Syntax verwendet wird.
Lösung:
Im Template müssen in der Datei theme.php
alle Funktionen, um Module zu zählen, umgeschrieben werden, die als Parameter Positionen angeben, die mit einem +
verknüpft sind. Z. B. muss die Anweisung
$this['widgets']->count('logo + headerbar')
in
$this['widgets']->count('logo') || $this['widgets']->count('headerbar')
aufgeteilt werden. Dies muss überall im Template angepaßt werden, wo +
als Verknüfung vorkommt.
Fehler 3
Icon-Font wird nicht geladen:
Das WARP 7-Framework referenziert den Icon-Font "IcoMoon" im Ordner media/jui/fonts/
, der aber in Joomla 4 nicht mehr vorhanden ist.
Lösung:
Ordner jui
von einer Joomla 3 Installation ins media
-Verzeichnis kopieren.
Bei einem anderen Template (Frequency) ist mir aufgefallen, dass das WARP-Framework von Joomla bereitgestellte LESS-Dateien aus dem jui
-Verzeichnis nutzt. Daher ist es ratsam, zunächst den kompletten jui
-Ordner zu kopieren. Ausmisten kann man später immer noch.
Fehler 4
Im WARP 7-Customizer kann nicht gespeichert werden:
Aufgrund eines veralteten Aufrufs im WARP 7-Framework wird ein Parameter eines HTTP-Requests nicht verarbeitet, der Customizer bricht dann ohne zu speichern ab.
Lösung:
In der Datei
templates\yoo_master2\warp\systems\joomla\src\Warp\Joomla\Helper\SystemHelper.php
muss Zeile 269 von
$upload = \JRequest::getVar('files', false, 'FILES');
zu
$upload = $this->application->input->files->get('files', false);
geändert werden.
Fehler 5
Wenn folgende Fehlermeldung erscheint im Fronted (erscheint evtl. nicht bei allen WARP 7-Templates), dann benutzt das WARP 7-Template in einem Override einen veralteten Aufruf einer Pagination-Funktion:
Call to undefined method Joomla\CMS\Pagination\Pagination::get()
Lösung:
Im Template Nach
$this->pagination->get('pages.total')
suchen und ersetzen durch
$this->pagination->pagesTotal
In der Regel ist diese Anweisung ist einer Override-Datei im layouts
-Verzeichnis zu finden.