Um eigene Datenfelder, wie z.B. Inhalt, im Checkout anzuzeigen, müssen in folgenden Dateien Anpassungen gemacht werden: /lang/german/sections/samples/checkout_convirmation.lang.inc.php /checkout_confirmation.php templates/EyeCandy/module/checkout_confirmation_products.html Datensicherung bitte nicht vergessen! In der /lang/german/sections/samples/checkout_convirmation.lang.inc.php Code: 'text_products_inhalt' => 'Inhalt', am Ende einfügen und in /lang/german/sections kopieren in der /checkout_confirmation.php nach PHP: $t_products_item = array( 'products_name' => '', 'quantity' => '', 'price' => $xtPrice->xtcFormat($order->products[$i]['price'], true), 'final_price' => '', 'shipping_status' => '', 'attributes' => '', 'flag_last_item' => false, 'PROPERTIES' => $t_properties, 'properties_array' => $t_properties_array, 'products_image' => (!empty($coo_product_item->data['gm_show_image']) && !empty($coo_product_item->data['products_image'])) ? DIR_WS_THUMBNAIL_IMAGES . $coo_product_item->data['products_image'] : '', 'products_vpe_array' => get_products_vpe_array($order->products[$i]['id'], $order->products[$i]['price'], $t_options_values_array), 'products_alt' => (!empty($coo_product_item->data['gm_alt_text'])) ? $coo_product_item->data['gm_alt_text'] : $order->products[$i]['name'], 'checkout_information' => $coo_product_item->data['checkout_information'], 'products_url' => xtc_href_link('request_port.php', 'module=ProductDetails&id=' . $order->products[$i]['id'], 'SSL'), 'products_model' => $t_products_model, 'products_weight' => $t_products_weight, 'shipping_time' => $t_shipping_time, 'DATA_ARRAY' => $coo_product_item->data ); suchen und unter die Zeile 'products_weight'... PHP: 'products_inhalt' => $coo_product_item->data['products_inhalt'], einfügen zum Schluss in der templates/EyeCandy/module/checkout_confirmation_products.html nach der Zeile HTML: {if $products_item_array.products_weight} <br />{$info.text_weight}: {$products_item_array.products_weight}{$info.text_weight_unit} {/if} HTML: {if $products_item_array.products_inhalt} <br />{$info.text_products_inhalt}: {$products_item_array.products_inhalt} {/if} einfügen. Caches leeren Ich hoffe es haben sich keine Fehler eingeschlichen. Wie immer auf eigene Gefahr
Das kann man sich jetzt alles sparen..... Seit dem letzten Button-Update wird jetzt auch das in die Template-Daten übergeben: PHP: 'DATA_ARRAY' => $coo_product_item->data D.h., die Smarty-Variable "DATA_ARRAY" enthält alle Daten-Felder das Artikels! Mit PHP: {$products_item_array.DATA_ARRAY.products_inhalt} sollte man das denn auch haben...
Da primelt Frau Stunden an einer Lösung...und dann kommt Avenger und zeigt, dass es ganz einfach ist Avengers Lösung gehört in die /template/eyeCandy/module/checkout_confirmation_products.html einfach an gewünschter Stelle einfügen. Wenn man noch ein <br /> davor setzt, ist der Wert auch in einer eigenen Zeile. Kleiner Schönheitsfehler: es wird nur der Wert ausgegeben. also z.B. 100ml und nicht die Beschriftung, also z.B. Inhalt: 100ml
Wer die Datenfelder auch in den neuen "Produkt Details" (öffnet sich in der Lightbox, wenn "alle Detail-Informationen zum Produkt" angeklickt wird) anzeigen möchte, muss zwei Dateien anpassen. Beide Dateien lassen sich als Usermod updatesicher speichern In der /system/views/product_info/ProductDetailsContentView.ink.php nach diese Zeile (fast ganz unten) Code: $this->set_content_data('PRODUCTS_QUANTITY', gm_prepare_number($t_quantity, $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point'])); diese Zeile einfügen: Code: $this->set_content_data('PRODUCTS_INHALT', $coo_product->data['products_inhalt']); und in der /templates/EyeCandy/module/product_deteils.html an gewünschter Stelle Code: {if $PRODUCTS_INHALT} <dt>{$txt.text_products_inhalt}</dt> <dd>{$PRODUCTS_INHALT}</dd> {/if} einfügen. Caches leeren. wie immer auf eigene Gefahr
Es ist sehr schade, dass so wenige sich die tollen neuen Möglichkeiten von Gambio zu Nutze machen, um ihren Shop updatesicher zu halten.... Das kann man nämlich sehr viel eleganter und präziser lösen: Folgende Routine als "user_classes\overloads\ProductInfoContentView\pt_fulldata_ProductInfoContentView.inc.php" speichern: PHP: <?php/*Copyright (c) 2012 Avenger, entwicklung@powertemplate.deOverload class for method "get_html" of "ProductInfoContentView" class.Add products information codes to template dataStore as "user_classes\overloads\ProductInfoContentView\pt_fulldata_ProductInfoContentView.inc.php"*/class pt_fulldata_ProductInfoContentView extends pt_fulldata_ProductInfoContentView_parent{ function get_html($p_coo_product, $p_current_category_id = 0) { //Store complete products object in template data //$this->set_content_data('PRODUCTS_OBJECT', $p_coo_product); //Store complete products data in template data //$this->set_content_data('PRODUCTS_DATA', $p_coo_product->data); //Store one products value in template data //$this->set_content_data('PRODUCTS_INHALT', $p_coo_product->data['products_inhalt']);; return parent::get_html($p_coo_product, $p_current_category_id); }}?> Je nachdem, was man erreichen will, kann man eine der vorigen "$this->set_content_data'"-Anweisungen entkommentieren, Der große Vorteil dieses Ansatzes ist, dass nicht die komplette "ProductInfoContentView.inc.php" geändert wird, sondern nur das dazu gebracht wird, was nötig ist. Das ist nicht nur updatesicher, sondern man braucht das bei neuen Releases auch nicht jedes Mal überprüfen, ob das auch noch passt. Und übersichtlicher ist es allemal.
Hallo Avenger, habe den Pfad und Code angelegt. Bekomme aber Fehlermeldungen: Parse error: syntax error, unexpected T_STRING, expecting '{' in /var/www/vhosts/kanis-augen.eu/httpdocs/system/core/ClassOverloadRegistry.inc.php(131) : eval()'d code on line 1 Fatal error: Class 'pt_fulldata_ProductInfoContentView_parent' not found in /var/www/vhosts/kanis-augen.eu/httpdocs/user_classes/overloads/ProductInfoContentView/pt_f ulldata_ProductInfoContentView.inc.php on line 11 Was muß ich da noch ändern? Mein PHP ist recht mäßig. Vielen Dank, schon mal Walter
Guten Morgen Walter, Du hast in Deiner "ClassOverloadRegistry.inc.php" ganz am Anfang eine '{' vergessen. Gruß Gerd