EOB*_*EOB 5 layout block magento
我对布局xml文件有一些疑问,该文件位于app\design\adminhtml\default\default\layout中.
在一些教程中,它具有以下结构:
<layout>
<adminhtml_example_index>
<reference name="content">
<block type="awesome/adminhtml_example" name="example" />
</reference>
</adminhtml_example_index>
<adminhtml_example_edit>
<reference name="content">
<block type="awesome/adminhtml_example_edit" name="example_edit" />
</reference>
</adminhtml_example_edit>
</layout>
Run Code Online (Sandbox Code Playgroud)
有人可以解释这些线的含义吗?可以在这里找到教程:这里
谢谢!
Dil*_*nga 15
基于XML的Magento结构在开始时似乎有点令人困惑和恼人,但众所周知,最终具有强大的功能和可定制性......
<adminhtml_example_index></adminhtml_example_index>
Run Code Online (Sandbox Code Playgroud)
此标记指的是[路由器] [控制器] [操作]
路由器是特定调度的唯一标识名称.从您给出的示例中,在config.xml文件的admin标签下,我们可以找到路由器名称adminhtml.
<admin>
<routers>
<adminhtml>
<args>
<modules>
<awesome before="Mage_Adminhtml">Super_Awesome_Adminhtml</awesome>
</modules>
</args>
</adminhtml>
</routers>
</admin>
Run Code Online (Sandbox Code Playgroud)
在该路由器下是与此路由器相关的模块设置.
因此,如果url包含/ admin/example/[index],magento将找到正确的路由器,<adminhtml>然后将找到命名的控制器example并找到正确的操作,在这种情况下index (/ admin/example /将被分派到默认值指数行动)
<adminhtml_example_index>
<reference name="content">
<block type="awesome/adminhtml_example" name="example" />
</reference>
</adminhtml_example_index>
Run Code Online (Sandbox Code Playgroud)
在布局文件中,对于路由器控制器操作组合,定义了布局更新.在这里,更新将应用于命名为content包含页面内容部分的主块.
<block>tag用于定义我们需要引用的块.<type>标签很重要.它指的是渲染此布局时应使用的正确块类(请记住,在Magento的MVC结构中,View包含Block类和phtml文件)
在awesome/adminhtml_example这里,awesome是config.xml文件中提到的块配置名称.adminhtml_example是要使用的块类.
看到
<global>
-----
<blocks>
<awesome>
<class>Super_Awesome_Block</class>
</awesome>
</blocks>
</global>
Run Code Online (Sandbox Code Playgroud)
在block标记下,定义了唯一的块名称(良好的命名约定将保留唯一性).然后可以将这些块的类路径标识为Super/Awsome/Block/.
现在已解决块配置名称.adminhtml_example是要使用的确切块类.块名称(awesome)之后的任何下划线都将转换为目录分隔符.
据此,块类的完整路径将是
[codepool]/Super/Awsome/Block/Adminhtml/Example.php
Run Code Online (Sandbox Code Playgroud)
班级名称就像
class Super_Awesome_Block_Adminhtml_Example extends ….
Run Code Online (Sandbox Code Playgroud)
如果我们有布局文件,我们可以在这里指定..然后该.phtml文件将使用上面的块类进行渲染
<reference name="root">
<block type="page/html" name="root" template="simplepage.phtml" />
</reference>
Run Code Online (Sandbox Code Playgroud)
希望这有帮助..对不起,如果有什么不清楚...
布局处理程序映射到MVC控制器,所以期待您的处理程序
<adminhtml_example_index> 在adminhtml/example/index控制器页面中使用
和
<reference name="content">表示这些块中的块或其他引用将在content主题模板的块中可用
进一步阅读我建议: