1.in product view phtml, use fancy box to add a click for rating star (fancy ajax)
<?php echo $this->getReviewsSummaryHtml($_product, 'star_ajax', true)?>
2. rewrite getReviewsSummaryHtml for choose ajax star phtml in config.xml:
<global> <blocks> <myreview> <class>Bysoft_Myreview_Block</class> </myreview> <review> <rewrite> <helper>Bysoft_Myreview_Block_Helper</helper> </rewrite> </review> </blocks>
3.write the block file:
<?php class Bysoft_Myreview_Block_Helper extends Mage_Review_Block_Helper { protected $_availableTemplates = array( 'default' => 'review/helper/summary.phtml', 'short' => 'review/helper/summary_short.phtml', 'star' => 'review/helper/summary_star.phtml', 'star_ajax' => 'review/helper/summary_star_ajax.phtml', ); }
4. write the summary_star_ajax.phtml file:
<?php if ($this->getReviewsCount()): ?> <div class="ratings"> <?php if ($this->getRatingSummary()):?> <div class="rating-box"> <div id="rating-<?php echo $this->getProduct()->getId();?>" class="rating" style="width:<?php echo $this->getRatingSummary() ?>%" href="<?php echo $this->getUrl('review/product/list/id/'. $this->getProduct()->getId());?>" ><?php echo $this->getRatingSummary() ?></div> </div> <?php endif;?> </div> <?php elseif ($this->getDisplayIfEmpty()): ?> <div class="rating-box"> <div class="rating" style="width:0%"><?php echo '0'?></div> </div> <?php endif; ?>
5. add fancy jquery on view.phtml
//fancy box for rating ajax $("#rating-<?php echo $_product->getId();?>").fancybox({ ajax : { type : "POST", } });
6. action for ajax post rating form config.xml:
<frontend> <routers> <review> <args> <modules> <Bysoft_Myreview before="Mage_Review">Bysoft_Myreview</Bysoft_Myreview> </modules> </args> </review> </routers> </frontend> </config>
7. controller file for rewrite post review function
<?php require_once Mage::getModuleDir('controllers', 'Mage_Review').DS.'ProductController.php'; class Bysoft_Myreview_ProductController extends Mage_Review_ProductController { public function postAction() { $data = $this->getRequest()->getPost(); //$rating = array(); $rating[$this->getRequest()->getParam('ratingId')]=$this->getRequest()->getParam('optionId'); if (($product = $this->_initProduct()) && !empty($data)) { $session = Mage::getSingleton('core/session'); /* @var $session Mage_Core_Model_Session */ $review = Mage::getModel('review/review')->setData($data); /* @var $review Mage_Review_Model_Review */ $validate = $review->validate(); if ($validate === true) { try { $review->setEntityId( $review->getEntityIdByCode(Mage_Review_Model_Review::ENTITY_PRODUCT_CODE) ) ->setEntityPkValue($product->getId()) ->setStatusId(Mage_Review_Model_Review::STATUS_PENDING) //直接通过验证 //->setStatusId(Mage_Review_Model_Review::STATUS_APPROVED) ->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId()) ->setStoreId(Mage::app()->getStore()->getId()) ->setStores(array(Mage::app()->getStore()->getId())) ->save(); foreach ($rating as $ratingId => $optionId) { Mage::getModel('rating/rating') ->setRatingId($ratingId) ->setReviewId($review->getId()) ->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId()) ->addOptionVote($optionId, $product->getId()); } $review->aggregate(); echo json_encode(array('status'=>1,'msg'=>$this->__('Your rating has been save, wait for approvement.'))); return; } catch (Exception $e) { $session->setFormData($data); $session->addError($this->__('Unable to post the review.')); echo json_encode(array('status'=>2,'msg'=>$e->getMessage())); return; } } else { $session->setFormData($data); if (is_array($validate)) { foreach ($validate as $errorMessage) { echo json_encode(array('status'=>3,'msg'=>$errorMessage)); return; } } else { echo json_encode(array('status'=>4,'msg'=>$this->__('Unable to post the review.'))); } } } if ($redirectUrl = Mage::getSingleton('review/session')->getRedirectUrl(true)) { $this->_redirectUrl($redirectUrl); return; } $this->_redirectReferer(); } } ?>
相关推荐
"Magento Ajax购物车"是指利用Ajax技术实现的无刷新购物车更新,使得用户在添加、修改或删除商品时无需跳转页面,提供更加流畅的购物体验。 一、Magento购物车的基本原理 购物车是电商网站的核心部分,Magento的...
Magento AJAX 搜索是一种在 Magento 商城中实现的高级搜索功能,它通过利用 AJAX(异步JavaScript和XML)技术,提供用户友好的实时搜索体验。在传统的搜索方式中,用户输入查询后,页面需要完全刷新才能显示结果。而...
Ajax-magento2-ajax-cart-quick.zip,magento 2 ajax购物车扩展插件提供舒适的购物体验。客户可以很容易地选择可配置的选项并在弹出窗口中编辑项目,而不会浪费重新加载页面的时间。,ajax代表异步javascript和xml。它...
Ajax-magento2-ajax-layered-navigation.zip,ajax分层导航magento 2提供了一个过滤器列表,帮助您的客户以最短的方式搜索和获得他们最喜欢的产品。这个扩展应用了现代ajax技术来增强过滤系统,以提高用户对页面上每...
Ajax-Magento-ajax-add-to-cart.zip,[模块magento 1]magento ajax添加到购物车-ajoter vos produits au panier en ajax/感谢ajax将您的产品添加到购物车,ajax代表异步javascript和xml。它是多种web技术的集合,包括...
Ajax-magento2-catalog-infinite-scroll.zip,免费的Magento 2扩展,为目录添加无限滚动功能(通过AJAX实现)编码教程,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。...
Ajax-magento2-module-ajax.zip,用于ajax请求的magento 2模块,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页...
Ajax-magento2-ajax-cart.zip,ajax add to cart for extension magento 2提供了通过ajax弹出窗口将产品添加到购物车的主要功能。它通过允许客户从产品列表页面将任何产品类型添加到购物车,显著改善了用户体验。,...
前端通过AJAX请求向服务器发送请求,获取购物车数据;后端则处理请求,返回购物车信息,前端再根据这些信息更新购物车界面。整个过程中,涉及到的数据主要包括商品ID、数量、价格、图片等,这些数据在数据库中被存储...
在这个"magento新版ajax购物车插件"中,我们主要关注的是如何利用Ajax技术改进Magento购物车的用户体验。 首先,Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下更新部分网页的技术。...
Magento 快速查看 Ajax 加载程序 “Quick View Ajax Loader”是 Magento 在线商店中产品列表页面的扩展。 让您的客户无需离开类别页面即可查看您商店中产品的详细信息。 兼容 Magento 1.4、1.4.1.1、1.5、1.6、1.7...
4. **REVIEW**和**RATING**:用于管理产品评论和评分,对于构建消费者信任和促进销售具有重要作用。 5. **CATALOGINDEX**和**CATALOGQUERY**:这两个表分别用于目录索引和查询,提高了产品搜索和浏览的效率。 6. *...
在电商领域,经常会有需求将一个已经建立并运行良好的Magento站点快速复制到另一个服务器,用于测试、备份或者创建一个新的独立站点。这个过程涉及到数据库的备份与还原、文件系统的复制以及配置的调整等多个步骤。 ...
演示地址:http://olegnax.com/product/athlete-responsive-magento-theme/livepreview/ Athlete Magento主题,兼容...黑白2个版本,AJAX加入购物车,快速查看,高级幻灯片,博客,提供快速安装包演示数据和说明文档。
### Magento深入理解——强大配置系统解析 #### 一、引言 Magento是一款极其灵活且功能丰富的电子商务平台,其核心竞争力之一在于其强大的配置系统。这一系统不仅为开发者提供了极高的定制化能力,还确保了平台的...
Magento是一款强大的开源电子商务平台,以其高度可定制性和灵活性著称。在进行Magento的二次开发时,你需要理解并掌握以下几个核心概念和技术: 1. **MVC架构**:Magento基于Model-View-Controller(MVC)设计模式...
Magento是开源的电子商务平台,广泛用于在线商店的建设。SMTP(Simple Mail Transfer Protocol)是用于发送电子邮件的标准协议。在Magento中,SMTP插件扮演着关键角色,它允许商家通过更安全、可靠的SMTP服务器发送...
Magento是一款强大的开源电子商务平台,以其高度可定制性和灵活性著称。作为一款基于PHP开发的系统,它为商家提供了丰富的功能,包括商品管理、订单处理、客户管理、营销工具等。以下将详细介绍`magento入门学习资料...
这个“magento-java-master.zip_magento”压缩包可能是为了提供一个Java连接Magento源码的示例或者库,帮助开发者实现Java与Magento系统的交互。 在Java中与Magento进行交互通常涉及到以下几个关键知识点: 1. **...
Magento是一款开源的电子商务平台,专为在线商家设计,提供强大的购物车系统和丰富的功能。"Magik Shoes Magento 模板"是专为Magento 1.7版本设计的商店主题,旨在提升在线鞋类销售商店的用户体验和视觉吸引力。在这...