Joomla 4 mit WARP7

Mit der Veröffentlichung von Joomla 4 wurde leider auch der Support der WARP7-Templates seitens Yootheme eingestellt. D. h., WARP7-Templates sind nicht kompatibel zu Joomla 4, was zu einigen Fehlern im Front- und Backend führt. Das WARP7-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 WARP7-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 WARP7-Template auftreten können. Die Liste ist beileibe nicht vollständig, wird aber sukzessive erweitert.

Achtung

Nach Möglichkeit das WARP7-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 WARP7-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 WARP7-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 WARP7-Customizer kann nicht gespeichert werden:

Aufgrund eines veralteten Aufrufs im WARP7-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 WARP7-Templates), dann benutzt das WARP7-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.