Das gleiche habe ich auch. Deswegen hab ich mich grad hingesetzt und mir den Code genauer angeschaut.
Vom Prinzip her ist bereits alles bestens gegeben. An dieser Stelle ein großes Lob an die Entwickler.
Also was ich mit gegeben meine ist, dass
alles angeschauten Artikel zwischengespeichert werden und ein zufälliges ausgegeben wird.
Jetzt muss der Code nur noch so modifiziert werden, dass bspw. die letzten fünf Artikel abgefragt werden und an die Box geschickt werden.
Ich hab dazu die SQL-Abfrage in eine Zählschleife gepackt und anstelle der Zufallszahl, den letzten Artikel gewählt. Dieser wird, solange die For-Schleife läuft, runtergezählt.
for($i=0;$i<=4;$i++){
$random_query = "select p.products_id,
pd.products_name,
p.products_price,
p.products_tax_class_id,
p.products_image,
p2c.categories_id,
p.products_vpe,
p.products_vpe_status,
p.products_vpe_value,
cd.categories_name
from
" . TABLE_PRODUCTS . " p,
" . TABLE_PRODUCTS_DESCRIPTION . " pd,
" . TABLE_PRODUCTS_TO_CATEGORIES . " p2c,
" . TABLE_CATEGORIES_DESCRIPTION . " cd
where p.products_status = '1'
and p.products_id = '".(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
and pd.products_id = '".(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
and p2c.products_id = '".(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
and pd.language_id = '" . $_SESSION['languages_id'] . "'
and cd.categories_id = p2c.categories_id
".$group_check."
".$fsk_lock."
and cd.language_id = '" . $_SESSION['languages_id'] . "'";
$random_query = xtDBquery($random_query);
$random_product = xtc_db_fetch_array($random_query, true);
$product_array[$random_last_viewed]['product'] = $random_product;
//BOF - Dokuman - 2010-01-29 - category name selection included in one select statement
/*
// get category name
$categories_query = xtDBquery("select
cd.categories_name
from ".TABLE_CATEGORIES_DESCRIPTION." cd,
".TABLE_CATEGORIES." c,
" . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
WHERE c.categories_id=cd.categories_id
and p2c.products_id = '".(int) $_SESSION['tracking']['products_history'][$random_last_viewed]."'
and cd.language_id='".(int) $_SESSION['languages_id']."'");
$categories_data = xtc_db_fetch_array($categories_query,true);
*/
//EOF - Dokuman - 2010-01-29 - category name selection included in one select statement
$random_products_price = $xtPrice->xtcGetPrice($random_product['products_id'], $format = true, 1, $random_product['products_tax_class_id'], $random_product['products_price']);
$product_array[$random_last_viewed]['products_price'] = $random_products_price;
$category_path = xtc_get_path($random_product['categories_id']);
$product_array[$random_last_viewed]['category_path'] = $category_path;
$random_last_viewed--;
}
Jetzt komme ich aber leider auch bei der Übergabe der Parameter nicht weiter.
Hab dazu in der Bestsellers-Box 'nen Codeschnipsel gefunden, der helfen kann. Ich weiss allerdings nicht wie wirklich wie das ganze dann bei der "Zuletzt angesehen"-Box aussehen müsste.
$best_sellers_query = xtDBquery
($best_sellers_query); if (xtc_db_num_rows
($best_sellers_query, true) >= MIN_DISPLAY_BESTSELLERS
) { $rows = 0; $box_content = array (); while ($best_sellers = xtc_db_fetch_array
($best_sellers_query, true)) { $rows ++; $image = ''; $best_sellers = array_merge($best_sellers, array ('ID' => xtc_row_number_format
($rows))); $box_content[] = $product->buildDataArray($best_sellers); } } $box_smarty->assign('box_content', $box_content); Bin für jede Hilfe und Optimierung dankbar.
PS: Das Thema ist doch gar nicht so alt, wieso kommt folgende Meldung?
Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Sollten Sie Ihrer Antwort nicht sicher sein, starten Sie ein neues Thema.