2013-01-15 55 views
0

我正在使用Magento 1.7.0.2,並試圖在隨機product_list中顯示來自我的產品的自定義圖像。隨機產品列表中的自定義圖像屬性

首先,我將屬性添加到我的所有設置並設置一個佔位符圖像。 在數據庫中,我搜索了* used_in_product_listing *並將其設置爲1。

這是我Product_List_Random類:

class Mage_Catalog_Block_Product_List_Random extends Mage_Catalog_Block_Product_List 
{ 
    protected function _getProductCollection() 
    { 
     if (is_null($this->_productCollection)) { 
      $categoryID = $this->getCategoryId();    
      if($categoryID)   {    
       $category = new Mage_Catalog_Model_Category(); 
       $category->load($categoryID); 
       $collection = $category->getProductCollection(); 
      } else { 
       $collection = Mage::getResourceModel('catalog/product_collection'); 
      } 
      Mage::getModel('catalog/layer')->prepareProductCollection($collection); 
      $collection->addAttributeToSelect('*'); 
      $collection->getSelect()->order('rand()'); 
      $collection->addStoreFilter(); 
      $numProducts = $this->getNumProducts() ? $this->getNumProducts() : 0; 
      $collection->setPage(1, $numProducts)->load(); 

      $this->_productCollection = $collection; 
     } 
     return $this->_productCollection; 
    } 
} 

在這裏,我試圖添加$collection->addAttributeToSelect('*');得到在前端圖像的URL 。

這是我在前端到目前爲止已經試過:

$_productCollection=$this->getLoadedProductCollection(); 
foreach ($_productCollection as $_product): 

    echo $this->helper('catalog/image')->init($_product, 'specialprice_image')->resize(158, 270); 

    echo $_product->getResource()->getAttribute('specialprice_image')->getFrontend()->getValue($_product); 

    echo $_product->getAttributeText('specialprice_image'); 

    $product = Mage::getModel('catalog/product')->load($_product->getId()); ?> 
    echo $product->getAttributeText('specialprice_image'); 
endforeach; 

助手是給我的佔位符URL。其他方法沒有給我什麼。

我希望有人能幫助我解決這個問題。

+0

輔助方法不是給你你需要的,還是你只是想明白爲什麼其他人不工作? – ScottSB

+0

我已經上傳了一張圖片並在產品信息中進行了選擇。但幫手給我的URL佔位符,而不是所選圖像的URL。 – WolvDev

回答

0

現在的作品編輯Mage_Catalog_Block_Product_List_Random類

我只是刪除兩行代碼後:

$collection->addAttributeToSelect('*'); 
$collection->addStoreFilter(); 

的完整代碼:

class Mage_Catalog_Block_Product_List_Random extends Mage_Catalog_Block_Product_List 
{ 
    protected function _getProductCollection() 
    { 
     if (is_null($this->_productCollection)) { 
      $categoryID = $this->getCategoryId();    
      if($categoryID)   {    
       $category = new Mage_Catalog_Model_Category(); 
       $category->load($categoryID); 
       $collection = $category->getProductCollection(); 
      } else { 
       $collection = Mage::getResourceModel('catalog/product_collection'); 
      } 
      Mage::getModel('catalog/layer')->prepareProductCollection($collection); 
      $collection->getSelect()->order('rand()'); 
      $numProducts = $this->getNumProducts() ? $this->getNumProducts() : 0; 
      $collection->setPage(1, $numProducts)->load(); 

      $this->_productCollection = $collection; 
     } 
     return $this->_productCollection; 
    } 
} 

而在前端我使用這個代碼:

<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"> 
    <img src="<?php echo $this->helper('catalog/image')->init($_product, 'specialprice_image')->resize(158, 270); ?>" width="158" height="270" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" /> 
</a> 
相關問題