浏览文章

文章信息

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、验证




原创