为了账号安全,请及时绑定邮箱和手机立即绑定

从另一个插件扩展插件 javascript 文件

从另一个插件扩展插件 javascript 文件

慕运维8079593 2022-10-27 15:59:45
Shopware 6 中是否可以使用另一个插件扩展插件?我有来自商店用品商店的插件 A,我需要稍微改变它的功能,因为它不太适合我。这个插件覆盖了shopware的核心功能——来自src/plugin/listing/listing.plugin的ListingPlugin。我需要从插件 B 或主题中获取插件 A 的 js 文件。我没有从文档中找到有关此功能的任何信息
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

您可以像这样扩展插件


import ExtendPlugin from './plugin/youtPluignFolder/extend-plugin.plugin';


const PluginManager = window.PluginManager;

PluginManager.override('OrgPlugin', ExtendPlugin);


...

注册文件后,您需要创建文件。在那里你可以扩展或覆盖函数,如


import OrgPlugin from '/app/custom/plugins/pluginName/path/to/plugin-file.plugin';


export default class ExtendPlugin extends OrgPlugin {

    init() {

        super.init();

    }


    // Function you want overwrite or extend

    function () {

      //    your code

    }

}


查看完整回答
反对 回复 2022-10-27
?
白衣非少年

TA贡献1155条经验 获得超0个赞

我试过类似的东西。在这种情况下,它不起作用。我为这个插件创建了注册:


import TanmarInfiniteScrollingExtend from './infinite-scrolling-extend/infinite-scrolling.plugin';


const PluginManager = window.PluginManager;


PluginManager.override('TanmarInfiniteScrolling', TanmarInfiniteScrollingExtend, '[data-listing]');

然后使用以下代码创建文件:


import TanmarInfiniteScrolling from 'src/infinite-scrolling/infinite-scrolling.plugin';


export default class TanmarInfiniteScrollingExtend extends TanmarInfiniteScrolling {

    init() {

        super.init();

    }

    _tmisInit() {

        super._tmisInit();

        console.log('Hello world')


    }

}

但是当我尝试建立一个店面时,我得到了错误:

https://i.stack.imgur.com/mQ7Rt.png

可能的原因是因为父插件扩展了列表插件。

PluginManager.override('Listing', TanmarInfiniteScrolling, '[data-listing]');

但是当我试图覆盖ListingPlugin时,父插件被完全覆盖了。

这是父插件中文件的结构: https ://i.stack.imgur.com/9dDXL.png


查看完整回答
反对 回复 2022-10-27
  • 2 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信