Hallo, ich wollte eben mal die Beispielerweiterung testen (das hello-world Beispiel). Ich habe den Beispielordner ApplicationBottomExtenderComponent genommen und vom Ordner _samples in den Ordner overloads kopiert. Leider passiert danach überhaupt nix. Was muss man noch machen, damit es funktioniert? In dem _samples Ordner sind ja alle Bezeichungen eigentlich korrekt. EDIT: Hat sich erledigt. Man muss im Backend erstmal den Cache löschen.
Hallo, doch noch eine kurze Frage: wenn in der Klasse auch noch eine Javascript Datei benötigt wird, wo wird diese untergebracht? Auch im Overloads Ordner oder eher im usermod-Verzeichnis?
Hallo hf, schau mal hier rein templates/EyeCandy/usermod/javascript dann in den Ordner für den passenden Bereich, wenn du es auf allen Seiten benutzen möchtest in den Ordner global
super danke Leider gibt es mit dem Überladen noch ein kleines Problem. Wie sieht es denn aus, wenn ich in meine eigene Klasse Parameter übergeben will? Für die Erfassung mit etracker benötige ich z.B. Produktdaten. Dazu habe ich die Klasse ApplicationBottomExtenderComponent erweitert mit einer eigenen Klasse (um die Ausgabe am Ende der Seite zu haben). Die benötigten Parameter stehen z.B. auf der checkout_sucess.php. Dann müsste ich doch in diese Datei meine eigenen Aufrufe schreiben ($meineKlasse->setVar('foo')) um die Variablen zu erhalten oder gibt es noch eine andere Möglichkeit? Dann wäre man jedoch nicht updatesicher, da in der Datei ja meine eigenen Aufrufe stehen.
So richtig irgendwie nicht. Ich müsste von aussen die Variablen an die Klasse übergeben können, denn sonst kann ich den Tracking-Code ja nicht dynamisch befüllen.
Das nutzt Dir natürlich gar nichts, die "ApplicationBottomExtenderComponent" zu überladen, da diese ja überhaupt keine Infos zur Order hat... Ich würde die "proceed"-Methode der "system\Extender\CheckoutSuccessExtenderComponent.inc.php" überladen. Da hast Du Zugriff auf die Order-Daten, kannst daraus das nötige Javascript konstruieren, dieses einer Template-Variablen zuweisen und im "checkout_success" -Template dann ausgeben.
Hallo Avenger, das hilft mir schon mal ein ganzes Stück weiter. Der Code soll aber nicht nur im Bestellprozess, sondern z.B. auch auf den Produktseiten, Content-Seiten usw. eingesetzt werden. Dort würde mir ja das Überladen der CheckoutSuccessExtenderComponent nicht viel nützen. Mus man dann jeweils andere Klassen überladen? Gibt es denn eine Möglichkeit den Javascript-Schnipsel an einer zentralen Stellen auszulagern und dann jeweils die benötigten Javascript-Variablen dynamisch zu füllen?
Das kommt darauf an.... Normalerweise braucht der Codeschnipsel an unterschiedlichen Stellen unterschieliche Daten (Kategorie, Artikel, Warenkorb,...), und da muss man dann die entsprechenden Klassen überladen.
ok, das werde ich mir mal ansehen. Kann ich denn auch noch eine Art Basisklasse anlegen, in der ich den Javascript Code reinsetze? Damit müsste ich nich bei jeder Klasse, die ich überladen will, diesen Code mehrfach reinschreiben.
Der javascript-Code wird ja, bis z.B. auf die Einbindung des Basis-Javascripts, auch unterschiedlich sein... Die Aufbereitung der Warenkorbdaten als Javascript-Daten, ist sicher anders, als die für z.B. eine Kategorie oder Artikel.... Viel wird man da nicht einsparen können.
Die Ausgabe erfolgt aber dann wohl auch immer in dem Template, was die überladene Klasse nutzt? Ich würde den Code gern immer am Ende der Seite haben, was mit der zuerst überladenen Klasse auch ganz gut klappt (ApplicationbottomExtendercomponent). Könnte ich im Falle das Warenkorbes die Ausgabe ebenfalls ans Seitenende verlagern?
Also nun muss mir mal jemand meine Kopflogik korrigieren! Ich überlade die OrderDetailsCartContentView.inc.php Dort die function get_html weil ich darin einen zusätzlichen Code bauche. Das mache ich mit der Indiv_OrderDetailsCartContentView.inc.php was auch funktioniert. Codeausschnitt: PHP: class Indiv_OrderDetailsCartContentView extends Indiv_OrderDetailsCartContentView_parent{ function get_html($p_products_array) Jetzt möchte ich die gleiche Klasse für ein anderes Projekt wieder überladen! Und auch hier betrifft es die function get_html Codeausschnitt: PHP: class IndivWK_OrderDetailsCartContentView extends IndivWK_OrderDetailsCartContentView_parent{ function get_html($p_products_array) So weit so gut! Solange die Überladungen einzeln im user_classes/overload/OrderDetailsCartContentView/ Ordner liegen geht das top! Nur verwende ich beide ist mit der obersten Schicht im Schacht! Die wird nicht beachtet! Also nun der Gedanke die get_html Funktionen umzubenennen. Ja nun nun greift nix mehr...... Da hab ich doch sicherlich wieder mal ein Wald -> Bäume-Syndrom.........
Hallo allerseits! Wie weiß ich ob ich einen Extender überladen soll oder einen View? Also zum einen möchte ich in einer Textdatei Ereignisse mitloggen, also sobald z.B. eine Produktdetailseite aufgerufen wird (und mit welchem Artikel). Zum anderen möchte ich Login- und Registrierungsvorgänge in dieser Datei mitloggen. Für die Produktdetailseite habe ich ProductInfoContentView überladen; für die Anmeldung LoginExtenderComponent. Sinnvoll bis dahin? Oder suboptimal? Für die Registrierung schließlich habe ich überhaupt keinen Ansatzpunkt gefunden, was ich überladen müsste. Was übersehe ich? Danke & VG Ranjan
Hallo, Frage, ich habe nirgend was gelesen über die klassen unter dem Bereich Admin. Ich nehme an dass diese noch nicht so mit "updatesicher" implementiert sind? ..oder liege ich da falsch? Gruss