首页>Magento>source

我已经扩展了 Product.Config的几种JavaScript方法   在前端网站上的类应用一些自定义业务逻辑,但我需要与adminhtml中的销售订单创建页面共享相同的自定义。

在前端,我创建了一个定制版本的 catalog/product/view/type/options/configurable.phtml   我的主题中的模板,为可配置产品注入一些自定义数据。

我还需要扩展 Product.Config   用于利用数据的类.我使用了包装方法,它允许我调用父方法并避免重复整个方法(或者更糟糕的是,整个方法 文件)但也注入了一些新的逻辑。

Product.Config.prototype.getOptionLabel = Product.Config.prototype.getOptionLabel.wrap(function(parentMethod, option, price){
    var str = parentMethod(option, price);
    // Custom logic
    return str;
});

然后我把它添加到了 catalog/product/view   像这样的页面:

<catalog_product_view>
    <reference name="head">
        <action method="addJs">
            <script>custom/configurable.js</script>
        </action>
    </reference>
<catalog_product_view>

显然,我不希望在两个地方重复使用这个逻辑,那么如何在adminhtml端利用我现有的逻辑?

最新回答
  • 2019-12-5
    1 #

    首先,你需要自定义adminhtml相当于 上面提到的模板,它将是: app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/configurable.phtml

    实现此目的的最佳方法是向您的adminhtml添加自定义主题,以便您可以通过将模板复制到 app/design/adminhtml/default/custom/template/catalog/product/composite/fieldset/configurable.phtml来覆盖模板   并在那里进行编辑。

    其次,既然你在谈论Magento 1.9,请务必定义你的 app/design/adminhtml/default/custom/etc/theme.xml   定义主题后备顺序,以及定义布局更新文件,您可以在其中将共享JavaScript文件添加到页面中:

    <?xml version="1.0"?>
    <theme>
        <parent>default/default</parent>
        <layout>
            <updates>
                <custom_adminhtml_sales>
                    <file>custom/sales.xml</file>
                </custom_adminhtml_sales>
            </updates>
        </layout>
    </theme>
    

    现在您的布局更新可以添加到 app/design/adminhtml/default/custom/layout/custom/sales.xml中正确的adminhtml页面   文件.这将允许前端的相同JavaScript逻辑应用于adminhtml页面:

    <?xml version="1.0"?>
    <layout>
        <adminhtml_sales_order_create_index>
            <reference name="head">
                <action method="addJs"><script>custom/configurable.js</script></action>
            </reference>
        </adminhtml_sales_order_create_index>
    </layout>
    

  • magento2:在控制器magento 2中调用Block的正确方法
  • Magento2稳定与否?