文档章节

Magento(CE1.X)自带模块解析五

ganfanghua
 ganfanghua
发布于 2017/05/13 15:33
字数 2387
阅读 22
收藏 0

41、Page

Page模块大家用得比较多,可以理解为是网页的基础框架(Head、Header、Footer)和常用零件(Breadcrumbs、Notices、Pager)的集合,页面上的头部、底部、面包屑、通知、分页、主菜单等等都与Page模块有关。

Page模块虽然没有什么复杂的逻辑在里面,但它是前台网页的基石,当然也算是核心模块之一。

42、PageCache

字面意思上看是页面缓存,不过与EE版的FPC或者其他第三方FPC不同的是,社区版的PageCache模块要实现缓存效果是依赖于Zend Platform的,而Zend公司的Zend Platform是收费的,印象中很少有公司在用。详见:http://docs.magento.com/m1/ce/user_guide/system-operations/cache-page-external.html

所以,对于大部分用户来说,这个模块是无用的,可以关闭。

43、Paygate

模块名有点欺骗性,实际上Paygate模块实现的也是authorizenet这个支付方式,与Authorizenet模块的区别在于Credit Card Direct Post (Authorize.NET)和Credit Card (Authorize.Net)。如之前所述,这个支付方式国内使用不到的,可以关闭。

44、Payment

Payment模块是Magento所有支付方式的基础,每种支付方式的模型(Model)类都需要继承(或者间接继承)Mage_Payment_Model_Method_Abstract,比如自带的Moneybookers或Authorizenet。同时Payment模块本身就带来好几个支付方式。

其中Zero Subtotal Checkout和Cash On Delivery Payment是两种可能用得到的支付方式。Zero Subtotal Checkout(零金额结算)用于当整单的金额(包括运费)都被优惠券(或积分等)所完全抵扣,最后总金额是0时的情况。Cash On Delivery(货到付款)就很好理解了,货到付款中国人用的很习惯了。

每种支付方式(包含国内需要的支付宝和微信支付)都需要继承Mage_Payment_Model_Method_Abstract,可见Payment模块也是一个重要的核心模块,需要保持开启状态。

45、Paypal

大名鼎鼎的Paypal,Paypal是啥就不用特别解释了。Paypal模块可谓Magento官方的亲儿子,看看历次Magento版本更新日志,大量的篇幅都是关于Payapl的功能修改或者细节优化。除了Paypal本身在国外的市场占有率的原因,更重要的原因是Magento早期就接受了ebay的投资,后来更是被ebay全资收购了(不久之前Magento在一家投资基金帮助下脱离ebay再次回到独立的身份)。

那么回到主题上,这里探讨的是基于Magento做中文站的情况,这种情况下Paypal模块是不是就一定用不到了呢,答案是不一定。虽然你的网站是卖给中国人的,但是如果,假设,也许居住在国内的歪果仁也想在网站上下单,而他又没有支付宝的话(老外开通支付宝挺麻烦),这个时候Paypal就可以让老外用visa卡来完成支付,是不是棒棒的。

如果基于Magento做中文站,并且没有像上面说的这种需求的话,可以把Paypal模块关了。

46、PaypalUk

Paypal针对英国市场专门提供的一种支付业务,模块名也已经明确表示了是只用于英国的。

PaypalUk在国内就完全用不到了,妥妥的关了吧。

47、Persistent

Persistent模块,字面意思是持久化,具体来说持久化的是购物车信息,而用来持久化的关键词就是Cookie。传统购物车是把购物车信息存放于Session之中,而session中存放的数据在用户离开或者session过期之后就会消失。Persistent模块允许你把购物车信息放入Cookie中,这样用户的客户端Cookie中数据还存在,下次用户打开网站会发现上次添加到购物车的商品依然存在(cookie没过期的话,Persistent模块的默认过期时间是1年)。PS:登录用户的购物车数据保留跟Persistent模块所做的是两件事,登录用户的购物车数据已经存到了数据库的quote相关表中,下次登录后看到的购物车数据实质是根据当前用户取出来数据库里对应的数据。

Persistent模块有一些配置项,比如Clear Persistence on Log Out,主动注销用户时是否清空cookie里的数据,详见Persistent Cart Configuration 。

Persistent模块提供了一套模板文件来代替Customer模块的模板文件,比如登录页面的模板是\template\persistent\customer\form\login.phtml,而不是\template\customer\form\login.phtml,需要注意的是,只要Persistent模块是启用的,系统就会使用persistent目录下的模板文件,即便后台的Enable Persistence是No,只有关掉整个Persistent模块,系统才会使用customer目录下的模板文件。

Persistent模块属于可选模块,没有这个功能需求的话可以关闭,需要特别注意的就是开启和关闭Persistent模块时,用户相关模板文件的切换。

 

48、Poll

投票模块,所有初学者最熟悉的模块之一,因为初始安装完Magento还什么都没改就看到了。

 

从功能上来说,poll模块提供的投票功能很简单(或者叫简陋),除了简单的投票之外也就只能配置下是否限制同一IP投票而已。如果业务需求上有需要做投票,那么可能就需要在自带poll模块的基础上做二次开发来完成了。当然我觉得poll模块有一个隐藏的价值,那就是对于Magento的初学者来说,poll模块是非常好的开发新模块的范例。poll模块功能上独立,不牵涉任何主干流程,逻辑上简单,代码一看就懂,页面上来说前台展示和后台管理(Grid和Form)都有,基本包含了开发一个新的Magento模块所需的所有环节,研究透poll模块,基本也就明白了Magento的模块是怎么回事了。所以说,作为新手教学管卡非常的合适。

实际应用的情况来看,网站上让用户投票的很少看到,如果确实需要,如上面所讲可以针对各自的需求对poll模块二次开发下。如果用不到投票,可以把poll模块关了。

49、ProductAlert

ProductAlert模块的两个功能,可以非常准确的用两个中文词汇描述:降价提醒和到货通知(因为京东上就是这么措词的)。具体来说,降价提醒是登录用户指对某件商品设置提醒,当这件商品降价时,系统自动给该用户发送通知邮件,告知用户该商品降价了。到货通知是登录用户对某件缺货商品设置提醒,当这件商品有库存时,系统自动给该用户发送通知邮件,告知用户该商品补货了。

从原理上来说,用户设置的提醒都记录到了数据库里,然后系统的计划任务运行时,检查数据库的数据,找到匹配条件的数据(条件是降价或者补货),给设置过提醒的用户发送邮件,这样就实现了所谓的自动提醒。

从功能上来说,ProductAlert模块自带的功能有点简陋,不说跟京东繁多的提醒功能(自动下单,降价幅度等等)相比,至少除了发邮件通知之外还要有发短信通知才比较符合国情,还有是不是应该考虑允许访客也可以参与提醒,类似订阅那样,不需要登录,留一个手机号或邮箱就能接收通知。当然这些就需要留个我们这些程序员自己来二次开发了。

ProductAlert模块属于可选模块,没这个需求可以关闭,不过对大部分用户来说应该还算是蛮实用的模块,在这基础上加上发短信也不会很复杂。

50、Rating

评分模块,评论功能的部分组件。Magento把评论功能拆成了两个模块(Rating和Review),其中Review模块是评论的主模块,Rating算是评论的一个可选项,如下图所示的评分。

理论上评分的功能可以不使用(通过后台设置),不过从实际应用来说(特别是做中文站,中国买家都经过了淘宝的洗礼),大部分还是会考虑在评论里保留评分的功能。

不使用评分功能不代表我们可以把Rating模块关闭,实际上,虽然Magento把Rating从Review里单独拆分出一个独立模块,不过从代码结构上,两个模块还是耦合的很紧密,关闭Rating模块会导致Review模块也无法正常使用。所以不管你用不用,Rating模块都得保持开启状态。

 

 

以上是本系列的第五篇内容,简单总结下上面10个模块,

其中Page,Payment,Rating三个模块是必须开启的(网站正常运行的基础),

Paypal,Persistent,Poll,ProductAlert是可以根据需求自选要不要开启的,

PageCache,Paygate,PaypalUk我的建议是关闭(针对做国内中文站),

本文转载自:http://blog.csdn.net/shuishui8310/article/details/52184990

ganfanghua
粉丝 6
博文 115
码字总数 97585
作品 0
深圳
程序员
私信 提问
深入理解Magento - 第一章 - Magento强大的配置系统

深入理解Magento 作者:Alan Storm 翻译:zhlmmc 前言 我从2007年开始使用Magento,应该算是国内第一批使用Magento的用户。但是我却从来没有认真研究过Magento,更多的停留在应用层面。虽然也...

虫虫
2010/04/13
9.4K
19
magento性能优化策略大全

magento的网站实在是太慢了,想了好多办法,参考了好多资料,做了很多测试,总结一下大概的步骤如下 (继续) : 1、压缩js,css代码,如果有必要把所有的css,js分别综合到一个文件中,并压缩...

rio
2010/05/07
5.8K
3
Magento微信支付接口开发小记

遇到了很多意想不到的问题,首先是微信支付分为四种:刷卡支付(线下)、扫码支付(PC网站)、公众号支付(微信中打开商户的H5页面)、APP支付(移动端支付),客户需要的微信扫码支付,而之前...

Alipaymate
2015/09/17
1K
0
Magento2, 我们在等你

文章前面我要说明,Magento2.0和1.X是完全不同的两个版本.简单来说,magento2.0完全是重构的.完全的不同,彻底的不同.记住哦,这是magento贰 git获得magento2源码:https://github.com/magento/m...

蟋蟀哥哥
2011/12/16
11.5K
18
麦进斗 + php7 运行

1,官网下载 2,(Magento-CE-2.1.2-2016-10-11-11-19-27.tar.gz)环境部署,php 7.0.7+centos 7 + nginx + mysql 5.6 + composer php-xsl yum install libicu-devel -y yum install libxslt-d......

晨武
2016/12/05
37
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里P7架构师:这些技术点没搞懂,我劝你不要跳槽!

阿里P7架构师架构师:这些技术点没搞懂,我劝你不要跳槽! 哪些技术点呢? 废话不多说,技术点全在下面这6张图里面了! 1.怎么看源码? 2.分布式 3.微服务 4.性能优化 5.工程化 粉丝福利:一...

别打我会飞
32分钟前
2
0
易错题

父类必须有一个无参构造,不然会报Implicit super constructor Parent() is undefined. Must explicitly invoke another constructor...

architect刘源源
37分钟前
1
0
使用Json4s 将带有Timestamp的对象转json时 变为所在时区

在有Timestamp属性的对象转json时 最后出来的时间会减小8小时,是因为变成了0时区,需要将隐式转换中添加设置本地时区 import org.json4s.{DefaultFormats, Formats}import org.json4s.jac...

可达鸭Go
38分钟前
1
0
工作六年java程序员的工作感悟,带你走出迷茫

前言 很多年前,刚刚从大学毕业的时候,很多公司来校招。其中最烂俗的一个面试问题是:“你希望你之后三到五年的发展是什么?”。我当时的标准回答是(原话):“成为在某一方面能够独当一面...

java知识分子
43分钟前
5
0
jenkins邮箱发送失败以及解决方案

jenkins邮箱设置报错以及解决方案 Jenkins邮箱设置 我用了 Email Extended Plugin这个插件,这个插件会有更加丰富的邮件内容,建议添加。 1.安装 Email Extended Plugin 2.系统管理-系统设置...

shzwork
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部