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: Bestseller auf Startseite als Modul

    agepilar

    • Neu im Forum
    • Beiträge: 16
    • Geschlecht:
    Bestseller auf Startseite als Modul
    am: 16. Dezember 2012, 10:34:22
    Hallo liebe Community,

    ich bin Ralph und möchte gern den Inhalt der Bestseller Box als Modul im Shop einpflegen und dann auf der Startseite anzeigen lassen, bekomme aber leider keinen Inhalt angezeigt.

    Was ich gemacht habe:

    1. in die filenames.php eingefügt:
    Code: PHP  [Auswählen]
    define('FILENAME_BESTSELLER', 'bestseller.php');

    2. in die center_modules.php eingefügt:
    Code: PHP  [Auswählen]
      require(DIR_WS_MODULES . FILENAME_BESTSELLER);

    3.bestseller.html erstellt (kopie von new_products.html)  und in "mein Template/module" kopiert

    4.bestseller.php erstellt und in includes/modules kopiert:

    Hier bin ich mir sehr unsicher. Habe die specials.php genommen (von http://www.nicson.de/2011/03/specials-auf-der-startseite/), unter dem Namen "bestsellers.php" abgespeichgert und entsprechend alles was mit "specials" zu tun hatte gegen "bestseller" ausgetauscht. Anschließend aus der best_sellers.php aus "mein Template/source/boxes den Abschnitt mit den $best_sellers_query rauskopiert und in die bestseller.php eingefügt. Irgendwie scheint`s leider nicht so hinzuhaun, wie ich es mit gedacht habe.

    hier mal meine bestseller.php:
    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: specials.php 1292 2005-10-07 16:10:55Z mz $  

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))
       
       Author of this File Nicson www.nicson.de
       
       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(specials.php,v 1.47 2003/05/27); www.oscommerce.com
       (c) 2003      nextcommerce (specials.php,v 1.12 2003/08/17); www.nextcommerce.org

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


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

    // <neu> extended product_listing 07-04-25 SCL
    $module_smarty->assign('FORM_ACTION', xtc_draw_form('cart_quantity', xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('action')) . 'action=listing_add_product')));
    $module_smarty->assign('FORM_END','</form>');
    // </neu>

    require_once (DIR_FS_INC.'xtc_get_short_description.inc.php');


    //fsk18 lock
    $fsk_lock = '';
    if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
            $fsk_lock = ' and p.products_fsk18!=1';
    }
    if (GROUP_CHECK == 'true') {
            $group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
    }

    $bestseller_query = "select distinct
                                                   p.products_id,
                                                   p.products_price,
                                                   p.products_tax_class_id,
                                                   p.products_image,
                                                   p.products_vpe,
                                                   p.products_vpe_status,
                                                   p.products_vpe_value,
                                                   pd.products_name,
                                                   pd.products_short_description
                                                   from "
    .TABLE_PRODUCTS." p,
                                                   "
    .TABLE_PRODUCTS_DESCRIPTION." pd,
                                                   "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c,
                                                   "
    .TABLE_CATEGORIES." c
                                                   where p.products_status = '1'
                                                   and c.categories_status = '1'
                                                   and p.products_ordered > 0
                                                   and p.products_id = pd.products_id
                                                   and pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                                   and p.products_id = p2c.products_id
                                                   "
    .$group_check."
                                                   "
    .$fsk_lock."
                                                   and p2c.categories_id = c.categories_id
                                                   and (c.categories_id = '"
    . (int)$current_category_id . "' or c.parent_id = '" . (int)$current_category_id . "')
                                                   order by p.products_ordered desc
                                                   limit "
    .MAX_DISPLAY_BESTSELLERS;
                                   


    $module_content = array ();
    $row = 0;

    $bestseller_query = xtc_db_query($bestseller_query);

    while ($bestseller = xtc_db_fetch_array($bestseller_query, true)) {
            $module_content[] = $product->buildDataArray($bestseller);
    }

    if (sizeof($module_content) >= 1) {
            $module_smarty->assign('language', $_SESSION['language']);
            $module_smarty->assign('module_content', $module_content);
           
    if (!CacheCheck()) {
            $module_smarty->caching = 0;   
            $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/bestseller.html');
            } else  {
        $module_smarty->caching = 1;
                    $module_smarty->cache_lifetime = CACHE_LIFETIME;
                    $module_smarty->cache_modified_check = CACHE_CHECK;
                    $cache_id = $_SESSION['language'].$_SESSION['customers_status']['customers_status_name'].$_SESSION['currency'];
                    $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/bestseller.html', $cache_id);
                    }

    $default_smarty->assign('MODULE_bestseller', $module);
    }
    ?>

    5. in die main_content.html eingefügt:
    Code: PHP  [Auswählen]
    {$MODULE_bestseller}

    Hat irgendjemand eine Idee wo der (Denk)Fehler liegt?

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

    max007

    • Fördermitglied
    • Beiträge: 10
    Re: Bestseller auf Startseite als Modul
    Antwort #1 am: 17. Dezember 2012, 08:42:04
    Hallo Ralph,

    gute Idee, würde ich auch gern einbauen, vielleicht weis jemand was hierzu. wenn ich dazu komme
    werde ich das auch mal probieren.

    Gruß,
    Max :thumbs:

    agepilar

    • Neu im Forum
    • Beiträge: 16
    • Geschlecht:
    Re: Bestseller auf Startseite als Modul
    Antwort #2 am: 23. Dezember 2012, 10:26:39
    Ich bin leider noch nicht weitergekommen, hier wird das Thema ja auch schon behandelt:
    http://www.modified-shop.org/forum/index.php?topic=17342.0

    Jetzt hab ich wieder die Bestseller als Box auf der Startseite, was nicht ganz befriedigend ist. HIntergrund war nämlich, dass in der box_best_sellers.html
    Code: PHP  [Auswählen]
           
    {$box_data.PRODUCTS_ADD_QTY}
    {$box_data.PRODUCTS_ADD_CART_BUTTON}

    nicht funktioniert. Es wird kein "Kaufen" -Button und kein Mengenangabe-Feld ausgegeben.

    In der specials.html (als Modul) dagegen klappt das einwandfrei mit:
    Code: PHP  [Auswählen]
    {$module_data.PRODUCTS_ADD_QTY}
    {$module_data.PRODUCTS_ADD_CART_BUTTON}

    Vielleicht hat ja jemand dahingehend noch eine Idee?

    WranglerTJ

    • Neu im Forum
    • Beiträge: 2
    Re: Bestseller auf Startseite als Modul
    Antwort #3 am: 14. Januar 2013, 18:02:05
    In der Datei /dein-template/module/main_content.html fehlt noch der Module Eintrag:

    Code: PHP  [Auswählen]
    {if $MODULE_bestseller}
    <div>{$MODULE_bestseller}</div>
    {/if}
     

    Ach habe ich ganz übersehen, hast Du ja gemacht.
    Also bei mir funktioniert es.

    agepilar

    • Neu im Forum
    • Beiträge: 16
    • Geschlecht:
    Re: Bestseller auf Startseite als Modul
    Antwort #4 am: 20. Januar 2013, 17:46:04
    echt? krass, dass das bei dir funzt wranglerTJ! Hab`s nu auch endlich hinbekommen :)

    So geht`s bei mir:

    1. in der \includes\filenames.php folgendes ergänzen:
    Code: SQL  [Auswählen]
    define('FILENAME_BESTSELLER', 'bestseller.php');

    2. in der  \includes\center_modules.php folgendes ergänzen:
    Code: SQL  [Auswählen]
      require(DIR_WS_MODULES . FILENAME_BESTSELLER);

    3. die  \includes\modules\new_products.php kopieren und wieder einfügen, anschließend umbenennen in:
    "bestseller.php" und den bestehenden mit folgendem code ersetzen:
    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: new_products.php 1571 2010-12-10 12:38:05Z dokuman $

       modified eCommerce Shopsoftware - community made shopping
       http://www.modified-shop.org

       Copyright (c) 2010 modified eCommerce Shopsoftware
       -----------------------------------------------------------------------------------------
       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 Forenregeln beachten! ))

       Released under the GNU General Public License
       -----------------------------------------------------------------------------------------
       Third Party contributions:
       Enable_Disable_Categories 1.3                Autor: Mikel Williams | mikel@ladykatcostumes.com

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


    $module_smarty = new Smarty;

    $module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
    // <neu> extended product_listing 07-04-25 SCL
    $module_smarty->assign('FORM_ACTION', xtc_draw_form ('cart_quantity', xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('action')) . 'action=listing_add_product')));
    $module_smarty->assign('FORM_END','</form>');
    // </neu>

    require_once (DIR_FS_INC.'xtc_row_number_format.inc.php');

    //fsk18 lock
    $fsk_lock = '';
    if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
      $fsk_lock = ' and p.products_fsk18!=1';
    }

    $group_check = '';
    if (GROUP_CHECK == 'true') {
      $group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
    }

    if ((!isset ($new_products_category_id)) || ($new_products_category_id > 0)) {
                                                                                     
            $new_products_query = "SELECT * FROM
                                                    "
    .TABLE_PRODUCTS." p,
                                                    "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                                    WHERE p.products_id=pd.products_id
                                                    and p.products_status = '1'                                            
                                                    and p.products_ordered > 0
                                                    "
    .$group_check." ".$fsk_lock."
                            AND pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                            order by p.products_ordered DESC, pd.products_name
                                                    limit "
    .MAX_DISPLAY_BESTSELLERS;
    }
     
    $new_products_query = xtDBquery($new_products_query);
    if (xtc_db_num_rows($new_products_query, true) >= MIN_DISPLAY_BESTSELLERS) {
    $rows = 0;
    $module_content = array ();
    while ($new_products = xtc_db_fetch_array($new_products_query, true)) {
                                    $rows ++;
                                    $new_products = array_merge($new_products, array ('ID' => xtc_row_number_format($rows)));
                                    $module_content[] = $product->buildDataArray($new_products);
                                    if ($rows >= 100) // break against endless loop
                                            break;
                                    }
    }
    if (count($module_content) > 0) {
        $new_products = '';
            if (sizeof($module_content) >= 1) {
            $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/bestseller.html');
            /*
        if ((!isset ($new_products_category_id)) || ($new_products_category_id == '0')) {
          $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/bestseller.html');
        } else {
          $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/bestseller.html');
        }
            */

      } else {
        $module_smarty->caching = 1;
        $module_smarty->cache_lifetime = CACHE_LIFETIME;
        $module_smarty->cache_modified_check = CACHE_CHECK;
        $cache_id = $new_products_category_id.$_SESSION['language'].$_SESSION['customers_status']['customers_status_name'].$_SESSION['currency'];
        $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/bestseller.html', $cache_id);
            /*
            if ((!isset ($new_products_category_id)) || ($new_products_category_id == '0')) {
          $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/bestseller.html', $cache_id);
        } else {
          $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/bestseller.html', $cache_id);
        }
            */

      }
      $default_smarty->assign('MODULE_bestseller', $module);
    }
    }
    ?>

    4. in der \deinTemplate\module\main_content.html folgendes ergänzen:
    Code: PHP  [Auswählen]
    {$MODULE_bestseller}

    5. die \deinTemplate\module\new_products.html kopieren, einfügen und in "bestseller.html" umbenennen
    anschließend noch
    Code: PHP  [Auswählen]
    TOP {$module_data.COUNT}:
    vor
    Code: PHP  [Auswählen]
    <a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a>
    setzen

    scarli

    • Neu im Forum
    • Beiträge: 6
    • Geschlecht:
    Re: Bestseller auf Startseite als Modul
    Antwort #5 am: 09. April 2013, 11:13:19
    Hallo Zusammen ich habe auch mal probiert ,die Bestseller in den Content zu bekommen.

    Wenn ich die erste bestseller.php von agepillar verbaue, bekomme ich einen Fehler...
    wenn ich probiere die Seite direkt aufzurufen:
    domain/shop/includes/modules/bestseller.php
    Fehlermeldung:
    Fatal error: Class 'Smarty' not found in /var/www/vhosts/domain/httpdocs/shop/includes/modules/bestseller.php on line 20

    Wenn ich die untere bestseller.php verwende wird der shop komplett weiss und ist nimmer erreichbar.

    Über sachdienliche Hinweise würde ich mich freuen.

    greetz

    Weinkrähe

    • Fördermitglied
    • Beiträge: 83
    • Geschlecht:
    Re: Bestseller auf Startseite als Modul
    Antwort #6 am: 10. September 2013, 17:14:21
    Hallo zusammen,

    wie kann ich das jetzt noch als eigene Seite hinbekommen. Ich würde die Bestseller gerne so aufrufen wie auch die neuen Artikel www.Deine-Domain.de/products_new.php. Mit www.Deine-Domain.de/bestseller.php gehts noch nicht.

    Viele Grüße

    Buddha

    Schwarz Angler

    • Neu im Forum
    • Beiträge: 13
    Re: Bestseller auf Startseite als Modul
    Antwort #7 am: 21. November 2015, 14:02:18
    ich hab das mal für mich auf 1.06 zusammengeschrieben:
    (eher zusammenkopiert ;) )

    das Ganze kann über
       www.domain.xyz/bestseller.php aufgerufen werden

    oder

    als Modul durch Einfügen von
       {$MODULE_bestseller}
    in z-B.
       /templates/xty5/module/categorie_listing/categorie_listing.html
    oder
       /templates/xty5/module/main_content.html
    eingebunden werden.

    Artikel in ausgeblendeten Kategorien (wie zB Advent beim Adventskalender) werden nicht berücksichtigt.

    für Anregungen und Hinweise auf evtl. Fehler wäre ich dankbar - ich üb noch ;)

    Gruß Carsten

    Schwarz Angler

    • Neu im Forum
    • Beiträge: 13
    Re: Bestseller auf Startseite als Modul
    Antwort #8 am: 21. November 2015, 15:04:50
    jetzt sollte man noch die SQL Abfrage in
      /templates/xtc5/source/boxes/best_sellers.php
    anpassen, da sonst die Box andere Bestseller als der content anzeigen könnte.

    demoncleaner

    • Fördermitglied
    • Beiträge: 482
    Re: Bestseller auf Startseite als Modul
    Antwort #9 am: 26. Februar 2016, 20:38:14
    Super Sache. Habs gerade verbaut. Ich habe allerdings die query in der bestseller.php noch um

    Code: PHP  [Auswählen]
      AND c.parent_id = '".$bestseller_category_id."'

    ergänzt, damit auch immer nur die Bestseller der jeweiligen Kategorie angezeigt werden.
    Damit sind dann auch Box und Content-Bereich identisch.