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: Shopversion 2.0.0.0 - tpl_modified - immer gleiche Artikel auf der Startseite

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    ich habe das Problem, dass die Artikel Bilder auf der Startseite immer die gleichen sind, obwohl ich mehrere Artikel als "Top" eingestellt habe.
    in der Konfiguration (Maximum Werte) habe ich bei "Neue Artikel Anzeigemodul" 9 eingetragen, und bei "Neue Artikel Liste" 50, sowie bei "Anzahl der Tage für Neue Produkte" 365.
    Trotzdem werden auf der Startseite immer nur die 9 gleiche Artikel angezeigt.
    Bin dankbar für jeden Vorschlag.

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

    BiDoubleU

    • Fördermitglied
    • Beiträge: 295
    • Geschlecht:
    Guten Morgen,
    vielleicht Sortiernummern vergeben?
    LG
    BiDoubleU

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo BiDoubleU,

    danke für den Vorschlag, geht leider auch nicht, es bleiben immer nur die ersten 9 Artikel stehen.

    Schöne Grüße

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo,
    gibt es wirklich niemandem der mir bei dem Problem helfen kann?

    Guenter59

    • Viel Schreiber
    • Beiträge: 1.484
    Hi
    Konfiguration / "Anzahl der Tage für Neue Produkte"

    schon eingestellt?
    GMS

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo Guenter59,

    es ist alles so, wie in der Beschreibung oben eingestellt.

    LG

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Damit eine zufällige Auswahl angezeigt wird dürfen keine Artikel nach "Top" verlinkt sein deren Status aktiv ist, sonst werden nämlich nur diese in der immer gleichen Reihenfolge, limitiert durch die Werte welche unter "Neue Artikel Anzeigemodul" und "Anzahl der Tage für Neue Produkte" eingetragen sind ausgegeben.

    Nachtrag:
    Will man obiges Verhalten ändern muss man das Skript 'includes/extra/default/center_modules/new_products_default.php' bearbeiten.

    Gruss
    Hanspeter

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo hpzeller,

    ich habe kein Artikel extra verlinkt.
    Habe die Artikel nacheinander eingegeben und dabei auf "Auf Startseite zeigen" angeklickt.
    Die Artikel werden in der Reihenfolge, wann sie eingegeben sind, auf der Startseite angezeigt, aber eben nur die ersten Artikel.
    Ich gebe im Moment weitere Artikel ein, in der gleichen Weise, leider wechselt die Anzeige auf der Startseite nicht, es bleiben immer nur die zuerst eingegebene Artikel stehen.

    LG

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    ich habe das Problem, dass die Artikel Bilder auf der Startseite immer die gleichen sind, obwohl ich mehrere Artikel als "Top" eingestellt habe.
    [...]

    Es dürfen keine Artikel als "Top" eingestellt sein um eine zufällige Auswahl an neuen Artikel angezeigt zu erhalten.

    Gruss
    Hanspeter

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo hpzeller,
    [/size]
    [/size]sorry dass ich nerve, habe mich wahrscheinlich nicht verständlich ausgedrückt.
    [/size]Ich habe die Artikel nicht als "Top" eingestellt, sondern bei der Erstellung [/size]"Auf Startseite zeigen" angeklickt, wobei so eingestellte Artikel automatisch in der Top-Kategorie erscheinen.
    [/size]In gleichen Weise habe ich die Artikel in der Version 1.06 eingegeben, und dort hat alles problemlos funktioniert.
    [/size]Leider habe ich kein update auf 2.0.0.0 gemacht, sonder eine Neuinstallation gemacht, und jetzt habe ich das Problem.

    [/size]Gruss

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    ... sondern bei der Erstellung "Auf Startseite zeigen" angeklickt ...

    und genau das darfst du nicht machen, wenn du neue Produkte in einer zufälligen Reihenfolge auf der Startseite unter "Unsere TOP-Artikel" angezeigt haben willst.

    Hier kannst du es überprüfen -> https://demo.modified-shop.org/tags/modified-2.00/

    Gruss
    Hanspeter

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    ja aber dann wird unter allen neuen Produkten zufällig ausgewählt und nicht unter den Produkten die ich auf der Startseite haben möchte.
    Wozu sonst ist der Button "Auf Startseite zeigen" da, wenn ich nicht auswählen kann welche Produkte ich auf der Startseite sehen möchte?

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    ja aber dann wird unter allen neuen Produkten zufällig ausgewählt und nicht unter den Produkten die ich auf der Startseite haben möchte.
    Wozu sonst ist der Button "Auf Startseite zeigen" da, wenn ich nicht auswählen kann welche Produkte ich auf der Startseite sehen möchte?

    Der Button "Auf Startseite zeigen" ist dazu da, Artikel in einer bestimmten Reihenfolge welche man  unter "Sortierreihenfolge (Startseite)" festlegen kann zur Anzeige auf der Startseite zu bringen. Ich habe dieses Verhalten der Shopprogrammlogik nicht erfunden und finde sie auch ein bisschen unglücklich. Um das Verhalten zu ändern muss man den Code im Skript 'includes/extra/default/center_modules/new_products_default.php' abändern.

    Mein Vorschlag wäre folgendes Verhalten zum jetzigen noch dazu zu programmieren:

    Wenn die Anzahl der nach Top verlinkten Artikel die unter "Neue Artikel Anzeigemodul" eingetragene Anzahl übersteigt, sollen aus dem Pool aller nach Top verlinkten Artikel eine unter "Neue Artikel Anzeigemodul" eingetragene Anzahl zufällig ausgewählter Artikel angezeigt werden.

    Gruss
    Hanspeter

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo Hanspeter,

    erstmal vielen Dank für deine Mühe.
    Da ich nicht programmieren kann, werde ich mir überlegen ob ich es so wie jetzt belasse, oder die ganzen Top-Artikel lösche und die Startseiten Auswahl aus allen Produkten nehme.
    Mich verwundert nur dass es in der Version 1.06 alles problemlos gelaufen ist und in der neuen Version nicht mehr.
    Trotzdem danke nochmal.

    Schöne Grüsse

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Hallo Rocket3

    ich habe das Skript 'includes/extra/default/center_modules/new_products_default.php' wie folgt erweitert, kannst du testen wenn du willst, einfach den gesamten Code der 'new_products_default.php' mit dem hier geposteten Code ersetzen.

    Beschreibung der erweiterten Funktion:

    Wenn die Anzahl der nach "Top" verlinkten Artikel die unter "Neue Artikel Anzeigemodul" eingetragene Anzahl übersteigt, werden aus dem Pool aller nach Top verlinkten Artikel eine unter "Neue Artikel Anzeigemodul" eingetragene Anzahl zufällig ausgewählter Artikel angezeigt.

    Also wenn du z.B unter "Neue Artikel Anzeigemodul" 9 eingetragen hast und 10 oder mehr Artikel nach "Top" verlinkt sind, dann werden von diesen 10 oder mehr Artikel jeweils neuen in einer zufälligen Reihenfolge angezeigt, ist die nach "Top" verlinkte Anzahl aber kleiner oder gleich 9 werden sie in einer festen Reihenfolge angezeigt.

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: $

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

       Copyright (c) 2009 - 2016 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(new_products.php,v 1.33 2003/02/12); www.oscommerce.com
       (c) 2003 nextcommerce (new_products.php,v 1.9 2003/08/17); www.nextcommerce.org
       (c) 2006 xt:Commerce (new_products.php 1292 2005-10-07); www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

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



    $new_products_query = "SELECT p.*,
                                  pd.products_name,
                                  pd.products_short_description,
                                  m.manufacturers_name
                             FROM "
    .TABLE_PRODUCTS." p
                        LEFT JOIN "
    .TABLE_MANUFACTURERS." m
                                  ON p.manufacturers_id = m.manufacturers_id
                             JOIN "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                  ON p.products_id = pd.products_id
                                     AND pd.products_name <> ''
                                     AND pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                            WHERE p.products_startpage = 1
                              AND p.products_status = 1
                                  "
    .PRODUCTS_CONDITIONS_P."
                         GROUP BY p.products_id
                         ORDER BY p.products_startpage_sort ASC"
    ;

    $check_new_products_query = xtDBquery($new_products_query);
    if (!xtc_db_num_rows($check_new_products_query, true)) {
        $days = '';
        if (MAX_DISPLAY_NEW_PRODUCTS_DAYS != '0') {
            $date_new_products = date("Y-m-d", mktime(1, 1, 1, date("m"), date("d") - MAX_DISPLAY_NEW_PRODUCTS_DAYS, date("Y")));
            $days = " AND p.products_date_added > '".$date_new_products."' ";
        }
        $new_products_query = "SELECT p.*,
                                    pd.products_name,
                                    pd.products_short_description,
                                    m.manufacturers_name
                               FROM "
    .TABLE_PRODUCTS." p
                          LEFT JOIN "
    .TABLE_MANUFACTURERS." m
                                    ON p.manufacturers_id = m.manufacturers_id
                               JOIN "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                    ON p.products_id = pd.products_id
                                       AND pd.products_name <> ''
                                       AND pd.language_id = '"
    .(int)$_SESSION['languages_id']."'
                               JOIN "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c
                                    ON p.products_id = p2c.products_id
                               JOIN "
    .TABLE_CATEGORIES." c
                                    ON c.categories_id = p2c.categories_id
                                       AND c.categories_status = 1
                              WHERE p.products_status = 1
                                    "
    .PRODUCTS_CONDITIONS_P."
                                    "
    .$days."
                           GROUP BY p.products_id
                           ORDER BY MD5(CONCAT(p.products_id, CURRENT_TIMESTAMP))
                              LIMIT "
    .MAX_DISPLAY_NEW_PRODUCTS;
                             
      $module_content = array();
      $new_products_query = xtDBquery($new_products_query);
      while ($new_products = xtc_db_fetch_array($new_products_query, true)) {
          $module_content[] = $product->buildDataArray($new_products);
      }                          
                             
    } else {

      function shuffle_assoc($list) {
        if (!is_array($list)) return $list;

        $keys = array_keys($list);
        shuffle($keys);
        $random = array();
        foreach ($keys as $key)
          $random[$key] = $list[$key];

        return $random;
      }

      $module_content = array();
      $new_products_query = xtDBquery($new_products_query);
      while ($new_products = xtc_db_fetch_array($new_products_query, true)) {
          $module_content[] = $product->buildDataArray($new_products);
      }
     
      if (count($module_content) > MAX_DISPLAY_NEW_PRODUCTS)
        $module_content = array_slice(shuffle_assoc($module_content), 0, MAX_DISPLAY_NEW_PRODUCTS);
    }


    if (sizeof($module_content) >= 1) {

        $module_smarty = new Smarty;
        $module_smarty->assign('tpl_path', DIR_WS_BASE.'templates/'.CURRENT_TEMPLATE.'/');

        $module_smarty->assign('STARTPAGE', 'true');

        $module_smarty->assign('language', $_SESSION['language']);
        $module_smarty->assign('module_content', $module_content);

        // set cache ID
        if (!CacheCheck()) {
            $module_smarty->caching = 0;
            $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/new_products_default.html');
        } else {
            $module_smarty->caching = 1;
            $module_smarty->cache_lifetime = CACHE_LIFETIME;
            $module_smarty->cache_modified_check = CACHE_CHECK;
            $cache_id = md5('0'.$_SESSION['language'].$_SESSION['customers_status']['customers_status_name'].$_SESSION['currency']);
            $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/new_products_default.html', $cache_id);
        }
        $default_smarty->assign('MODULE_new_products', $module);
    }
     

    Gruss
    Hanspeter
               
    anything