CheckoutControl überladen?

Thema wurde von iAge, 31. Mai 2017 erstellt.

  1. iAge

    iAge Mitglied

    Registriert seit:
    9. Januar 2012
    Beiträge:
    9
    Danke erhalten:
    0
    Danke vergeben:
    3
    Hallo,

    Ich will die Klasse CheckoutControl überladen.

    Ich habe die PHP-Datei nach overloads/CheckoutControl/ kopiert und entsprechend umbenannt auf:
    test1_CheckoutControl.inc.php

    Darin die Klassenzeile geändert auf:
    class test1_CheckoutControl extends test1_CheckoutControl_parent

    Ich muss in der Klasse die Funktion check_stock() ändern.

    Es scheint, dass die davon abhängigen Klassen, wie CheckoutShippingContentControl nun nicht auf die überladene CheckoutControl zugreifen, sondern auf die ursprüngliche.

    Ich musste nun auch diese Klassen überladen und einfach die Klassenzeile ändern auf:
    class test1_CheckoutShippingContentControl extends test1_CheckoutControl

    So scheint es zu funktionieren, aber nun muss ich offenbar alle Checkout*-Klassen so überladen, nur damit sie auf die geänderte CheckoutControl zugreifen.

    Gibt es da evtl. einen eleganteren Weg, wie ich nur CheckoutControl überladen kann, ohne die davon abhängigen?

    Ich bin mit GX v3.3.3.0 unterwegs.

    Liebe Grüsse

    -Stephan
     
  2. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Hallo Stephan,

    du hast Recht, dass Overloads nicht für extendende Klassen greifen. Aktuell geht es nicht eleganter, als du beschrieben hast.