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: Artikelnummer in Specials

    ado

    • Fördermitglied
    • Beiträge: 195
    Artikelnummer in Specials
    am: 13. November 2014, 18:09:24
    Hallo,

    also ich hätte da gerne ein Problem ...

    in den Specials möchte ich gerne einige Produkte über die Artikelnummer ausschließen.

    soweit so gut - aber der Smarty bzw. der Eintrag für product_model bleibt immer leer.

    {php}  echo "<br>";echo "<pre>";echo "Template Vars ----->  ";echo "<br>";  print_r ($this->get_template_vars());{/php}

    bringt dann folgendes für die Content - Daten:

       [language] => german

        [module_content] => Array
            (
               
    • => Array

                    (
                        [PRODUCTS_NAME] => 6 Flaschen zum Preis von 5 - 2011 XYZ- Alte Reben
                        [COUNT] => 0
                        [PRODUCTS_ID] => 155
                       [PRODUCTS_MODEL] =>
                        [PRODUCTS_EAN] =>
                        [PRODUCTS_MANUFACTURERS_MODEL] =>
                        [PRODUCTS_VPE] =>
                        [PRODUCTS_IMAGE] => images/product_images/thumbnail_images/155_0.jpg
                        [PRODUCTS_IMAGE_SIZE] => width="120" height="180"
                        [PRODUCTS_IMAGE_TITLE] => 6 Flaschen zum Preis von 5 - 2011 XYZ Alte Reben
                        [PRODUCTS_LINK] => http://localhost/shop_106s2/product_info.php?products_id=155
                        [PRODUCTS_PRICE] => Unser bisheriger Preis  95,40 EUR Jetzt nur 
                        .....
                        .....

    obwohl da bei vielen Artikeln was eingetragen ist.

    Der module_content wird ja über die /includes/classes/product.php zusammengesmartiet.

    und zwar hier ab Zeile 426:

    Code: PHP  [Auswählen]
        //products data array
        $productData = array ('PRODUCTS_NAME' => $array['products_name'],
                              'COUNT' => isset($array['ID']) ? $array['ID'] : 0,
                              'PRODUCTS_ID'=> $array['products_id'],
                              'PRODUCTS_MODEL'=> isset($array['products_model']) ? $array['products_model'] : '',
                              'PRODUCTS_EAN' => isset($array['products_ean']) ? $array['products_ean'] : '',
                              'PRODUCTS_MANUFACTURERS_MODEL' => isset($array['products_manufacturers_model']) ? $array['products_manufacturers_model'] : '',
                              'PRODUCTS_VPE' => $main->getVPEtext($array, $products_price['plain']),
                              'PRODUCTS_IMAGE' => $products_image,
                              'PRODUCTS_IMAGE_SIZE' => $img_attr,
                              'PRODUCTS_IMAGE_TITLE' => str_replace('"','',$array['products_name']),
                              'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])),
                              'PRODUCTS_PRICE' => $products_price['formated'],
                              'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate),
                              'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(),
    ......
    .......

                             );

    Ändere ich nun  :
    Code: PHP  [Auswählen]
    'PRODUCTS_MODEL'=> isset($array['products_model']) ? $array['products_model'] : '',
    in
    Code: PHP  [Auswählen]
    'PRODUCTS_MODEL'=> isset($array['products_model']) ? $array['products_model'] : 'tralala',

    wird products_model tatsächlich mit 'tralala' im specials-content gefüttert.

    Es liegt also wohl an diesem $array, das wo nix hat für mich.
    Ich find' da aber nix -  dieses "$array" und wie es gebastelt wird, entzieht sich meinem Verständnis

    Kann mir da jemand einen Tipp geben? Vielen Dank im Voraus

    LG
    ado

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

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Artikelnummer in Specials
    Antwort #1 am: 13. November 2014, 18:17:19
    Wäre es nicht geschickter die einfach im SQL Query für die specials auszuschließen?

    Code: SQL  [Auswählen]
    AND WHERE products_model NOT '0815';

    Oder

    Code: SQL  [Auswählen]
    AND WHERE products_id NOT BETWEEN 85 AND 100;

    ado

    • Fördermitglied
    • Beiträge: 195
    Re: Artikelnummer in Specials
    Antwort #2 am: 13. November 2014, 18:23:43
    Hallo Bonsai,

    es geht nicht um die Box - da hab ich das so gemacht.

    Es geht um /template/module/specials und der holt sich das in den Maincontent und die Datenquelle is da nunmal die product.php ($module_data)

    Trotzdem Danke

    LG
    ado

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Artikelnummer in Specials
    Antwort #3 am: 13. November 2014, 18:41:51
    Suche im kompletten Shopordner nach
    $product->buildDataArray

    Brachte unter anderem das Ergebnis:
    specials.php
    Line 73:   $module_content[] = $product->buildDataArray($specials);

    Das $array heißt also $specials und wird hier übergeben:
    Code: PHP  [Auswählen]
     function buildDataArray(&$array,$image='thumbnail') {

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Artikelnummer in Specials
    Antwort #4 am: 13. November 2014, 19:31:18
    Hallo Ado

    Vorschlag:

    Suche in ‘specials.php’ folgenden Code
    Code: PHP  [Auswählen]
    //BOF - DokuMan - 2010-01-26 - use Join on TABLE_PRODUCTS_DESCRIPTION & TABLE_SPECIALS
    $specials_query_raw = "select p.products_id,
                                  pd.products_name,
                                  p.products_price,
                                  p.products_tax_class_id,
                                  p.products_shippingtime,
                                  p.products_image,
                                  p.products_vpe_status,
                                  p.products_vpe_value,
                                  p.products_vpe,
                                  p.products_fsk18,
                                  s.expires_date,
                                  s.specials_new_products_price
                                 from
                                  "
    .TABLE_PRODUCTS." p
                                 left join "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                  on p.products_id = pd.products_id
                                 left join "
    .TABLE_SPECIALS." s
                                  on p.products_id = s.products_id
                                 where p.products_status = '1'
                                 and s.products_id = p.products_id
                                 and p.products_id = pd.products_id
                                 "
    .$group_check."
                                 "
    .$fsk_lock."
                                 and pd.language_id = '"
    .(int)$_SESSION['languages_id']."'
                                 and s.status = '1'
                                 order by s.specials_date_added DESC"
    ;
    //EOF - DokuMan - 2010-01-26 - use Join on TABLE_PRODUCTS_DESCRIPTION & TABLE_SPECIALS

    und ersetze ihn mit folgendem Code
    Code: PHP  [Auswählen]
    //BOF - DokuMan - 2010-01-26 - use Join on TABLE_PRODUCTS_DESCRIPTION & TABLE_SPECIALS
    $specials_query_raw = "select p.products_id,
                                  pd.products_name,
                                  p.products_price,
                                  p.products_model,
                                  p.products_tax_class_id,
                                  p.products_shippingtime,
                                  p.products_image,
                                  p.products_vpe_status,
                                  p.products_vpe_value,
                                  p.products_vpe,
                                  p.products_fsk18,
                                  s.expires_date,
                                  s.specials_new_products_price
                                 from
                                  "
    .TABLE_PRODUCTS." p
                                 left join "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                  on p.products_id = pd.products_id
                                 left join "
    .TABLE_SPECIALS." s
                                  on p.products_id = s.products_id
                                 where p.products_status = '1'
                                 and s.products_id = p.products_id
                                 and p.products_id = pd.products_id
                                 "
    .$group_check."
                                 "
    .$fsk_lock."
                                 and pd.language_id = '"
    .(int)$_SESSION['languages_id']."'
                                 and s.status = '1'
                                 order by s.specials_date_added DESC"
    ;
    //EOF - DokuMan - 2010-01-26 - use Join on TABLE_PRODUCTS_DESCRIPTION & TABLE_SPECIALS

    Danach seht dir in ‘templates/dein_template/module/specials.html’ folgende Smarty-Variable
    Code: PHP  [Auswählen]
    $module_data.PRODUCTS_MODEL

    innerhalb folgender Schleife zur Verfügung
    Code: PHP  [Auswählen]
    {foreach name=aussen item=module_data from=$module_content}

    {/foreach}

    Gruss
    Hanspeter

    ado

    • Fördermitglied
    • Beiträge: 195
    Re: Artikelnummer in Specials
    Antwort #5 am: 13. November 2014, 19:33:11
    Hallo Bonsai,

    das war's, Treffer! 1000 Dank!

    Warum das allerdings in der shoproot steht  und
    was das mit dem $array in der product.php auf sich hat ... da muss ich nochmal grübeln.....

    LG
    ado

    ado

    • Fördermitglied
    • Beiträge: 195
    Re: Artikelnummer in Specials
    Antwort #6 am: 13. November 2014, 19:40:09
    Hallo Hans Peter,

    auch Dir vielen Dank ...

    LG
    ado

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Artikelnummer in Specials
    Antwort #7 am: 14. November 2014, 09:24:00
    Du bastelst doch in der Funktion:
    Code: PHP  [Auswählen]
    function buildDataArray(&$array,$image='thumbnail') {
     .....
    }
    Da wird der Funktion das $array übergeben.

    In der /specials.php wird diese Funktion aufgerufen und das $array übergeben. Was gibt es da zu grübeln?  :-)
    6 Antworten
    5249 Aufrufe
    16. September 2011, 08:50:04 von rockmartin
    1 Antworten
    1655 Aufrufe
    11. Februar 2015, 14:06:09 von Bonsai
    5 Antworten
    3842 Aufrufe
    22. Mai 2011, 12:38:55 von Tomcraft
    2 Antworten
    3313 Aufrufe
    06. September 2009, 11:11:55 von Tomcraft