Magento网店自定义模板初探(4)——Package读取机制
2012-03-16 16:49
288 查看
Magento是个很强大的php网店建站系统。它将模块与结构皮肤分离得相当清晰,为建站提供很大的灵活性和定制性。但是这点也造成了它上手困难的缺陷。可以说不看相关文档会觉得一头雾水,除了CSS根本不知道上哪里去改HTML结构和修改模块的位置。我使用的是1.6.2.0版。
我在此系列第一篇文章中介绍了Magento的文件夹结构。文中强调base文件夹不能够删除,这是为什么呢?下面就来探讨这个问题。
Package和Skin
Package\app\design\frontend和\skin\frontend直属这两个文件夹下的子文件夹称为Package包。如:default文件夹。Skin皮肤,我指的是\skin\frontend\{package_name}下的子文件夹。如default包中有blank,blue,french等7个皮肤。
Package是一个整体。在\app\design\frontend下存放其HTML结构和布局位置,在\skin\frontend\文件夹下存放其CSS样式JS和用的图片等,而这个文件夹下还可以放好几个皮肤以供替换。
将css样式和HTML结构分离开来的目的,就是可以在不修改HTML结构的情况下,更换其使用的CSS样式以达到轻易改变外观的目的。而Magento作为一个可以管理多个网店的系统,它既考虑了不同的店铺间结构可能会发生变化,更是考虑了只是简单换个样式的情况。
Magento读取布局结构和皮肤主题的机制
关于这点,我直接举例会比较好理解。假设现在我的\app\design\frontend内文件结构如下:base
default
default
blank
default
iphone
modern
test
blank
default
管理员设置使用的Package为test,template/layout/skin使用的是blank。那么Magento将会用一下顺序读取前端文件:
读取test/blank
然后,到test/default中寻找blank中缺失的必要文件
最后,到base/deafult中寻找前面缺失的必要文件
简单地说,就是每个Package内的文件使用后会覆盖base文件夹内的文件,而Package内的主题包使用后会覆盖该Package内的default主题。
换句话说,你在创建自定义主题的时候,只要将base或者默认使用的default文件夹内相应的文件复制到你自定义的包或者主题中,然后修改其内容就可以了。
现在明白为什么base文件夹不能删了吗?
相关文章推荐
- Magento网店自定义模板初探(4)——Package读取机制
- Magento网店自定义模板初探(2)——开启Debug模式
- Magento网店自定义模板初探(3)——缓存设置
- Magento网店自定义模板初探(2)——开启Debug模式
- Magento网店自定义模板初探(3)——缓存设置
- Magento网店自定义模板初探(1)——文件夹结构
- Magento网店自定义模板初探(1)——文件夹结构
- 用Magento的Email模板机制发邮件(创建自定义模板)
- WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探
- 用Magento的Email模板机制发邮件
- magento 1.4 -- 自定义变量(Custom Variables)使用初探
- magento - 通过如何在magento的模板中获取到产品或产品分类的instance呢谈magento的helper类机制
- 注解_Annotation_内置注解_自定义注解_反射机制读取注解JAVA208-210
- VS的C++自定义项目模板初探简之又简
- 反射机制读取自定义注解
- (1) iphone开发,自定义Window-based Application 模板及委托运行机制
- thinphp 自定义标签,非常方便在模板读取数据。
- ecmall模板编辑中的标题如何自定义读取
- magento中修改和自定义邮件模板
- 自定义UI模板—回调机制