magento模板开发过程中比较让人迷惑的就是magento的结构控制,在这《magento模板中XML与phtml关系》一系列的文章中,我将对此进行入门的讲解。

在magento官网模板设计教程中已经初步讲解了模版中.xml与.phtml的关系。
模板文件分别存放于app和skin文件夹。app文件夹存放的是模板的结构文件。skin文件夹存放的是模版的css信息,也就是样式文件。

app文件夹下的模板文件夹的结构如下图

magento的app文件夹下的模版文件结构

layout文件夹存放的是此模板的.xml文件(也就是模版的结构文件),template是.phtml模板文件。

在layout的任何一个.xml文件中我们可以看到

top-container

等标签,这些都是在控制magento各个页面的结构。

在template中的.phtml文件中我们可以看到

getChildHtml(‘header’) ?>
……..
这样的代码,可以看到html 并且声明一个css的class,这样在.phtml中就是在控制模板的样式。定义了css的class那么在skin的css文件就有用了。
getChildHtml(‘header’)是在输出header这个block也就是说,在.phtml文件中我们对于XML文件中声明好的block进行输出,想输出在哪个div里面就在哪个div中使用getChildHtml(‘header’),也就是说phtml在对xml定义的结构进行进一步的细化,并且让css加入到模板的构建中来。
不要迷惑,看下总结
总结:
1.xml与.phtml同样都在控制模板的结构,但是要先在.xml中声明下,才能在.phtml中使用getChildHtml( )函数输出摸一个结构模块。也就是xml在先,phtml在后。

2. .xml文件与phtml同样控制文件结构,但是phtml中使用html的控制结构标签如

,并且可以写上css的类。.phtml就是一个php文件。它对模板的结构使用div等html标签进行更详细的排版,并且引入css修饰样式。