我相信很多人都有遇到过magento如何在产品页添加下一件,上一件产品链接的问题,那么该如何解决呢?
magento产品详细页添加下一件,上一件产品链接 ;网上商城在产品详细页放上一件和下一件产品的链接在不少地方看到过,AW出品的收费插件卖89美元,不太值啊!
自己写了一个,在这免费与大家分享;总共就两个文件,一个php文件和一个phtml文件,刚好组成一个block。
php文件的代码:
class Mage_Catalog_Block_Product_Pnnavigation extends Mage_Catalog_Block_Product_Abstract
{
public function getUponProduct($direction)
{
$visibility = array(
Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
);
$_product = Mage::getResourceModel(‘reports/product_collection’)
->addAttributeToSelect(‘*’)
->addAttributeToFilter(‘visibility’, $visibility)
->addCategoryFilter(Mage::registry(‘current_category’));
if($direction==’previous’){
$_product->getSelect()->where(‘product_idgetProduct()->getId());
}elseif($direction==’next’){
$_product->setOrder(‘product_id’, ‘asc’);
$_product->getSelect()->where(‘product_id>?’,$this->getProduct()->getId());
}
$_product = $_product->getFirstItem();
return $_product;
}
public function getProduct()
{
if (!Mage::registry(‘product’) && $this->getProductId()) {
$product = Mage::getModel(‘catalog/product’)->load($this->getProductId());
Mage::register(‘product’, $product);
}
return Mage::registry(‘product’);
}
}
phtml的代码:
getUponProduct(‘previous’)->getId()):?>
getUponProduct(‘next’)->getProductUrl();?>”>下一个
php文件放在app/code/local/Mage/Catalog/Block/Product目录下,phtml文件放在app/design/frontend/default/default/template/catalog/product/view目录下,当然具体位置取决于你自己的模板。
然后在catalog.xml中添加这个block到产品详细页
?
1
2
3
4
5
6
7
8
9
10
|
<!–
Product view
–>
<catalog_product_view translate="label">
<label>Catalog Product View (Any)</label>
…………………………………………………………………………
<reference name="content">
<block type="catalog/product_view" name="product.info"template="catalog/product/view.phtml">
<block type="catalog/product_pnnavigation" name="pnnavigation" template="catalog/product/view/previousnext.phtml"/>
………………………………………………………………………………………………
|
最后打开产品详细页的view.phtml,调用这个block,这里把它放在产品名的下面
?
1
2
3
4
5
|
<div class="product-shop">
<div class="product-name">
<h1><?php echo $_helper->productAttribute($_product, $_product->getName(),’name’) ?></h1>
</div>
<?php echo $this->getChildHtml(‘pnnavigation’) ?>
|
(责任编辑:好模板) |