2

在 magento 中的特价产品上显示销售图标。仅在主页上,并非在所有页面中都显示。

我在 app/design/frontend/default/template/catalog/product/list.html
中从行号编辑的代码:95

<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"` class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />


<?php 
    // Get the Special Price
    $specialprice = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialPrice(); 
    // Get the Special Price FROM date
    $specialPriceFromDate = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialFromDate();
    // Get the Special Price TO date
    $specialPriceToDate = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialToDate();
    // Get Current date
    $today =  time();

    if ($specialprice):
        if($today >= strtotime( $specialPriceFromDate) && $today <= strtotime($specialPriceToDate) || $today >= strtotime( $specialPriceFromDate) && is_null($specialPriceToDate)):
?>
        <img src="../images/sale-icon.png" width="101" height="58" class="onsaleicon" />
<?php  
        endif;
    endif;
?>

</a>

此图标仅显示在主页中,而不显示在页面的所有产品列表中。如何在所有页面中显示?

请帮我解决这个问题

4

1 回答 1

3

这是因为您像这样插入图像:

<img src="../images/sale-icon.png" width="101" height="58" class="onsaleicon" />

应该放置图像skin/frontend/{interface}/{theme}/images/,您应该以这种方式引用它:

<img src="<?php echo $this->getSkinUrl('images/sale-icon.png');?>" width="101" height="58" class="onsaleicon" />

[编辑]
有点离题,但很高兴知道:不要Mage::getModel('catalog/product')->load($_product->getId())用于您需要的每个产品属性。它比您想象的更减慢页面速度。只需在后端编辑您需要的属性(特价,特价从和特价到),将字段设置Used in product listingYes,重新索引所有内容,您应该可以直接使用:

$specialprice = $_product->getSpecialPrice();
$specialPriceFromDate = $_product->getSpecialFromDate();
$specialPriceToDate = $_product->getSpecialToDate();
于 2013-07-11T10:56:19.740 回答