magento2模板介绍-template基本概念

7天成为Magento系统架构师,现在开始学习Magento全栈开发!

《Magento2.X企业级开发实战》

magento2模板介绍-template基本概念

如何启动模板
模板在布局文件中启动,每个布局块都有一个关联的模板。

模板在 布局指令的模板属性中指定。

以 app/code/Magento/Catalog/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 块由 Magento_Catalog 模块模板目录的 category 子目录中的 image.phtml 模板呈现。

Magento_Catalog 的模板目录是 app/code/Magento/Catalog/view/frontend/templates。

还可以使用 $_template 受保护变量在 PHP Block 类中指定模板。

这是来自 app/code/Magento/Review/view/frontend/layout/review_product_view.xml 布局的示例:

<block class="Magento\Review\Block\View" name="review_view" ifconfig="catalog/review/active"/>

未使用 布局指令的模板属性指定 review_view 块的模板。 相反,它在 app/code/Magento/Review/Block/View.php 块类中指定。

protected $_template = 'Magento_Review::view.phtml';

模板位置
模板存储在以下位置:

模块模板:/view/frontend/templates/
主题模板:/_/templates/
表示零个或多个目录级别。

例子:

app/code/Magento/Catalog/view/frontend/templates/product/widget/new/content/new_grid.phtml
应用程序/代码/Magento/Checkout/view/frontend/templates/cart.phtml

模板覆盖
对于具有相同名称的模板文件,以下覆盖规则适用:

主题模板覆盖模块模板
子主题模板覆盖父主题模板
要更改现有模板定义的输出,请覆盖自定义主题中的模板。这个概念是 Magento 中模板定制的基础。

见主题继承

根模板
/view/base/templates/root.phtml 是 Magento 应用程序中所有店面页面的根模板。可以像任何其他模板文件一样在主题中覆盖此文件。

与其他模板不同,root.phtml 包含 doctype 规范,并有助于 Magento 应用程序呈现的所有页面的 和 部分。

从布局中获取参数值
使用块的 get{ArgumentName}() 和 has{ArgumentName}() 方法在模板中访问布局文件中设置的参数值。

例如,在块中设置一个参数:ExampleCorp。

在模板中获取参数值:

$block->getData('store_name')
$block->getStoreName()
检查参数是否存在:

$block->hasData('store_name')
$block->hasStoreName()
有关更多信息,请参阅块参数。

在模板 PHTML 文件中使用 PHP 短标签
PHP 中的 echo 命令可以使用 Magento 模板中的短标签来编写。

例如:

<?= $block->getAdjustmentsHtml() ?>

如无特殊说明或标注,任何个人或组织,复制、转载、采集本站内容请注明:
本文来源于:【Magento中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。