zusätzliche Tabs in der Produktbeschreibung

  • Ein Kunde stellt die Anforderung, die Produktbeschreibung (einheitlich für alle Produkte) in mehrere Tabs aufzugliedern:
    1. Anwendung
    2. Anwendung
    3. Qualitiätsmerkmale
    4. Zertifikate

    Im Adminbereich der Produktbeschreibung (und damit auch in der Produktdatenbank) müssen demnach weiter Felder vorhanden sein / angelegt werden, wo die Inhalte zu diesen Tabs editiert werden können.
    Irgendwo habe ich mal was gelesen, dass ab der V 2.5 "Zusatzfelder" in den Produkten definiert werden können, aber dzu nichts gefunden.
    Wo/wie kann ich dieses Problem lösen?

    In /admin/includes/addons/ gibt es verschiedene, aber leere Dateien wie z.B. 'new_product_tabs_addon.php'.
    Haben diese vielleicht etwas damit zu tun?

  • Eingaben nicht in die Datenbank übernommen!

    Habe das jetzt soweit über die Addon-Dateien '/admin/includes/addons/new_product_tabs_addon.php' und '/admin/includes/addons/new_product_tabs_nav_addon.php' hinbekommen (Dank an itsolution für den Tipp).

    Die zusätzlichen Tabs werden jetzt in Frontend angezeigt, soweit die entsprechenden Datenbankfelder Inhalt aufweisen, auch im Backend bei der Produlterfassung (-bearbeitung sind die Felder vorhanden. Allerdings werden die Eingaben nicht in die Datenbank übernommen! Wenn ich die Datenfelder direkt über phpmyadmin befülle, sind sie im Frontend sichtbar, aber bei Eingabe über das Backend werden sie nicht in die Datenbank übernommen.

    Die entsprechenden POST-Angaben in der /admin/includes/modules/new_product.php sind vorhanden:

    Code
    $products_zusatz_description_2 = xtc_db_prepare_input($_POST['products_zusatz_description_2']);
    $products_zusatz_description_3 = xtc_db_prepare_input($_POST['products_zusatz_description_3']);
    $products_zusatz_description_4 = xtc_db_prepare_input($_POST['products_zusatz_description_4']);

    auch die Eingabefelder sind ergänzt:


    Habe ich noch irgendwas vergessen?

    Die Anzeige der zusätzlichen Tabs im Frontend funktioniert, wie gesagt. Nur bringe ich die Inhalte über das Backend nicht in die Datenbank!

    4 Mal editiert, zuletzt von ulli (22. Mai 2015 um 11:39)

  • Weis nicht 123 aber vielleicht etwas mit Sprache oder cache, bin kein Programierer, aber damit/dadurch gibt es öfter fehler.

    Weiter änderungen code auch den frontend ?

  • Im Frontend funktioniert ja die Anzeige. Wenn ich direkt in der Datenbank die neuem Felder befülle. Aber was ich im Backend in die neu erstellten Felder eintrage, wird nicht in die Datenbank gespeichert.

  • WYSIWYG ?

    Code
    if (USE_WYSIWYG == 'true') {
                                                if (file_exists('includes/editor/ckfinder/ckfinder.js')) {
                                                    ?>

    dan hier nachsehen in newproduct

    oder beim den anderer editor teil gleich da oben vielleicht


    also sehe nicht in dein code dieser>>>> besser wen man etwas macht mit code forntend backend dan auch mal alles komplett posten hier?

    PHP
    <td valign="top">
                                            <strong><?php echo TEXT_PRODUCTS_ZUSATZ_DESCRIPTION; ?></strong><br>
        <?php echo xtc_draw_textarea_field('products_zusatz_description[' . $languages[$i]['id'] . ']', 'soft', '103', '20', (($products_zusatz_description[$languages[$i]['id']]) ? stripslashes($products_zusatz_description[$languages[$i]['id']]) : xtc_get_product_field($pInfo->products_id, $languages[$i]['id'], 'products_zusatz_description')), 'class="ckeditor" name="editor3"'); ?>
                                        </td>
                                    </tr>
    PHP
    <script type="text/javascript">
                                            var newCKEdit = CKEDITOR.replace('<?php echo 'products_zusatz_description[' . $languages[$i]['id'] . ']' ?>');
                                            CKFinder.setupCKEditor(newCKEdit, 'includes/editor/ckfinder/');
                                        </script>


    Bin kein programierer aber mit den

    PHP
    <?php 
       if (file_exists(DIR_WS_INCLUDES . 'addons/new_product_tabs_addon.php')) {
        include (DIR_WS_INCLUDES .'addons/new_product_tabs_addon.php');
       } 
         <?php 
         if (file_exists(DIR_WS_INCLUDES . 'addons/new_product_tabs_nav_addon.php')) {
          include (DIR_WS_INCLUDES .'addons/new_product_tabs_nav_addon.php');
         } 
         ?>

    Soll es damit dan nicht in newproduct.php alles bereits vorbereitet sein?
    Wen man nur in den new_product_tabs_addon.php'
    ?>

    2 Mal editiert, zuletzt von jotest (26. Mai 2015 um 10:00)

  • Also nochmal: Ich habe jetzt testweise alles direkt in der new_product.php eingefügt. Sozusagen alle Code-Snippets in dieser Datei, welche das Original-Datenfeld 'products_zusatz_description' betreffen entsprechend kopiert und nochmal mit der Bezeichnung 'products_zusatz_description_2' eingefügt. Es ist wieder das Gleiche: Das neue Eingabefeld 'products_zusatz_description_2' wird im Backend unter der Produkt-Zusatzbeschreibung korrekt angezeigt, lässt sich auch mit dem WYSYWIG-Editor bearbeiten, aber die Inhalte werden nicht in der Datenbank abgespeichert.

    Ich weiß absolut nicht mehr, was ich da falsch mache!

  • Habe ich per Mail schon beantowrtet!
    Alles viieeeellll zu kompliziert:
    Lösung:

    im Order includes\plugins\cseo_modules\sample\

    finden Sie die Datei:

    products_desc_fields.inc.php

    hier brauche Sie einfach nur Ihre 3 neuen Felder eintragen.

    statt:
    // $title = 'Beschreibung Addon';
    // $fields = array();

    // $fields[] = array(
    // 'type'=>'short_text',
    // 'key'=> 'product_input_desc_demo',
    // 'size'=> '100',
    // 'title'=> array('german'=>'Product Beschreibung Input', 'english'=>'Product Description Input')

    // );

    // $fields[] = array(
    // 'type'=>'long_text',
    // 'key'=> 'product_textarea_desc_demo',
    // 'title'=> array('german'=>'Product Beschreibung Text', 'english'=>'Product Description Text')

    // );

    Dann das hier:

    <?php
    $title = 'Beschreibung Addon';
    $fields = array();

    // $fields[] = array(
    // 'type'=>'short_text',
    // 'key'=> 'product_input_desc_demo',
    // 'size'=> '100',
    // 'title'=> array('german'=>'Product Beschreibung Input', 'english'=>'Product Description Input')

    // );

    $fields[] = array(
    'type'=>'long_text',
    'key'=> 'products_zusatz_description_2',
    'title'=> array('german'=>'Zusatz-Description_2', 'english'=>'Product Description Text')

    );

    $fields[] = array(
    'type'=>'long_text',
    'key'=> 'products_zusatz_description_3',
    'title'=> array('german'=>'Zusatz-Description_3', 'english'=>'Product Description Text')

    );

    $fields[] = array(
    'type'=>'long_text',
    'key'=> 'products_zusatz_description_4',
    'title'=> array('german'=>'Zusatz-Description_4', 'english'=>'Product Description Text')

    );

    Dann kommen die alleine im Admin!

    <p>Wir geben nur Anregungen und Hilfestellung auf Basis unserer Erfahrung, keine Rechtshilfe!<br>\m/('_')\m/</p>

  • Das hat geklappt, habe die zusätzich angelegten Felder im Template in der product_info.html mit z.B. {$module_data.PRODUCTS_DESCRIPTION_PRODUCT_2} eingebunden.
    Wird auch korrekt angezeigt.

    Das gleiche habe ich nun mit der product_listings.html versucht. Obwohl ich die gleiche Variable einsetzte, also auch {$module_data.PRODUCTS_DESCRIPTION_PRODUCT_2', wird hier nichts ausgegeben.
    Ich komme da nicht weiter.

    Einmal editiert, zuletzt von ulli (16. Oktober 2015 um 00:10)

  • Habe mal noch weiter gebastelt. Allerdings habe ich von Smarty nicht viel Ahnung.
    In der product_listings.php habe ich die Smarty-Variable definiert:

    Code
    $info_smarty = new Smarty;
    $info_smarty->assign('tpl_path', 'templates/' . CURRENT_TEMPLATE . '/');
    $info_smarty->assign('PRODUCTS_DESCRIPTION_PRODUCT_2', $product->data['products_zusatz_description_2']);


    Dennoch ist {$module_data.PRODUCTS_DESCRIPTION_PRODUCT_2} in der product_listings.html nicht aufrufbar, auch nicht mit {$PRODUCTS_DESCRIPTION_PRODUCT_2}

  • Es gibt mit product glaube ich 2 php da kan man sich die falschen ..
    Ich verwechsele den öfter

    Weiter hat man noch den template dateien also den html's

    Einer ist lsting aber für den listen widergabe mehrere produkten und und
    einer ist wirklich den produktinfo einer produkt selbe! dieser muss man haben

  • Nee, habe schon die richtigen:
    /includes/modules/ die product_info.php und die product_listing.php für die Smarty-Angaben,
    im Template-Ordner dann die /module/product_info/product_info_v1.html bzw. /module/product_listing/product_listings.html für die HTML-Ausgabe im Template.

    Wie gesagt, in der product_info funktioniert es, in der product_listing nicht.

  • Ok bin kein programierer.
    Aber für support von den oder admin vielleicht ein schitze / bildwer hierein was alles lauft und richtig fertig ist und den wo was noch wie dazu kommen muss.
    Ist dasss man nicht einander vorbeiredet, und erst noch unbedingt wider alles durchlesen muss