Eintragsdetails ansehen

IDProjektKategorieSichtbarkeitZuletzt aktualisiert
0000176WEB-ShopFrontendöffentlich16.10.2010 18:54
Reporterxantiva Bearbeitung durch 
PrioritätnormalSchweregradkleinerer FehlerReproduzierbarnicht getestet
Status anerkanntLösungoffen 
Produktversion1.0.4 
Zielversion1.1 
Zusammenfassung0000176: Optimierung der Abfrage der boxes/whats_new.php im Template
Beschreibunghtt p ://ww w.ecombase.de/forum/index.php?showtopic=47822&st=10#

Zitat aus dem Forum:

so, das ding konnt ich mir so nicht anschauen, ich hab da mal unnötiges iterieren durch zu große resultsets, nen komplett ungenutzen aufruf von xtprice und den genauso unnötigen aufruf von xtc_get_products_name (der aber zumindest genutzt wurde) rausgeschmissen, den zufall auf die datenbankengine ausgelagert und das resultset auf 1 limitiert, ihm aber gleichzeitig die bedingung mitgegeben, das in der aktuellen sprache auch ein produktname vorhanden sein muss...
die bedingung, das es der maximalen anzeigedauer für neue produkte gehorcht hab ich auch noch mit reingenommen, kommt immer uncool wenn man über den link "neue produkte" dieser box dann auf ne leere seite kommt, dann lieber die box automatisch mit ausblenden wenn keine produkte die bedingung mehr erfüllen
das sollte die performance dieser box doch erheblich steigern.

Zusätzliche Informationen<?php

/* -----------------------------------------------------------------------------------------
   $Id: whats_new.php 1292 2005-10-07 16:10:55Z mz $

   XT-Commerce - community made shopping
   http ://w w.xt-commerce.com

   Copyright (c) 2003 XT-Commerce
   -----------------------------------------------------------------------------------------
   based on:
   (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
   (c) 2002-2003 osCommerce(whats_new.php,v 1.31 2003/02/10); www.oscommerce.com
   (c) 2003 nextcommerce (whats_new.php,v 1.12 2003/08/21); www.nextcommerce.org

   Released under the GNU General Public License
   -----------------------------------------------------------------------------------------
   Third Party contributions:
   Enable_Disable_Categories 1.3 Autor: Mikel Williams | mikel@ladykatcostumes.com
   Performance Mod Autor: Tordt Schmidt | info@smt-webservices.de

   Released under the GNU General Public License
   ---------------------------------------------------------------------------------------*/
$box_smarty = new smarty ( );
$box_smarty->assign ( 'tpl_path', 'templates/' . CURRENT_TEMPLATE . '/' );
$box_content = '';

require_once (DIR_FS_INC . 'xtc_get_products_name.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 ";
}
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 . "' ";
}

$sql = "SELECT DISTINCT
               p.products_id,
               p.products_image,
               p.products_tax_class_id,
               p.products_vpe,
                       p.products_vpe_status,
                       p.products_vpe_value,
                 p.products_price,
               pd.products_name
            FROM " . TABLE_PRODUCTS . " p,
                        " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c,
                        " . TABLE_CATEGORIES . " c,
                        " . TABLE_PRODUCTS_DESCRIPTION . " pd
          WHERE p.products_status=1
          AND pd.products_id=p.products_id
          AND pd.language_id=" . $_SESSION ['languages_id'] . "
          AND pd.products_name!=''
          AND p.products_id = p2c.products_id
          AND p.products_id !='" . ( int ) $_GET ['products_id'] . "'
          AND c.categories_id = p2c.categories_id
          " . $group_check . "
          " . $fsk_lock . "
          ".$days."
          AND c.categories_status=1
          ORDER BY RAND(),
                    p.products_date_added DESC
          LIMIT 0,1";

$res = xtc_db_query ( $sql );

if ($random_product = mysql_fetch_assoc ( $res )) {
    $box_smarty->assign ( 'box_content', $product->buildDataArray ( $random_product ) );
    $box_smarty->assign ( 'LINK_NEW_PRODUCTS', xtc_href_link ( FILENAME_PRODUCTS_NEW ) );
    $box_smarty->assign ( 'language', $_SESSION ['language'] );
    // set cache ID
    if (! CacheCheck ()) {
        $box_smarty->caching = 0;
        $box_whats_new = $box_smarty->fetch ( CURRENT_TEMPLATE . '/boxes/box_whatsnew.html' );
    } else {
        $box_smarty->caching = 1;
        $box_smarty->cache_lifetime = CACHE_LIFETIME;
        $box_smarty->cache_modified_check = CACHE_CHECK;
        $cache_id = $_SESSION ['language'] . $random_product ['products_id'] . $_SESSION ['customers_status'] ['customers_status_name'];
        $box_whats_new = $box_smarty->fetch ( CURRENT_TEMPLATE . '/boxes/box_whatsnew.html', $cache_id );
    }
    
    $smarty->assign ( 'box_WHATSNEW', $box_whats_new );

}

?>
TagsKeine Tags zugeordnet.

Notizen / Dateien

Zu diesem Eintrag gibt es keine Notizen.

Eintrags-Historie

Änderungsdatum Benutzername Feld Änderung
17.10.2009 20:09 xantiva Neuer Eintrag
17.10.2009 20:10 xantiva Beschreibung aktualisiert
17.10.2009 20:10 xantiva Zusätzliche Informationen aktualisiert
17.10.2009 20:10 xantiva Status neu => anerkannt
16.10.2010 18:54 xantiva Beschreibung aktualisiert
16.10.2010 18:54 xantiva Zusätzliche Informationen aktualisiert