模板的基本概念
这篇文章讲什么?
本主题介绍如何在Magento应用默认模板的主要概念。
模板是如何启动的
模板通常在布局文件中启动。
每个布局块都有相关模板。
The template is specified in the template
attribute of the
模板是在template
属性中指定的
<Magento_Catalog_module_dir>/view/frontend/layout/catalog_category_view.xml
:
<block class="Magento\Catalog\Block\Category\View" name="category.image" template="Magento_Catalog::category/image.phtml"/>
这意味着category.image
块是由 image.pHTML
模板, 其中位于 category
的子目录Magento_Catalog
模块模板目录。
模板目录 Magento_Catalog
是 <Magento_Catalog_module_dir>/view/frontend/templates
.
下一节将描述模板一般位于何处。
传统的模板位置
模板存储在下列位置:
- 模块模板:
<module_dir>/view/frontend/templates/<path_to_templates>
- 主题模板:
<theme_dir>/<Namespace>_<Module>/templates/<path_to_templates>
在这里 <path_to_templates>
可能有多个目录嵌套级别,或者可能是空的。实例:
<Magento_Catalog_module_dir>/view/frontend/templates/product/widget/new/content/new_grid.phtml
<Magento_Checkout_module_dir>/view/frontend/templates/cart.phtml
模板重写
对于同名的模板文件,以下是正确的: 主题模板覆盖模块模板,以及子主题 重写父主题模板。
这个机制是在Magento应用模板定制概念的基础:改变一定的默认模板定义的输出,你需要重写一个自定义主题。
重写模板中描述了更多的细节 主题的继承文章.
根模板
在Magento有一种特殊的模板为应用程序中的所有页根店面模板:<Magento_Theme_module_dir>/view/base/templates/root.phtml
.
不像其他模板, root.phtml
包含 doctype
和 <head>
和 <body>
。但类似于其他模板, root.phtml
可以在主题中重写。
从布局获取参数值
在布局文件中设置的参数值可以在模板中使用get{ArgumentName}()
和 has{ArgumentName}()
方法. 更多信息,查看 布局(Layout)说明