Product Listing Probleme

  • Tach Zusammen,

    habe mal wieder ein kleines Problem. Habe einen sehr umprogrammierten Shop am laufen und habe jetzt das Problem dass ich bei zusätzlichen Produktinformationen die tabelle products um drei Felder erweitert habe. In einem Feld wird eine URL abgespeichert und die anderen beiden Felder "füllen" sich dann, wenn das neue Product gespeichert oder aktualisiert wird. Soweit funktioniert auch alles.

    Jetzt habe ich aber im Frontend das Problem, das kurioserweise diese Felder, oder auch Werte, auf der Startseite bei der Produktauflistung mit angezeigt werden, aber geht man nun in eine Unterkategorie und lässt sich dort die Produkte auflisten werden diese Werte dort nicht angezeigt. Die array werte sind dort leer, also nicht "0" sondern "", aber auf der Startseite sind werte vorhanden.

    Habe dafür entsprechend die classes/product.php angepasst:

    PHP
    return array ('PRODUCTS_NAME' => (($options['p_name'] == 1)?htmlentities($array['products_name'], ENT_COMPAT,charset_mapper($_SESSION['language_charset'])):''),				'COUNT' => $count,				'COL_WIDTH' => $col_width,				'COL_CLASS' => $col_class,				'COL_SPECIAL' => $col_special_class,				'PRODUCTS_ID'=>$array['products_id'],				'PRODUCTS_VPE' => $vpe,				'PRODUCTS_IMAGE' => $img,				'PRODUCTS_IMAGE_DIMENSION' => cseo_get_img_size($this->productImage($array['products_image'], $image)),				'PRODUCTS_IMAGE_ALT' => ($array['products_img_alt']!=''?$array['products_img_alt']:htmlentities($array['products_name'], ENT_COMPAT,charset_mapper($_SESSION['language_charset']))),				'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])),				'PRODUCTS_PRICE' => $price,				'PRODUCTS_MANUFACTURER_IMG' => $manufacturer_image,				'PRODUCTS_MANUFACTURER_URL' => $manufacturer_url,				'PRODUCTS_MANUFACTURER_NAME' => $manufacturer_name,				'PRODUCTS_MODEL' => $model,				// 'PRODUCTS_MOUSE_OVER' => mouseOverJS($array['products_name'],$array['products_short_description'],$this->productImage($array['products_image'], 'thumbnail')),				'PRODUCTS_REVIEWS' => $reviews_img,				'PRODUCTS_STOCK_IMG' => $stock_img,				'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate),				'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(),				'PRODUCTS_BUTTON_BUY_NOW' => (($options['b_order']==1)?$buy_now:''),				'PRODUCTS_BUTTON_WISHLIST' => (($options['b_wishlist']==1)?$wishlist:''),				'PRODUCTS_BUTTON_DETAILS' => $button_details,				'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name,				'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image,				'PRODUCTS_EXPIRES' => $array['expires_date'],				'PRODUCTS_DATE' => xtc_date_short($array['products_date_available']),				'PRODUCTS_CATEGORY_URL'=>$array['cat_url'],				'PRODUCTS_DESCRIPTION' => $description,				'PRODUCTS_FSK18' => $array['products_fsk18'],				'PRODUCTS_ZOOVER_LINK' => $array['products_zoover_link'],  // Diese drei Werte sind es				'PRODUCTS_ZOOVER_COUNT' => $array['products_zoover_count'],// Diese drei Werte sind es				'PRODUCTS_ZOOVER_SCORE' => $array['products_zoover_score']);// Diese drei Werte sind es

    Hat jemand vielleicht eine Idee, warum diese auf der Startseite angezeigt werden aber nicht in unterkategorien? Zur information, es handelt sich dabei nicht um Cross-Selling Artikel der Aufruf in der Template Datei erfolgt in der If-Abfrage:

    Wäre wirklich für jede Hilfe dankbar!

    Greetz

  • Soo nach langer Sucherrei und leider ohne Hilfe aus diesem Forum hier die Lösung.

    Auf der Startseite werden "Top" Produkte anders geladen als in Kategorieauflistung. In Kategorieauflistung werden die Produktinformatione durch die Klasse "split_page_results.php" "beschnitten". Verantwortlich ist dafür der "Produkt Listen" Manager in den SEO-Tools aus dem Admin-Bereich.

    Nun musste ich hingehen und die Klasse produkt.php anpassen, denn das Objekt "product" wurde nur entsprechend der markierten Felder aus dem Produkt Listen Manager befüllt:

    anpassungen product.php:

    PHP
    $zooverLink_query = xtc_db_query("SELECT products_zoover_link FROM ".TABLE_PRODUCTS." WHERE products_id = '".$array['products_id']."'");		$zooverLink = xtc_db_fetch_array($zooverLink_query);		$zooverCount_query = xtc_db_query("SELECT products_zoover_count FROM ".TABLE_PRODUCTS." WHERE products_id = '".$array['products_id']."'");		$zooverCount = xtc_db_fetch_array($zooverCount_query);		$zooverScore_query = xtc_db_query("SELECT products_zoover_score FROM ".TABLE_PRODUCTS." WHERE products_id = '".$array['products_id']."'");		$zooverScore = xtc_db_fetch_array($zooverScore_query);

    Ich weiss das hätte man auch in einer Abfrage machen können, mach ich auch noch, Copy&Paste war aber schneller! :P

    Das Array was zurück gegeben werden muss sieht dann so aus:

    PHP
    return array ('PRODUCTS_NAME' => (($options['p_name'] == 1)?htmlentities($array['products_name'], ENT_COMPAT,charset_mapper($_SESSION['language_charset'])):''),				'COUNT' => $count,				'COL_WIDTH' => $col_width,				'COL_CLASS' => $col_class,				'COL_SPECIAL' => $col_special_class,				'PRODUCTS_ID'=>$array['products_id'],				'PRODUCTS_VPE' => $vpe,				'PRODUCTS_IMAGE' => $img,				'PRODUCTS_IMAGE_DIMENSION' => cseo_get_img_size($this->productImage($array['products_image'], $image)),				'PRODUCTS_IMAGE_ALT' => ($array['products_img_alt']!=''?$array['products_img_alt']:htmlentities($array['products_name'], ENT_COMPAT,charset_mapper($_SESSION['language_charset']))),				'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])),				'PRODUCTS_PRICE' => $price,				'PRODUCTS_MANUFACTURER_IMG' => $manufacturer_image,				'PRODUCTS_MANUFACTURER_URL' => $manufacturer_url,				'PRODUCTS_MANUFACTURER_NAME' => $manufacturer_name,				'PRODUCTS_MODEL' => $model,				// 'PRODUCTS_MOUSE_OVER' => mouseOverJS($array['products_name'],$array['products_short_description'],$this->productImage($array['products_image'], 'thumbnail')),				'PRODUCTS_REVIEWS' => $reviews_img,				'PRODUCTS_STOCK_IMG' => $stock_img,				'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate),				'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(),				'PRODUCTS_BUTTON_BUY_NOW' => (($options['b_order']==1)?$buy_now:''),				'PRODUCTS_BUTTON_WISHLIST' => (($options['b_wishlist']==1)?$wishlist:''),				'PRODUCTS_BUTTON_DETAILS' => $button_details,				'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name,				'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image,				'PRODUCTS_EXPIRES' => $array['expires_date'],				'PRODUCTS_DATE' => xtc_date_short($array['products_date_available']),				'PRODUCTS_CATEGORY_URL'=>$array['cat_url'],				'PRODUCTS_DESCRIPTION' => $description,				'PRODUCTS_FSK18' => $array['products_fsk18'],				'PRODUCTS_ZOOVER_LINK' => $zooverLink['products_zoover_link'],				'PRODUCTS_ZOOVER_COUNT' => $zooverCount['products_zoover_count'],				'PRODUCTS_ZOOVER_SCORE' => $zooverScore['products_zoover_score']);

    Der entsprechende aufruf für das ganze war in der includes/product_listings.php zu finden Zeile 110:

    PHP
    while ($listing = xtc_db_fetch_array($listing_query, true)) {
    		$rows ++;
    		$module_content[] = $product->buildDataArray($listing,'thumbnail',$list_name,$rows);
    	}

    Nur für die, die es interessiert! *gg*

    Greetz und gn8