
Magento
文艺青年2
这个作者很懒,什么都没留下…
展开
-
Magento设计术语
为了更好地学习这篇教程,深刻理解Magento的术语是非常必要的。这些术语对你来说可能是很陌生的,所以得花点时间通读它。但是更重要的是,如果你暂时不能完全理解这些术语概念不要气馁—— 这章只不过是给你一个简要的介绍。接下来的章节将针对每一个术语深入探讨。本节涉及的术语包括:站点(Website), 店铺(Store)和店铺展示(Store View)接口(Interface...2008-08-17 15:41:19 · 113 阅读 · 0 评论 -
IV. Magento--在Module中访问数据库
假设你已经在完成了系列文章中前面的部分。那么已经有了一个模型文件为model/Room.php,并且etc/config.xml文件的global内容如下: [code="xml"] Cartz_Hotel_Model ...2008-10-19 14:33:47 · 89 阅读 · 0 评论 -
Magento-如何新增、更新或者删除数据库中的数据
[color=red]I. 创建表结构[/color][code="sql"]create table rooms( id int not null auto_increment, name varchar(100), primary key(id));[/code]注意表结构命名规范。这里有主键字段是id并设置为auto_increment.[co...2008-10-20 00:47:50 · 181 阅读 · 0 评论 -
Magento - 集成js文件到页面文件中
转载于 [url=http://www.cartz.com.cn/bbs/viewtopic.php?f=3&t=12]罗马集市[/url]Magento的JS文件存放有两个地方:1). 系统级别的js目录位置 : $MAGENTO_INSTALLED_FOLDER/js,该目录下也存放相应js功能的css文件。2). 特定于某套页面风格的目录下: $MAGENTO_INSTALLED...2008-10-23 23:44:06 · 88 阅读 · 0 评论 -
Magento - 集成css文件到页面文件中
转载于 [url=http://www.cartz.com.cn/bbs/viewtopic.php?f=3&t=12]罗马集市[/url]Magento的CSS文件一般存放到 $MAGENTO_INSTALLED_FOLDER/skin/{frontend | admin | install}///css目录下。也有些和全局js脚本配合使用的css文件存放在$MAGENTO_INSTAL...2008-10-23 23:47:25 · 89 阅读 · 0 评论 -
Magento使用正规的方式输出网页(使用phtml文件输出内容)
如果你已经学会了扩展模块的基本输出方法,那么本文一定是你需要的——使用正规的方法输出网页。假设模块为Cartz_Hotel,我们想当访问http://localhost/magento/index.php/hotel/my/room能够输出Hello , phtml Page[b]I. 建立controllers/MyController.php内容如下:[/b][code...2008-10-25 12:42:06 · 118 阅读 · 0 评论 -
Magento - Rewrite机制一窥
看一个url例子 http://localhost/magento/index.php/customer/account/login这里假定http://localhost/magento/ 是magento安装目录。那么Magento将自动转而执行customer模块下名字AccountController的loginAction方法。这个是ZendFramework的默认重写规则。...2008-10-26 23:05:29 · 134 阅读 · 0 评论 -
Magento的EAV模型窥探
EAV : Entity - Attribute - Value 的缩写,是数据库模型的一种,使用eav建模的好处是可以动态为数据模型增加或移除属性。[color=#BF0000][b]1. 问题提出:[/b][/color]假设需要定义一个实体Customer的信息,通常我们只要定义一个表为customer,并定义相应的属性即可。倘若某天需要为customer增加一个新的属性如“...2008-11-01 17:27:00 · 251 阅读 · 0 评论 -
Magento - 在页面头部添加一个Top Link
场景:当用户进入Customer Login页面时,想看到页面顶部的菜单项增加一项My Blog打开layout/customer.xml,在标签下加入下面的代码[code="xml"] My Blog http://www.myblog.com ...2008-11-05 13:47:41 · 86 阅读 · 0 评论 -
Magento - 模版制作的一些小经验(转自vfxart.cn)
* type模块的功能类型,这一部分禁止进行修改。 * name指定给了名称称呼, 以便layout文件包里的xml文件中使用 * before (and) after来指定模块的在左右两边的排列位置 * template用来调用指定模版的功能 * action用来控制调用一些Javascript等 * as作为用来对template文...2008-11-05 14:14:54 · 85 阅读 · 0 评论 -
PHP 日期运算等若干例
[size=large]1.时区问题[/size]date()函数是获取服务器时间的函数。但在不同的主机上,在同一个时间内,可能由于时区不同获取的时间值不同。从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的。也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时.可以用以下两种方法解决:...2010-03-22 16:42:27 · 96 阅读 · 0 评论 -
用Magento的Email模板机制发邮件
Magento的Mage::getModel('core/email_template')模型可用来发信。[b]步骤I.[/b]在你的模块(其实任意Module都可以)的etc/config.xml的根标签下添加代码[code="xml"] 1 {emai...2010-03-24 15:17:12 · 160 阅读 · 0 评论 -
如果调用一个新创建的phtml文件抑或简单地传输一个值到该文件但是没有定义对应的Block...
如果你有一个公用的html块单独存放在很多个phtml文件,如何不创建对应的block文件就使其被调用?其实可以使用系统的内置的Block:core/tempate,基本方法如下:在layout文件中可能定义如下[code="xml"] [/code]顺便提及一下Block的一般传值方法:如果想传一个属性如product为mp3给phtml,上述标签修...2010-03-24 15:36:29 · 100 阅读 · 0 评论 -
Magento - 支付模块开发的若干提示
[b][size=x-large]1.[/size][/b] '支付模型类'在何处指定?在etc/config.xml的标签payment/{payment_method}/model指定支付类(这里假设mypay/paya)[b][size=x-large]2.[/size][/b] 如果支付方法类似PayPal Standard(转向支付网关网站进行支付),那么支付模型类mypay...2010-03-30 14:10:30 · 125 阅读 · 0 评论 -
Magento并发测试
Magento的访问速度挺慢,单感觉上就有点不能接受。本人环境为:[quote]Windows XP sp2Apache 2.2 PHP5.2.6MySQL 5.0.54并且开启了Magento的apc和数据缓存功能[/quote]使用ab测试结果如下:[quote]D:\programs\Apache2\bin>ab -n 1000 -c 260 ht...2009-01-08 16:56:22 · 127 阅读 · 0 评论 -
Magento - 下拉框方式显示中国的省份
默认情况下,在Magento编辑地址的地方,如果国家选择中国,你会发现没有下拉框显示相应的省份,而是一个文本框。而美国则可以!为了以下拉框形式显示中国省份,需要执行以下SQL语句,以广东省为例:[code="php"]INSERT INTO `directory_country_region` (`region_id`, `country_id`, `code`, `default_n...2010-04-03 09:36:40 · 143 阅读 · 0 评论 -
Magento 检索某个店铺下的分类信息
Mage_Catalog_Model_Category模型类的getCategories方法可做此用[code="php"]..../*** $parent : 查询的根分类* $recursionLevel : 查询层级0为所有* $sorted : true|false* $asCollection :true将分类平面展开,false则呈树状展示。* $toLoa...2010-04-04 18:44:33 · 72 阅读 · 0 评论 -
Magento的event机制
比如要在place order时执行自己附加的操作(如MaxMind提供的minFraud 检测),我总是不太希望覆盖Order的place方法。Magento提供了Event机制优雅地处理这样的事情。就以上面提到的minFraud检测(http://www.maxmind.com/app/ccv),我希望在Place Order完成后执行检测并将结果存储。首先Magento在Orde...2010-04-06 12:02:20 · 89 阅读 · 0 评论 -
MaxMind的minFraud
MaxMind的minFraud 提供了WebService可以检查e-Commerce中支付信息的真实性并返回一个风险分数和文字描述。[url]http://www.maxmind.com/app/ccv[/url]PHP客户端代码例如下:[code="php"]...2010-04-06 13:41:48 · 372 阅读 · 0 评论 -
Magento后台产品管理页等增加一个Tab
一般要重定义(推荐使用rewrite机制)两处:1. ProductController.php2. Tabs.php在Tabs.php的_prepareLayout方法中增加一个Tab Link,如:[code="php"]$this->addTab('related_documents', array( 'label' => Mage::helper('cat...2010-04-09 11:00:11 · 84 阅读 · 0 评论 -
Magento - 返回不带Layout的页面输出
你至少有三种方法可以返回不带Layout的页面输出1. 在controller的action方法中直接echo 然后 return.[code="php"]public function helloAction(){ echo 'How are you'; exit;}[/code]2. 在controller的代码方式创建并输出block内容[co...2010-04-09 18:39:30 · 68 阅读 · 0 评论 -
Magento - 开发常见问题原因及调试方法
[size=large]调试一般方法:[/size]1. Log文件 var/exception.log var/system.log2. 异常Report文件3. SQL Log文件[size=large]常见问题[/size]1 . 页面一直在Loading有两种可能1). 你正在使用print_r($obj)输出一个大对象 建议: 缩...2010-04-11 16:01:05 · 91 阅读 · 0 评论 -
Magento - Session数据信息传递及输出
一个最直接的需求来源是:页面A抛出错误或者提示信息,当转向页面B时能够将其显示。一般来说有两种方案可以处理此问题:1. b.php?error_message=xxxxx 或者b.php?err_no=121,对于后者,系统制作一个错误号列表对应的信息,然后对应显示2. 使用session:将页面A出错或者提示信息放到session某个约定的变量中,然后在目标页面检索并输出...2010-04-19 16:53:48 · 75 阅读 · 0 评论 -
Magento - 后台设置: 指定当前菜单项
当进入后台某项菜单项时,希望相应的菜单能高亮显示,如下例所示:[img]http://dl.iteye.com/upload/attachment/239286/7a698e24-e40e-3cbb-9e5d-f62cc5d9f815.jpg[/img]实现步骤1. 查找对应模块的config.xml相关menu的项,对于上例,找到如下代码:[code="xml"] ...2010-04-24 08:10:34 · 87 阅读 · 0 评论 -
用户登录后主页面的左侧菜单高亮显示
用户登录后主页面左侧菜单高亮显示,如下所示:[img]http://dl.iteye.com/upload/attachment/239294/a7deba47-2371-3e77-b2af-e18768fb5cac.jpg[/img]该实现一切归功于内置的Block: customer/account_navigation.在layout文件(customer.xml)中,有如下...2010-04-24 08:43:41 · 201 阅读 · 0 评论 -
Magento - 支持多店铺系统的开发
Magento支持多店铺,但是,即便如此,如果你的扩展没考虑多店铺,结果你的系统也只能支持单店铺。支持多店铺的开发一般就是遵循一些基本原则:1.查询那些和店铺有关的数据,必须加入store过滤2.存储店铺有关的数据,必须指定store[color=darkred][size=large][b]II. 查询相关店铺相关的数据例:[/b][/size][/color][...2010-04-24 09:00:38 · 237 阅读 · 0 评论 -
产品详细页展示共同的相关数据信息
问题提出: 如衣服类产品详细页总要显示尺寸度量表、,这是一大串HTML文本,为某个种类下所有产品都需要展示的信息。他应该在哪里输入?最直接的想法就是,在产品描述字段中重复输入这一段文本,把它当作产品描述来看待;另一种考虑就是修改产品详细页的模板文件(view.phtml),html文本直接写入该文件.两种方案各有缺点:第一种方案要反复输入同样的文本在所有产品中,修改也是这样进行。第二种方案...原创 2011-04-20 11:02:34 · 92 阅读 · 0 评论 -
使用TreeNode方式输出指定查询条件的分类
使用Category Collection手工构造sql输出制定查询条件的分类,效率低,代码复杂,本例介绍另一种方式[code="php"]原创 2011-04-20 11:04:33 · 90 阅读 · 0 评论 -
获得Category下所有产品集合
如果想得到一个Category下所有产品集合,可以用Magento内置的方法[code="php"]原创 2011-04-20 11:06:28 · 94 阅读 · 0 评论 -
一次后台扩展的经历
任务:新增一个Merchant表,然后要对你增删改查.实施步骤:1. 数据准备:生成SQL语句到数据库,并加入测试数据。2. 使http://magen_host/manager/merchant进入Merchant管理界面,默认显示Merchant列表。1). 创建MerchantController.php2). 配置config.xml3). 配置Layout...原创 2011-04-20 11:07:59 · 74 阅读 · 0 评论 -
Magento多语言注意事项
Magento一般使用CSV文件方式翻译国际化词条一般用法是代码中:[code="php"][/code]但是,必须注意以下规则:1. 如果Mage存在的词条,那么就需要使用已经存在的词条,如:[code="php"][/code]因为词条Password在模块customer中已经存在,所以以上代码没有任何输出,需要这样调用[code="php"][/...原创 2011-04-20 11:14:30 · 101 阅读 · 0 评论 -
替代配置文件在代码中创建Block
[code="php"]$this->getLayout()->getBlock('content')->append( $this->getLayout()->createBlock('catalogue/point_confirmation', 'point.confirmation'));[/code]如果使用setChild而不是append,代码如下:[co...原创 2011-04-20 11:17:24 · 89 阅读 · 0 评论 -
调用getBlock注意事项
有时候AJAX返回某个Block类的模板内容需要在controller类中调用getBlock方法代码如下:[code="php"]$response = $this->getLayout()->getBlock('merchant.review.history')->toHtml();echo $response;[/code]这样不是得不到Block类实例的,必须在...原创 2011-04-20 11:18:29 · 181 阅读 · 0 评论 -
Magento的事件机制
比如,当后台更新或新增产品图片时,希望能生成一个自定义尺寸的缩略图。一般做法是,修改产品的save方法。但是Magento事件模型机制提供了另外一个选择。当产品存储之前,Magento抛出名字为catalog_product_prepare_save的事件,我们只要在自己的模块中捕获这个事件就可以了。config.xml文件关键代码:[code="xml"] ...原创 2011-04-20 11:19:48 · 96 阅读 · 0 评论 -
Magento 开发多语言扩展有三个问题
开发多语言扩展有三个问题要考虑1. 静态文本的多语言使用代码[code="php"]echo Mage::helper('helpername')->__('your text')[/code]配合csv文件可以实现多语言。2. 数据的多语言稍候介绍3. 货币的多语言给定一个数字,可以用下面的代码格式化为相应的货币额[code="php"][...原创 2011-04-20 11:21:14 · 106 阅读 · 0 评论 -
Block类中如何跳转页面
大家知道,在Controller类中进行页面转向$this->getResponse()->setRedirect("targetUrl");如果在Block类中,页面转向方法是:Mage::app()->getResponse()->setRedirect("targetUrl");...原创 2011-04-20 11:22:18 · 126 阅读 · 0 评论 -
如何判断当前是否登录?
[code="php"]$_session = Mage::getSingleton('customer/session');if ($_session->isLoggedIn()) { // do something} else { // do another thing.}[/code]原创 2011-04-20 11:22:57 · 164 阅读 · 0 评论 -
Magento中评论机制扩展的不完美
Magento的评论默认主要有“标题”和“内容”两个字段。如果我想在我的系统中增加“优点”,“缺点”等列,那么该怎么办呢?通过分析Review相关表,发现它不是EAV模型实现。为了能最大程度使用默认评论的功能,选择的是扩展相关表的字段,而不是重新来写!在review_detail表中改变表的结构:增加列advantage, disadvantage.然后定义一个Module...原创 2011-04-20 11:24:17 · 69 阅读 · 0 评论 -
怎样扩展Controller类
比如Magento的review相关的有一个controller类名字为:Mage_Review_ProductController现在我的模块里定义了一个新的控制器类,像如下方式:[code="php"]require_once 'Mage/Review/controllers/ProductController.php';class Joymami_JReview_Produc...原创 2011-04-20 11:25:12 · 141 阅读 · 0 评论 -
前台显示Category定制属性两例
因业务需要,Category增加了一个属性叫promo_name,进入Category列表页时希望将其显示出来,这里的情况具体分两种:I. load方法访问自定义属性[code="php"]$c = Mage::getModel('catalog/category');echo $c->getPromoName();[/code]这个是最自然的用法,麻烦的是下面的情况:...原创 2011-04-20 11:26:25 · 106 阅读 · 0 评论