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 #1

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

Aktionen #2

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

  • Status wurde von In Bearbeitung zu Testing geändert
  • Zugewiesen an Moritz Bunjes wurde gelöscht
Aktionen #4

Von Daniel Wu vor fast 3 Jahren aktualisiert

  • Thema wurde von Klassen, die doppelt im Shop vorkommen, lassen sich nicht mehr spezifisch überladen zu Classes that exist more than once can't be specifically overloaded | Klassen, die doppelt im Shop vorkommen, lassen sich nicht mehr spezifisch überladen geändert
Aktionen #5

Von Moritz Bunjes vor fast 3 Jahren aktualisiert

Aktionen #6

Von Marvin Muxfeld vor mehr als 2 Jahren aktualisiert

  • Zugewiesen an wurde auf Marvin Muxfeld gesetzt
Aktionen #7

Von Marvin Muxfeld vor mehr als 2 Jahren aktualisiert

  • Zugewiesen an Marvin Muxfeld wurde gelöscht
Aktionen #8

Von Mirko Janssen vor mehr als 2 Jahren aktualisiert

  • Zugewiesen an wurde auf Mirko Janssen gesetzt
Aktionen #9

Von Mirko Janssen vor mehr als 2 Jahren aktualisiert

  • Status wurde von Testing zu Erledigt geändert
Aktionen #10

Von Daniel Wu vor mehr als 2 Jahren aktualisiert

  • Tags 4.5.3_beta 1 wurde gelöscht
Aktionen

Auch abrufbar als: Atom PDF