自己写的magento产品详细页添加下一件,上一件产品链接

简介:

网上商城在产品详细页放上一件和下一件产品的链接在不少地方看到过,AW出品的收费插件卖89美元,不太值啊,自己写一个吧,总共就两个文件,一个php文件和一个phtml文件,刚好组成一个block。

php文件的代码:

<?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_id<?',$this->getProduct()->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的代码:

<div> <?php if($this->getUponProduct('previous')->getId()):?> <a href="<?php echo $this->getUponProduct('previous')->getProductUrl();?>">上一个</a> <?php endif;?> <?php if($this->getUponProduct('next')->getId()):?> <a href="<?php echo $this->getUponProduct('next')->getProductUrl();?>">下一个</a> <?php endif;?> </div> 

 

php文件放在app/code/local/Mage/Catalog/Block/Product目录下,phtml文件放在app/design/frontend/default/default/template/catalog/product/view目录下,当然具体位置取决于你自己的模板。

 

然后在catalog.xml中添加这个block到产品详细页

<!-- 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,这里我把它放在产品名的下面

<div class="product-shop"> <div class="product-name"> <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1> </div> <?php echo $this->getChildHtml('pnnavigation') ?> …………………………………………………………………… 

 

OK,现在可以在前台看效果了,至于前台显示要怎么弄的好看就是个人自己的事了。

 

说明:我这里的上一个和下一个是指在当前分类下,相对于当前产品的上一个和下一个产品,以产品ID为顺序,当当前不存在上一个或下一个时(比如该分类的第一个或最后一个产品),即不显示对应的链接(比如第一个产品不显示“上一个”链接)。AW的插件貌似可以从最后一个再返回第一个,这个也不难,不过留给下个版本吧,嘿嘿。

 

目录
相关文章
|
6月前
用织梦实现一个从零到可以正常访问的网站--第三章
用织梦实现一个从零到可以正常访问的网站--第三章
35 0
|
6月前
|
移动开发 前端开发 JavaScript
用织梦实现一个从零到可以正常访问的网站--第二章
用织梦实现一个从零到可以正常访问的网站--第二章
70 0
|
搜索推荐 数据挖掘
伙伴云「页面」上线!网站、博客、资源库、文档、周报,拖拽即刻实现
一年来,伙伴云收到了许多用户对于仪表盘升级的期待,以及对新功能规划的询问。经过千百次调研、开发、内测,我们开发了一款页面构建引擎,Ta既提供了灵活的可定制性,也不像网页设计器晦涩难懂,且具有丰富的数据展现能力。
166 0
|
4月前
|
运维 小程序 前端开发
好的商业模式-----小程序定制资料,加一张好看的海报,在推广中就可以找到用户中了,云服务部署收5000,部署是一种服务,定制化,游戏开发创者,仲裁劳务会剪视频好,提供服务,想增加一些新功能收费,会说
好的商业模式-----小程序定制资料,加一张好看的海报,在推广中就可以找到用户中了,云服务部署收5000,部署是一种服务,定制化,游戏开发创者,仲裁劳务会剪视频好,提供服务,想增加一些新功能收费,会说
|
6月前
|
JavaScript Java 测试技术
基于微信小程序的外卖点餐系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的外卖点餐系统的设计与实现(源码+lw+部署文档+讲解等)
|
6月前
|
运维 搜索推荐 数据安全/隐私保护
如何巧用阿里云搭建公司网站?
现在是互联网时代,很多企业都注重互联网,通过做公司网站进行展示及营销。公司网站好处有以下几点:
136 0
|
6月前
|
域名解析 JavaScript 前端开发
用织梦实现一个从零到可以正常访问的网站--第一章
用织梦实现一个从零到可以正常访问的网站--第一章
48 0
|
6月前
|
前端开发 JavaScript NoSQL
假如你是一名专业的程序员,你将如何最快开发一个在线网站,并给出相应的代码及部署文档
假如你是一名专业的程序员,你将如何最快开发一个在线网站,并给出相应的代码及部署文档
54 0
|
安全 区块链 数据安全/隐私保护
dapp互助预约排单二二复制/三三复制大小公排项目系统开发稳定版/玩法详情/指南教程/规则方案/需求设计/案例源码
能合约在代码中加入了许多安全校验机制,比如对输入参数范围的检查、防止重入攻击的修复等。并且智能合约在运行过程中记录每一笔交易以及合约状态的变化,确保所有的交易和状态都是经过验证和授权的,不会受到篡改。
|
BI C++ Windows
去年创建的个人网站,我又给它加多了一些新功能。
去年创建的个人网站,我又给它加多了一些新功能。