浏览文章
文章信息
Magento2 【前端】修改block模板|rewritting block
12285
例如修改后端Order下的产品名称并加上链接跳转。
模块附件中最底部的附件中可下载 2.3、2.4是Magento版本号
例子图片:
我们修改红框中的产品title为可跳转到商详页。
我们需要按照以下步骤开始:
1、找到模板位置
(1) 开启模板提示
store->configuration->avanced->developer->debug->Enable Template Path Hints for Admin
2、找到模板所在页面
找到产品名的模板是name.phtml
3、layout声明同名.xml文件
复制模板路径到编辑器中搜索,找到是位于sales模块的文件,且找到layout名字sales_order_view.xml。写一个模块,在view/adminhtml/layout目录下声明同名xml。
view/adminhtml/layout/sales_order_view.xml
<?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="column_name"> <action method="setTemplate" ifconfig="Aiweline_Sales_admin/general/enable_order_items_link"> <argument name="template" xsi:type="string">Aiweline_Sales::items/column/name.phtml</argument> </action> </referenceBlock> </body> </page>4、继承block
<referenceBlock name="column_name"> <action method="setTemplate" ifconfig="Aiweline_Sales_admin/general/enable_order_items_link"> <argument name="template" xsi:type="string">Aiweline_Sales::items/column/name.phtml</argument> </action> </referenceBlock>5、覆写模板.phtml
<div id="order_item_<?= (int) $_item->getId() ?>_title" class="product-title"> <!--Aiweline(微蓝中国) 秋枫雁飞--> <?php $productUrl = $_item->getProduct()->getProductUrl(); echo '<a href="'.$productUrl.'" target="_blank">'.$_item->getName().'</a>'; ?> </div>6、system.xml系统配置
<field id="enable_order_items_link" translate="label" type="select" sortOrder="1" showInDefault="1" showInWebsite="0" showInStore="0"> <label>允许订单产品链接</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> <comment> <![CDATA[<i style='color:red'>*</i><b style='color:gray'>启用后会向订单详情页的产品添加可前往前端产品视图的链接.</b>]]></comment> </field>7、安装
bin/magento s:up
bin/magento s:s:d -f en_US
bin/magento c:c
8、验证