Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Zusatzfelder in der product_listing_v1.html einbinden

    Clever

    • Schreiberling
    • Beiträge: 257
    Hallo :-)

    Wir haben uns für unseren Shop die Mühe gemacht Zusatzdatenfelder einzubauen.
    Teilweise per Dropdown - um die Artikeleinpflege zu erleichtern.
    Da wir viele technische Daten haben und das Modul "MODUL: Technische Daten mehrsprachig für modified eCommerce Shopsoftware" uns zu aufwändig gewesen ist (im Handling).

    Nun also werden die Zusatzfelder auch brav (in der "product_info_X.html" eingebunden) bei den Produkten angezeigt...
    Doch EINIGE Dieser Felder sollen am besten auch bereits bei der Artikelübersicht der (Unter)Kategorien angezeigt werden - eben da wo auch die "short_description" steht.

    Dafür aber werden die besagten Felder eingebunden werden müssen und auch wohl zum jeweiligen Artikel passend abgefragt und ausgegeben werden (so wie eben auch der Preis).

    Leider hab ich nicht gefunden wo man das machen kann... Veränderungen an der "specials.php", sowie der "product_listing.php" brachten mich nicht weiter....

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: product_listing.php 1286 2005-10-07 10:10:18Z mz $

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(product_listing.php,v 1.42 2003/05/27); www.oscommerce.com
       (c) 2003      nextcommerce (product_listing.php,v 1.19 2003/08/1); www.nextcommerce.org

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


    $module_smarty = new Smarty;
    $module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
    $result = true;
    // include needed functions
    require_once (DIR_FS_INC.'xtc_get_all_get_params.inc.php');
    require_once (DIR_FS_INC.'xtc_get_vpe_name.inc.php');

    $listing_split = new splitPageResults($listing_sql, (int)$_GET['page'], MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');
    $module_content = array ();
    if ($listing_split->number_of_rows> 0) {

            $navigation = '
                    <table border="0" width="100%" cellspacing="0" cellpadding="2">
                      <tr>
                        <td class="smallText">'
    .$listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS).'</td>
                        <td class="smallText" align="right">'
    .TEXT_RESULT_PAGE.' '.$listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, xtc_get_all_get_params(array ('page', 'info', 'x', 'y'))).'</td>
                      </tr>
                    </table>'
    ;
            if (GROUP_CHECK == 'true') {
                    $group_check = "and c.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
            }
            $category_query = xtDBquery("select
                                                        cd.categories_description,
                                                        cd.categories_name,
                                                        cd.categories_heading_title,
                                                        c.listing_template,
                                                        c.restposten_status,
                                                       p.products_feld15,// <<-- mal testweise eingefügt
                                                        c.categories_image from "
    .TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd, ".TABLE_PRODUCTS." p
                                                        where c.categories_id = '"
    .$current_category_id."'
                                                        and cd.categories_id = '"
    .$current_category_id."'
                                                        "
    .$group_check."
                                                        and cd.language_id = '"
    .$_SESSION['languages_id']."'");

            $category = xtc_db_fetch_array($category_query,true);
            $image = '';
            if ($category['categories_image'] != '')
                    $image = DIR_WS_IMAGES.'categories/'.$category['categories_image'];
            $module_smarty->assign('CATEGORIES_NAME', $category['categories_name']);
            $module_smarty->assign('CATEGORIES_HEADING_TITLE', $category['categories_heading_title']);
    // BOF Restpostenmodul
    $module_smarty->assign('CATEGORIES_RESTPOSTEN_STATUS', $category['restposten_status']);
    // EOF Restpostenmodul
                                    $module_smarty->assign('PRODUCTS_FELD1', $product->data['products_feld1']);
                    $module_smarty->assign('PRODUCTS_FELD2', $product->data['products_feld2']);
                                    $FELD3A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld3 FROM products LEFT JOIN configuration ON concat('FELD3A_DATEN_',products_feld3) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD3', $t['products_feld3']);
                            $FELD4A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld4 FROM products LEFT JOIN configuration ON concat('FELD4A_DATEN_',products_feld4) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD4', $t['products_feld4']);
              $FELD5A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld5 FROM products LEFT JOIN configuration ON concat('FELD5A_DATEN_',products_feld5) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD5', $t['products_feld5']);
              $FELD6A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld6 FROM products LEFT JOIN configuration ON concat('FELD6A_DATEN_',products_feld6) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD6', $t['products_feld6']);
              $FELD7A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld7 FROM products LEFT JOIN configuration ON concat('FELD7A_DATEN_',products_feld7) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD7', $t['products_feld7']);
              $FELD8A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld8 FROM products LEFT JOIN configuration ON concat('FELD8A_DATEN_',products_feld8) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD8', $t['products_feld8']);
              $FELD9A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld9 FROM products LEFT JOIN configuration ON concat('FELD9A_DATEN_',products_feld9) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD9', $t['products_feld9']);
                            $FELD10A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld10 FROM products LEFT JOIN configuration ON concat('FELD10A_DATEN_',products_feld10) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD10', $t['products_feld10']);
                    $FELD11A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld11 FROM products LEFT JOIN configuration ON concat('FELD11A_DATEN_',products_feld11) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD11', $t['products_feld11']);
              $FELD12A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld12 FROM products LEFT JOIN configuration ON concat('FELD12A_DATEN_',products_feld12) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD12', $t['products_feld12']);
              $FELD13A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld13 FROM products LEFT JOIN configuration ON concat('FELD13A_DATEN_',products_feld13) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD13', $t['products_feld13']);
                    $FELD14A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld14 FROM products LEFT JOIN configuration ON concat('FELD14A_DATEN_',products_feld14) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD14', $t['products_feld14']);
                            $FELD15A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld15 FROM products LEFT JOIN configuration ON concat('FELD1A_DATEN_',products_feld15) = configuration.configuration_key WHERE products.products_id = ".(int)$category['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD15', $t['products_feld15']);
                    $FELD16A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld16 FROM products LEFT JOIN configuration ON concat('FELD2A_DATEN_',products_feld16) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD16', $t['products_feld16']);
                                    $FELD20A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld20A FROM products LEFT JOIN configuration ON concat('FELD20A_DATEN_',products_feld20a) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD20A', $t['products_feld20A']);
                                    $FELD21A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld21A FROM products LEFT JOIN configuration ON concat('FELD21A_DATEN_',products_feld21a) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD21A', $t['products_feld21A']);
                                    $FELD22A = '';
          $t_query = xtc_db_query("SELECT configuration.configuration_value as products_feld21A FROM products LEFT JOIN configuration ON concat('FELD21A_DATEN_',products_feld21a) = configuration.configuration_key WHERE products.products_id = ".(int)$product->data['products_id']);
          $t = xtc_db_fetch_array($t_query);
          $module_smarty->assign('PRODUCTS_FELD22A', $t['products_feld22A']);
                    $module_smarty->assign('PRODUCTS_FELD17', $products['products_feld17']);
                    $module_smarty->assign('PRODUCTS_FELD18', $products['products_feld18']);
                    $module_smarty->assign('PRODUCTS_FELD19', $products['products_feld19']);
                    $module_smarty->assign('PRODUCTS_FELD20', $products->data['products_feld20']);
                    $module_smarty->assign('PRODUCTS_FELD21', $products->data['products_feld21']);
                    $module_smarty->assign('PRODUCTS_FELD22', $products->data['products_feld22']);
                    $module_smarty->assign('PRODUCTS_FELD23', $products->data['products_feld23']);
                    $module_smarty->assign('PRODUCTS_FELD24', $products->data['products_feld24']);
                    $module_smarty->assign('PRODUCTS_FELD25', $products->data['products_feld25']);
                    $module_smarty->assign('PRODUCTS_FELD26', $products->data['products_feld26']);
                    $module_smarty->assign('PRODUCTS_FELD27', $products->data['products_feld27']);
                    $module_smarty->assign('PRODUCTS_FELD28', $products->data['products_feld28']);
                    $module_smarty->assign('PRODUCTS_FELD29', $products->data['products_feld29']);
                    $module_smarty->assign('PRODUCTS_FELD30', $products->data['products_feld30']);
                    $module_smarty->assign('PRODUCTS_FELD31', $products->data['products_feld31']);
                    $module_smarty->assign('PRODUCTS_FELD32', $products->data['products_feld32']);
                    $module_smarty->assign('PRODUCTS_FELD33', $products->data['products_feld33']);
                    $module_smarty->assign('PRODUCTS_FELD34', $products->data['products_feld34']);
                    $module_smarty->assign('PRODUCTS_FELD35', $products->data['products_feld35']);
                    $module_smarty->assign('PRODUCTS_FELD36', $product->data['products_feld36']);
                    $module_smarty->assign('PRODUCTS_FELD37', $product->data['products_feld37']);
                    $module_smarty->assign('PRODUCTS_FELD38', $product->data['products_feld38']);
                    $module_smarty->assign('PRODUCTS_FELD39', $product->data['products_feld39']);
                    $module_smarty->assign('PRODUCTS_FELD40', $product->data['products_feld40']);
                    $module_smarty->assign('PRODUCTS_FELD41', $product->data['products_feld41']);

            $module_smarty->assign('CATEGORIES_IMAGE', $image);
            $module_smarty->assign('CATEGORIES_DESCRIPTION', $category['categories_description']);

            $rows = 0;
            $listing_query = xtDBquery($listing_split->sql_query);
            while ($listing = xtc_db_fetch_array($listing_query, true)) {
                    $rows ++;
                    $module_content[] =  $product->buildDataArray($listing);
            }
    } else {

            // no product found
            $result = false;

    }
    // get default template
    if ($category['listing_template'] == '' or $category['listing_template'] == 'default') {
            $files = array ();
            if ($dir = opendir(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_listing/')) {
                    while (($file = readdir($dir)) !== false) {
                            if (is_file(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_listing/'.$file) and ($file != "index.html") and (substr($file, 0, 1) !=".")) {
                                    $files[] = array ('id' => $file, 'text' => $file);
                            } //if
                    } // while
                    closedir($dir);
            }
            $category['listing_template'] = $files[0]['id'];
    }

    if ($result != false) {

            $module_smarty->assign('MANUFACTURER_DROPDOWN', $manufacturer_dropdown);
            if (!empty($option_dropdowns))
      $module_smarty->assign('option_dropdowns', $option_dropdowns);
            $module_smarty->assign('language', $_SESSION['language']);
            $module_smarty->assign('module_content', $module_content);

            $module_smarty->assign('NAVIGATION', $navigation);
            // set cache ID
             if (!CacheCheck()) {
                    $module_smarty->caching = 0;
                    $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_listing/'.$category['listing_template']);
            } else {
                    $module_smarty->caching = 1;
                    $module_smarty->cache_lifetime = CACHE_LIFETIME;
                    $module_smarty->cache_modified_check = CACHE_CHECK;
                    $cache_id = $current_category_id.'_'.$_SESSION['language'].'_'.$_SESSION['customers_status']['customers_status_name'].'_'.$_SESSION['currency'].'_'.$_GET['manufacturers_id'].'_'.$_GET['filter_id'].'_'.$_GET['page'].'_'.$_GET['keywords'].'_'.$_GET['categories_id'].'_'.$_GET['pfrom'].'_'.$_GET['pto'].'_'.$_GET['x'].'_'.$_GET['y'];
                    $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_listing/'.$category['listing_template'], $cache_id);
            }
            $smarty->assign('main_content', $module);
    } else {

            $error = TEXT_PRODUCT_NOT_FOUND;
            include (DIR_WS_MODULES.FILENAME_ERROR_HANDLER);
    }
    // BOF Such Statistiken
            $search_result = $listing_split->number_of_rows;
    // EOF Such Statistiken
    ?>
     

    Hat jemand einen Ansatz für mich ?
    Ich dachte, wenn man die Funktion der "short_description" duplizieren kann, müßte es doch gehen, nur find ich nicht mal wo die ist? :-)

    Danke für Eure Mühe



    Linkback: https://www.modified-shop.org/forum/index.php?topic=13207.0

    Clever

    • Schreiberling
    • Beiträge: 257
    Zusatzfelder in der product_listing_v1.html einbinden
    Antwort #1 am: 28. Mai 2011, 10:33:46
    keiner eine Idee ?
    ich würde zumindest gern wissen welche Dateien die Preisabfrage in der Kategorieübersicht erzeugen.
    dann kann ich mal gucken, ob ich das auch auf einzelne Felder übertragen kann...

    Leider weiß ich da nicht wo ich suchen soll. :-(

    Danke

    luckybaron

    • Mitglied
    • Beiträge: 168
    Zusatzfelder in der product_listing_v1.html einbinden
    Antwort #2 am: 28. Mai 2011, 12:55:11
    Also die Preise kommen aus der "/includes/classes/xtcPrice.php".

    hendrik

    • Experte
    • Beiträge: 2.038
    Zusatzfelder in der product_listing_v1.html einbinden
    Antwort #3 am: 28. Mai 2011, 15:11:00
    Diese Abfragen die du da in "product_listing.php" gemacht hast können die Artikelliste nicht erweitern schon allein deshalb, weil da unbestimmt viele Artikel (product_id) bedient werden, die Abfragen aber nur einen Artikel (eine Artikel-ID).

    Der Schlüssel für das was du suchst ist in Klasse "products" ("/includes/classes/product.php"), Methode "builtdatarray()". An deren Ende wird ein assoziatives Array zurückgegeben. Genau dieses Array steht am Ende im Templategenerator ("product_listing...html") zur Verfügung.

    Ergänze das zurückgelieferte Array um deine ergänzenden Datenfelder. Im Wiki ist ein Tutorial für zusätzliche Datenfdelder. Dort ist ausführlich beschrieben wie du die Klasse "products" ("builddataarray()") ergänzt und im Listingtemplate anwendest.

    Gruß
    Hen

    kingluis

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Zusatzfelder in der product_listing_v1.html einbinden
    Antwort #4 am: 07. Juni 2011, 20:40:56
    Hi

    Dieses Tutorial ist aber leider nicht für das aktuelle Standard Template xtc5, sondern für's xtc4, welches mit Tabelle arbeitet. Dies zumindest in der "/module/product_info/product_info_v1.html".

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Zusatzfelder in der product_listing_v1.html einbinden
    Antwort #5 am: 07. Juni 2011, 22:29:12
    Von welcher Anleitung redest du? Von der hier? -> MODUL: Technische Daten mehrsprachig für modified eCommerce Shopsoftware

    Grüße

    Torsten

    kingluis

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Zusatzfelder in der product_listing_v1.html einbinden
    Antwort #6 am: 07. Juni 2011, 23:49:45
    nein ich spreche von dem hier: Tutorial: Zusätzliche Datenfelder Artikel

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Zusatzfelder in der product_listing_v1.html einbinden
    Antwort #7 am: 08. Juni 2011, 08:09:10
    Du musst doch nur die Smartys an die gewünschte Stelle in dein Template setzen. Vergiss mal den Tabellen-Kram, der da noch in der Anleitung steht.

    Grüße

    Torsten

    2 Antworten
    571 Aufrufe
    04. August 2024, 20:09:33 von scaleshop.at
    4 Antworten
    4985 Aufrufe
    01. August 2011, 08:30:53 von franky_n
    0 Antworten
    2286 Aufrufe
    26. August 2010, 14:31:21 von maidem
    4 Antworten
    3525 Aufrufe
    27. Oktober 2010, 12:33:19 von fishnet