2013-07-10 35 views
0

我有一個顯示新產品的主頁,因此有startdate的產品。這些都在一個小部件中。 問題是他們只顯示名稱,價格,圖片等東西...在新產品上顯示3個特定屬性(使用startdate)

我想每個產品顯示3個屬性,所以用戶立即看到產品的一些規格,然後可以點擊進一步查看所有細節。

例如,臺式機應該有處理器系列,硬盤容量等 筆記本電腦應該顯示屏幕大小等

這可能嗎?問題是他們有不同的類別,因此只需將3個屬性添加到模板中就會導致問題。

謝謝。

回答

0

對於每個產品,您都可以檢查它是否屬於某個類別的成員,然後根據關聯數組中的列表檢查並顯示屬性。就像這樣:

$_productsCollection = $this->getLoadedProductCollection(); 
$_helper = $this->helper('catalog/output'); 

$cats = array( // keys are category IDs 
    1 => array('processor', 'disk', 'ram'), // attribute codes 
    2 => array('screen', 'weight', 'battery') 
); 

// loop product collection in widget 
foreach ($_productsCollection as $_product) { 
    // loop array of categories 
    foreach ($cat as $cat_id => $attributes) { 
    // loop array of attributes if the product is in this category 
    if (in_array($cat_id, $_product->getAvailableInCategories())) { 
     foreach ($attributes as $attribute) { 
     if ($attr = $_product->getData($attribute)) { 
      $resource = $_product->getResource(); 
      // markup and $helper to display image here 
      echo $resource->getAttribute($attribute)->getStoreLabel().': '.$attr; 
      // markup and getProductUrl() here, etc. 
     } 
     } 
    } 
    } 
} 

這沒有測試,但可能會給你一個想法。您需要添加一些代碼來處理產品可能是列表中多個類別成員的情況。

+0

感謝您的回覆。這確實是一個解決方案,但我想編寫一點清潔。因爲一切都需要硬編碼。我認爲最好的方法可能是創建一個帶有額外選項的模塊來顯示新產品。 – Wartodust

相關問題