Projekt

Allgemein

Profil

Aktionen

GX-Bug #69650

geschlossen

Classes that exist more than once can't be specifically overloaded | Klassen, die doppelt im Shop vorkommen, lassen sich nicht mehr spezifisch überladen

Von Moritz Bunjes vor fast 3 Jahren hinzugefügt. Vor mehr als 2 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Dringend
Zugewiesen an:
Mirko Janssen
Kategorie:
Core
Zielversion:
% erledigt:

0%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
4.5.2.2
Release Notes Langtext:

Das Überladen von Klassen, die doppelt existieren, funktioniert wieder zuverlässig


Beschreibung

The classes language, messageStack, order, shoppingCart and splitPageResults exist in different variants twice in the store (for Gambio Admin and Gambio Shop). Overloads for the variant in the Gambio Admin then have an "Admin-" prefix in the folder name of the overload, e.g. GXModules/GambioTest/Test/Admin/Overloads/Admin-shoppingCart/TestBackend.inc.php. Since at least GX 4.5.1 there is the problem that in the Gambio Admin the overloads that are only for the Gambio Shop are loaded, so in the Gambio Admin for the shoppingCart class a GXModules/GambioTest/Test/Shop/Overloads/shoppingCart/TestFrontend.inc.php overload is loaded, although this should not be the case here.

The attached test script demonstrates the error.

Expected result:
overload-test.php output: TestFrontend called
overload-test.php?admin output: TestBackend called

Actual result:
overload-test.php output: TestFrontend called
overload-test.php?admin output: TestFrontend called

--

Die Klassen language, messageStack, order, shoppingCart und splitPageResults existieren in unterschiedlichen Varianten zwei Mal im Shop (für Gambio Admin und Gambio Shop). Overloads für die Variante im Gambio Admin haben dann im Ordnernamen des Overloads einen "Admin-"-Präfix, also z. B. GXModules/GambioTest/Test/Admin/Overloads/Admin-shoppingCart/TestBackend.inc.php. Seit mindestens GX 4.5.1 besteht das Problem, dass der Shop aber auch im Gambio Admin die Overloads lädt, die nur für den Gambio Shop sind, also wird im Gambio Admin für die shoppingCart-Klasse ein GXModules/GambioTest/Test/Shop/Overloads/shoppingCart/TestFrontend.inc.php Overload geladen, obwohl das hier nicht der Fall sein dürfte.

Das angehängte Testscript demonstriert den Fehler.

Erwartetes Ergebnis:
overload-test.php output: TestFrontend called
overload-test.php?admin output: TestBackend called

Tatsächliches Ergebnis:
overload-test.php output: TestFrontend called
overload-test.php?admin output: TestFrontend called


Dateien

overload-test.zip (3,36 KB) overload-test.zip Moritz Bunjes, 08.03.2022 17:46

Aktionen

Auch abrufbar als: Atom PDF