自己写的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的插件貌似可以从最后一个再返回第一个,这个也不难,不过留给下个版本吧,嘿嘿。

 

目录
相关文章
|
SQL 分布式计算 Shell
Hive教程(05)- Hive命令汇总(上)
Hive教程(05)- Hive命令汇总(上)
420 0
|
11月前
|
人工智能 Oracle 安全
中大型企业CRM系统十佳:2024年最佳选择
中大型企业因业务复杂、客户需求多样,对CRM系统有更高要求。本文推荐十大优秀CRM系统:销售易、Salesforce、Oracle、微软Dynamics 365、Zoho CRM、用友CRM、智邦国际、红圈销售、悟空CRM和神州云动,这些系统功能强大、定制性强,能有效提升企业管理效率。
|
安全 网络安全 API
2024年海外十大数据泄露事件
2024年,全球网络安全面临严峻挑战,多个行业遭受重大数据泄露事件。UnitedHealth Group数百万患者数据遭窃;AT&T几乎全网客户记录外泄;Trello 1500万用户信息泄露;France Travail 4300万人受影响;MITRE因VPN漏洞受损;Dropbox客户信息外流;BBC Pension Scheme逾2.5万名成员信息暴露;TeamViewer员工目录遭入侵;Advance Auto Parts 230万人信息被盗;Nissan Oceania也未能幸免。这些事件强调了强化数据保护及网络安全策略的重要性。
435 3
2024年海外十大数据泄露事件
|
机器学习/深度学习 监控 安全
图像识别技术在安防监控中的应用探索
【7月更文挑战第31天】图像识别技术在安防监控中的应用已经取得了显著成果,为公共安全和社会稳定提供了有力保障。未来,随着技术的不断发展和创新,图像识别技术将在安防领域发挥更加重要的作用,为我们的生活带来更高的安全保障和便利。
|
存储 弹性计算 Linux
云服务器 ECS产品使用问题之如何实现计划任务定时备份和重启
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
前端开发 UED
解决margin重叠问题,切页面更加丝滑
解决margin重叠问题,切页面更加丝滑
|
人工智能 机器人 数据库
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
627 0
|
人工智能 自然语言处理 前端开发
探索人工智能在前端开发中的应用与前景
【2月更文挑战第2天】随着人工智能技术的迅猛发展,其在前端开发领域的应用日益广泛。本文将重点探讨人工智能在前端开发中的具体应用场景以及未来的发展前景,带领读者深入了解人工智能与前端开发的结合之道。
249 1
|
运维 监控 安全
阿里云香港轻量应用服务器评测,1核1G 30M 24元/月,低价VPS
阿里云香港轻量应用服务器评测,1核1G 30M 24元/月,低价VPS
5561 0
|
弹性计算 Java Unix
阿里云服务器怎么用?使用阿里云服务器建网站详细图文教程
使用阿里云服务器建网站是很多用户上云的必经之路,其中必然会涉及到购买云服务器、注册域名、搭建网站这三个步骤,下面是这三个步骤的完整图文教程,适合新手学习。
阿里云服务器怎么用?使用阿里云服务器建网站详细图文教程