Überschreiben von FrontendController und AdminListController nicht möglich?!?

Ich versuche getUserSelectedSorting im FrontendController und _changeselect im AdminListController zu überschrieben, aber es geht nicht. Die neuen Funktionen werden nicht aufgerufen. In der Liste der installierten Shop-Module werden sie aufgeführt.

Ich habe andere Funktionen in zum Beispiel Basket oder ArticleExtend überschreiben können.

Fehlermeldung habe ich keine bekommen, auch nichts im oxideshop Log…

Was habe ich übersehen?

Danke!

Nein. Geht nicht. Irgendwo hier findest auch eine List mit nicht überschreibbaren Klassen. Musst Du mit Deinem Modul umgehen, eigener Controller etc.

du kannst keine Klassen in der Mitte der Vererbungskette erweitern, nur die Klassen am Ende.
d.h. du müsstest die Klassen erweitern, wo diese Funktion im Endeffekt aufgerufen wird.

Statt der Klasse “FrontendController” habe ich folgende Klassen für die Listen-Sortierung mit meinem Controller erweitert :
‘extend’ => [
\OxidEsales\Eshop\Application\Controller\ArticleListController::class => …::class,
\OxidEsales\Eshop\Application\Controller\ManufacturerListController::class => …::class,
\OxidEsales\Eshop\Application\Controller\SearchController::class => …::class,
],

Vielen Dank für die schnellen und hilfreichen Antworten!

Ich habe nur einen alten Foreneintrag mit einer sehr alten Liste gefunden:

Was mich noch etwas wundert, ist das im Sorucecode Kommentar ausdrücklich davon die Rede ist, die Funktion _changeselect zu überschreiben.
/**
* Override this for individual search in admin.
*
* @param string $query SQL select to change
*
* @return string
*/
protected function _changeselect($query)
{

Oder ist das anders gemeint?

Ach so, ich überschreibe natürlich in der Child Klasse. Prima, läuft :slight_smile:

1 Like