GX-Bug #69650
geschlossenClasses that exist more than once can't be specifically overloaded | Klassen, die doppelt im Shop vorkommen, lassen sich nicht mehr spezifisch überladen
0%
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