Trade Republic - Provisionsfrei Aktien handeln
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: Möglichkeit, neue Produkte überall und updatesicher zu markieren?

    DrEvil

    • Fördermitglied
    • Beiträge: 22
    Hallo, bin eben beim Update eines uralten Shops wieder mal über ein Problem gestolpert,
    dass in Forum zwar schon angesprochen, aber meiner Meinung nach noch nicht sauber gelöst wurde.

    Ich hätte gern die Möglichkeit, neue Artikel anders zu formatieren, und zwar bei Bedarf auch überall (Produktlisten / Bestseller / Cross-Selling / auch gekauft / Angebote) und zwar update-sicher. Die im Forum gefundenen Lösungen setzen aber immer auf das Zerfleischen der Grundprogrammierung des Shops.

    Da es aber nur um die Anpassung der Gestaltung geht, wäre es meiner Meinung nach sauberer, das Ganze bei Bedarf eben nur im Template (mit Smarty) zu lösen. Das wäre soweit auch kein Problem.
    Nur müsste dazu eben das DB-Feld "products_date_added" überall mit ausgegeben werden.

    Dann könnte man das im Template z. B. wie folgt lösen:
    Code: XML  [Auswählen]
    {if '-90 days'|date_format:"%Y-%m-%d" < $module_data.PRODUCTS_DATE_ADDED|substr:0:10}
    <div class="tagNeu"></div>
    {/if}

    Vielleicht ist es ja möglich, die oben vorgeschlagene Änderung (products_date_added mit Produktdaten auszugeben) in eines der nächsten Updates aufzunehmen. Für die Performance sehe ich da kein Problem.

    Vielen Dank.
    Nicolas

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

    Hetfield

    • modified Team
    • Beiträge: 937
    Die Ausgabe von products_date_added kannst du updatesicher über das auto_include System mit Hilfe von define_add_select lösen.

    MfG Hetfield  8)

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Im Zusammenhang mit define_add_select ist mir folgendes aufgefallen.

    In modified-shop_2.0.3.0-r10907_install/shoproot/includes/define_add_select.php ab Zeile 43 steht folgender Code,

    Code: PHP  [Auswählen]
      //PRODUCT OPTIONS
      $add_products_options_select = array();
      // used in /includes/modules/product_attributes.php - used for products options data
      define('ADD_PRODUCT_OPTIONS_SELECT', (count($add_products_options_select) ? rtrim(implode(', ', $add_products_options_select), ',').', ' : ''));
     
      //PRODUCT TAGS
      $add_tags_select = array();
      // used in /includes/modules/product_tags.php - used for product tags module_content
      define('ADD_TAGS_SELECT', (count($add_tags_select) ? rtrim(implode(', ', $add_tags_select), ',').', ' : ''));
     

    dieser Code wird aber so nicht funktionieren, denn bereits in Zeile 25 steht folgendes

    Code: PHP  [Auswählen]
      foreach(auto_include(DIR_FS_CATALOG.'includes/extra/define_add_select/','php') as $file) require ($file);
     

    und das bedeutet, dass alle erfolgten Zuweisungen an die Variablen $add_products_options_select und $add_tags_select in den inkludierten Dateien, durch diese Zuweisungen

    Code: PHP  [Auswählen]
    $add_products_options_select = array();
    $add_tags_select = array();
     

    gelöscht werden.

    Gruss
    Hanspeter

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Sehe ich anders, wenn ich die Datei von oben nach unten lese.

    Meine Sichtweise:
    1. Initialisierung der Arrays (Zeile 23)
    Code: PHP  [Auswählen]
    $add_select_product = array();
    2. einbinden der zusätzlichen Datei in includes/extra/define_add_select (Zeile 25)
    Code: PHP  [Auswählen]
    $add_select_product = array(p.test_feld);
    3. definieren der Konstanten durch define() und Erweiterung des Arrays (Zeile 37)
    Code: PHP  [Auswählen]
    define('ADD_SELECT_PRODUCT', array(p.vorhandenes_feld, p.test_feld));

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Hier der gesamte Code aus der Datei modified-shop_2.0.3.0-r10907_install/shoproot/includes/define_add_select.php

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: define_add_select.php 10837 2017-07-10 10:05:45Z web28 $

       modified eCommerce Shopsoftware
       http://www.modified-shop.org

       Copyright (c) 2009 - 2013 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/

    /*
    example for default.php
    can be used in extra/define_add_select/yourfile.php

    $add_select_default[] = 'p.products_extra_field';

    */

      $add_select_default = array();
      $add_select_search = array();
      $add_where_search = array();
      $add_select_product = array();
      $add_select_cart = array();
     
      foreach(auto_include(DIR_FS_CATALOG.'includes/extra/define_add_select/','php') as $file) require ($file);

      // used in /includes/modules/default.php - used for all product listings
      define('ADD_SELECT_DEFAULT', 'p.products_manufacturers_model, '.(count($add_select_default) ? rtrim(implode(', ', $add_select_default), ',').', ' : ''));
     
      // used in /advanced_search_result.php - used for search results
      define('ADD_SELECT_SEARCH', 'p.products_manufacturers_model, '.(count($add_select_search) ? rtrim(implode(', ', $add_select_search), ',').', ' : ''));
     
      // used in /includes/build_search_query - used for keyword search results
      define('ADD_WHERE_SEARCH', (count($add_where_search) ? rtrim(implode(', ', $add_where_search), ',').', ' : ''));
     
      // used in /includes/classes/product.php - used for products
      define('ADD_SELECT_PRODUCT', (count($add_select_product) ? rtrim(implode(', ', $add_select_product), ',').', ' : ''));
     
      // used in /includes/classes/shopping_cart.php -  used for cart details
      define('ADD_SELECT_CART', (count($add_select_cart) ? rtrim(implode(', ', $add_select_cart), ',').', ' : ''));
     
     
      //PRODUCT OPTIONS
      $add_products_options_select = array();
      // used in /includes/modules/product_attributes.php - used for products options data
      define('ADD_PRODUCT_OPTIONS_SELECT', (count($add_products_options_select) ? rtrim(implode(', ', $add_products_options_select), ',').', ' : ''));
     
      //PRODUCT TAGS
      $add_tags_select = array();
      // used in /includes/modules/product_tags.php - used for product tags module_content
      define('ADD_TAGS_SELECT', (count($add_tags_select) ? rtrim(implode(', ', $add_tags_select), ',').', ' : ''));
     
    ?>
     

    Es geht um $add_products_options_select bzw. $add_tags_select und nicht um $add_select_product, denn diese Variable wird ja vor

    Code: PHP  [Auswählen]
    foreach(auto_include(DIR_FS_CATALOG.'includes/extra/define_add_select/','php') as $file) require ($file);

    als leeres Array definiert.

    Gruss
    Hanspeter

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Nachtrag:

    [...]
    als leeres Array definiert.
    [...]

    Sollte natürlich "als leeres Array deklariert." heissen.

    Gruss
    Hanspeter

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Zitat
    Es geht um $add_products_options_select bzw. $add_tags_select und nicht um $add_select_product, denn diese Variable wird ja vor

    Da hast du natürlich recht, diese beiden Arrays, aus welchem Grund auch immer, werden erst nach dem Einbinden der zusätzlichen Datei deklariert.
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    2 Antworten
    2186 Aufrufe
    26. September 2015, 10:52:12 von karsta.de
    1 Antworten
    1117 Aufrufe
    25. Juni 2021, 08:27:50 von GTB
    7 Antworten
    4992 Aufrufe
    11. Juli 2012, 09:33:44 von piru
               
    anything