Alan Hou的个人博客

Magento结构深入分析

安装Magento后默认目录结构:

根目录中各文件职能说明

根目录中各目录职能说明

模板系统结构

结构板块(Structural Blocks),以三栏结构为例:

• header
• left
• content
• right
• footer

每个结构板块中又包含若干个内容板块(Content Blocks),以右栏为例:

• mini cart
• recently viewed products
• newsletter subscription block
• poll

XML布局文件:结构板块通过请求调用XML布局文件来分配展现,所有页面都基于page.xml,一个典型的XML布局文件的结构如下:

<default>
	<reference name="header">
		<block type="page/html_header" name="header" as="header">
		<block type="page/template_links" name="top.links"
		as="topLinks"/>
		<block type="page/switch" name="store_language"
		as="store_language"
		template="page/switch/languages.phtml"/>
		<block type="core/text_list" name="top.menu" as="topMenu"/>
		</block>
	</reference>
</default>

相关标签的作用

此外,可以通过action来添加输入,如css

<block type="page/html_head" name="head" as="head">
	<action method="addCss">
		<stylesheet> css/menu.css </stylesheet>
	</action>
	<action method="addCss">
		<stylesheet> css/clears.css </stylesheet>
	</action>
	<action method="addItem">
		<type>js</type>
		<name>varien/iehover-fix.js</name>
		<params/>
		<if>lt IE 7</if>
	</action>
	<action method="addCss">
		<stylesheet>css/print.css</stylesheet>
		<params>media="print"</params>
	</action>
	<action method="addCss">
		<stylesheet> css/print.css </stylesheet>
		<params> media="print" </params>
	</action>
</block>

Magento官方有关布局的相关解释详见:http://www.magentocommerce.com/design_guide/

articles/intro-to-layouts

Magento中的优先级:新主题中调用文件如logo.gif将优先从当前主题相关目录中读取,若该文件不存在,则调用默认主题中的相对应文件。

Magento用户指南及电商小贴士士:http://www.magentocommerce.com/resources/magento-user-guide

Magento中的模块

Magento将所有的功能划分成一个个小模块,所有的模块都放在/app/code/目录中,按类型将模块划分为如下三类:

模块的基本目录结构

关于备份

在开发新功能或进行其它修改时都建议对于现有文件进行备份,最简单也最万无一失的办法就是手动将所有文件下载到本地。另外就是通过SSH来进行备份,使用的相关指令示例如下:

tar cf magento_archive.tar * (将所有文件压缩到magento_archive.zip)

tar -xvf yourfilename.tar (解压缩相关备份文件)

mv magento_archive.zip /path/to/new/destination/ (移动备份文件到指定目录)

cp –R * /path/to/new/destination/ (复制所有文件到指定目录)

对于数据库的备份可以通过后台System>Tools>Backups中的Database Backup按钮来进行备份,备份文件将保存在/var/backups/下,也可以通过phpMyAdmin中的export功能来进行输出备份。

退出移动版