Guten Tag Wir möchten gerne ein paar Anpassungen machen, welche sich leider nicht für das Admin-Tool lösen lassen und benötigen dabei die Möglichkeit weitere smarty variablen der view hinzu zu fügen. Unsere Suche führte uns zu der Datei /system/classes/products/ProductInfoContentView.inc.php, doch wenn wir dort weitere Variablen in der get_html methode einfügen (z.B. $this->set_content_data('TEST', 'Dies ist ein Test'), können wir diese trotzdem nicht im Template gebrauchen (/templates/eSrcBasic/module/product_info/standard.html). Und ja es ist das richtige Template welches wir am bearbeiten sind Bitte geben Sie uns eine möglichst genaue Antwort. Freundliche Grüsse
@schweiz Normalerweise gewünschte Erweiterungen in Artikeldetailseite können als Overloads in der Datei "ProductinfoContentView.inc.php" ausgeführt werden. Die Frage ist ob die gewünschte Erweiterungen in der Datenbank gespeichert und von da aus abgerufen werden? Wenn ja, dann wo gibt ihr diese Erweiterungen ein? Ein Beispiel ist die "Zusatz Felder". Die werden über "new_product.php" eingegeben und über "standard.html" im Frontend angezeigt. Ohne genau Angaben, ist es nicht möglich weiter zu helfen.
Hallo Cyrus Was meinst du mit 'Overloads'? Wie kann ich weitere variablen einfügen, damit ich sie in der view 'standard.html' mit z.B. {TEST} aufrufen kann? Es geht im eine Berechnung, welche mit mit dem Standardpreis machen muss. Diese gewünschte Variabel kommt also nicht aus der DB sondern muss lediglich dem View hinzugefügt werden können Viele Grüsse Christian
Das ist eigentlich so schon richtig... Fügt doch mal am Anfang des Templates {debug} ein, dann erscheinen in einem PopUp Informationen über alle im Template verfügbaren Variablen.
Hallo nochmals Also, was ich gemacht habe ist in der Datei ProductinfoContentView.inc.php direkt unterhalb von $this->set_content_data('PRODUCTS_MODEL', $t_products_model); diese Zeile hier eingefügt: $this->set_content_data('HELLO', 'heloooo'); Danach wenn ich versucht diese Variabel in der view aus zu geben, kann ich aber nicht mit {$HELLO} darauf zugreiffen. Es kommt an der Stelle gar nichts. Es ist aber 100 prozentig die richtige view Datei bearbeitet, da, wenn ich etwas statisches rein schreibe, dies beim aktualisieren auf der Website ersichtlich ist. Viele Grüsse Christian
Hallo Avenger Danke für den Tipp mit dem debug. Bei den 'assigned template variables' ist die Variabel HELLO nicht aufgelistet.
Hallo schweiz, Ein Overload ist Einfügung von Extra Befehle oder Codes in eine Datei, ohne die original Datei zu ändern. Um Extra Infos in Artikeldetailseite anzeigen zu lassen, muss man wie du es selbst ausgefunden hast, die gewünschte Infos mit einem Overload über die Datei "ProductInfoContentView.inc.php" erst verfügbar machen. Diese Overload wird deinem Fall, dann in dem Ordner user_classes/overloads/ProductInfoContentView/mein_toller_overload_ProductInfoContentView.inc.php gespeichert. Ein Beispiel wäre: PHP: class extrafield_ProductInfoContentView extends extrafield_ProductInfoContentView_parent { function get_html($p_coo_product, $p_current_category_id = 0) { // BOF products_extrafield $this->set_content_data('PRODUCTS_CONTENT', $p_coo_product->data['products_content']); $this->set_content_data('PRODUCTS_WEG_1', $p_coo_product->data['products_weg_1']); $this->set_content_data('PRODUCTS_ORIGIN', $p_coo_product->data['products_origin']); $this->set_content_data('PRODUCTS_PACKAGE', $p_coo_product->data['products_package']); $this->set_content_data('PRODUCTS_FABRICATION', $p_coo_product->data['products_fabrication']); $this->set_content_data('PRODUCTS_TASTE', $p_coo_product->data['products_taste']); $this->set_content_data('PRODUCTS_VARIETY', $p_coo_product->data['products_variety']); $this->set_content_data('PRODUCTS_TYPE', $p_coo_product->data['products_type']); $this->set_content_data('PRODUCTS_TREATMENT', $p_coo_product->data['products_treatment']); $this->set_content_data('PRODUCTS_LACTOSE', $p_coo_product->data['products_lactose']); $this->set_content_data('PRODUCTS_FAT', $p_coo_product->data['products_fat']); $this->set_content_data('PRODUCTS_MATURITY', $p_coo_product->data['products_maturity']); $this->set_content_data('PRODUCTS_CALORIE', $p_coo_product->data['products_calorie']); $this->set_content_data('PRODUCTS_PROTEIN', $p_coo_product->data['products_protein']); $this->set_content_data('PRODUCTS_CARBOHYDRATE', $p_coo_product->data['products_carbohydrate']); $this->set_content_data('PRODUCTS_CALCIUM', $p_coo_product->data['products_calcium']); $this->set_content_data('PRODUCTS_SALT', $p_coo_product->data['products_salt']); $this->set_content_data('PRODUCTS_GLUTEN', $p_coo_product->data['products_gluten']); $this->set_content_data('PRODUCTS_GLUTAMATE', $p_coo_product->data['products_glutamate']); $this->set_content_data('PRODUCTS_FEATURE', $p_coo_product->data['products_feature']); $this->set_content_data('PRODUCTS_ADDITIVES', $p_coo_product->data['products_additives']); // EOF products_extrafield return parent::get_html($p_coo_product, $p_current_category_id); } }?> Dann muss man die Datei standard.html kopieren und umbenennen als "standard-USERMOD.html" und in der USERMOD-Datei an gewünschte Stelle, die Gewünschte Extra-Info einfügen. Wie z. B. : HTML: ... ... {/if} {if $PRODUCTS_QUANTITY || $SHOW_PRODUCTS_QUANTITY} <dt>{$txt.text_stock}</dt> <dd class="products_quantity"><span class="products_quantity_value">{$PRODUCTS_QUANTITY}</span> {if $PRODUCTS_QUANTITY_UNIT}{$PRODUCTS_QUANTITY_UNIT}{else}{$txt.text_pieces}{/if}</dd> {/if} <!-- BOF products_extrafield DIE GEWÜNSCHTE INFO--> {if $PRODUCTS_WEG_1 || $SHOW_PRODUCTS_WEG_1} <dt>{$txt.text_products_weg_1}</dt> <dd class="products_content">{$PRODUCTS_WEG_1}</dd> {/if} {if $PRODUCTS_CONTENT || $SHOW_PRODUCTS_CONTENT} <dt>{$txt.text_products_content}</dt> <dd class="products_content">{$PRODUCTS_CONTENT}</dd> {/if} .... .... .... Das Ergebnis wäre dann wie das Bild von Oben