Hallöchen, hat jemand eine Idee, ob ich die Methode überladen kann, ohne dass ich sie komplett überschreibe? /GXMainComponents/Controllers/HttpView/ShopAjax/CartController.inc.php function _getProducts() Ich muss folgende Zeilen hinzufügen, damit sie im Warenkorb nach einen refresh angezeigt werden. Code: $orderDetailsCartContentView->set_content_data('PRODUCTS_MASSAGE', $productData['PRODUCTS_MASSAGE']); $orderDetailsCartContentView->set_content_data('PRODUCTS_LIMIT_BOX', $productData['PRODUCTS_LIMIT_BOX']); Mit parent::_getProducts(....) gehts leider nicht, da ich hier bereits fertiges HTML zurück bekomme. Danke
@BigRib Du könntest einfach die OrderDetailsCartThemeContentView überladen und darin die prepare_data Funktion, dann brauchst du deine Daten nicht immer überall einfügen, sondern nur einmal. PHP: function prepare_data(){ parent::prepare_data(); for ($i = 0, $n = count($this->products); $i < $n; $i++) { $this->moduleContent[$i] = ['PRODUCTS_MASSAGE' => 'Meine Daten Message', 'PRODUCTS_LIMIT_BOX' => 'Mein Limit', ]; }}
Hi Till, das habe ich, es funktioniert auch beim ersten Seitenaufruf. Wenn der Warenkorb aber per Ajax refreshed wird, sind meine Boxen weg, da sie von der oben genannten Funktion überschrieben werden. Die Variable ändert sich dann auch. Beim ersten Seitenaufruf ist es Code: $module_data.PRODUCTS_LIMIT_BOX Wenn man refreshed (also z.b. die Anzahl ändert oder einen Artikel löscht), dann muss ich die Variable Code: $PRODUCTS_LIMIT_BOX. nutzen und die wird über Ajax gefüllt. Oder ich ersetze den Block Code: {block name="cart_order_preview_item_order_item_snippet_include"} und setze da noch ein Code: PRODUCTS_LIMIT_BOX=$module_data.PRODUCTS_LIMIT_BOX rein, dann bleibt es bei $PRODUCTS_LIMIT_BOX
@BigRib Kannst du einmal ein Ticket aufmachen dann schaue ich mir das mal direkt in deinem Shop an. Oder du sendest deine PHP Dateien mal als Anhang mit, damit ich das in einem Testshop ansehen kann.