Hallo zusammen, wie überlade ich denn eine Klasse, die bereits durch Gambio überladen wurde? Im Beispiel von "CheckoutConfirmationThemeContentView.inc.php". Wenn ich die normal überlade, dann fliegt die Überladung durch Gambio (Gambio Hub) raus.
Kommt darauf an was du da überladen willst, (Gambio Hub) ist ein heißes Eisen, wenn der Hub ordentlich funktionieren soll. Shopversion und deine Idee wäre gute Angaben, um hier Hilfe zu erhalten.
Hast Du ggf. übersehen, in Deinen Methoden die Methoden der Elternklasse aufzurufen, also z.B. in Deiner prepare_data()-Methode die parent:repare_data()? Bei mir klappt das (mehrfache) Überladen der CheckoutConfirmationThemeContentView problemlos. Edit: Ich schreib's mal mit Leerzeichen: parent :: prepare_data()
Hallöchen, ich ändere nur das Artikelbild in das Eigenschaftenbild. parent :: prepare_data() ist drin bringt aber keine Abhilfe. Shopversion GX4.0.0.1. Ich habe es nun so gelöst, dass ich die Überladung von Gambio mit in meinen Code eingebaut habe, ist ja nur ein 5 Zeiler Aber die "richtige" Vorgehensweise wäre trotzdem interessant Code: public function prepare_data() { parent::prepare_data();
Die Vorgensweise mit PHP: parent::prepare_data(); ist genau richtig. Es wundert mich jetzt, dass das nicht funktioniert hat.
Um es zu verstehen: Wie genau funktioniert denn das? Sowohl die Überladung von Gambio, wie auch die meinige weißen ein und der selben Variable einen Wert zu. Wenn mein Wert als letztes zugewiesen wird, dann gilt doch auch der. Original Klasse sagt : $payment = "Gambio Hub" Gambio Überladung: $payment = "Vorkasse" Meine Überladung: $payment = "Gambio Hub" Woher weiß nun das Script, dass die Gambio Überladung nach meiner kommen sollte? LG Sven
Vielleicht solltest Du einmal scheiben, was du genau machst. Bzw. was Du vor hast und wie Dein Code aussieht.
Wenn dieselbe Variable durch mehrere Overloads überschrieben wird, gewinnt der letzte Overload. Ich bin mir grad nicht 100%ig sicher, aber ich glaube die Overloads werden alphabetisch ausgeführt. Du kannst also über den Klassen/Dateinamen Einfluss auf den Ausführungszeitpunkt nehmen.
Das würde es zumindest erklären, da meine Überladungen alle mit tnd beginnen ;D. Ich teste es mal aus. vielen lieben Dank!