猿问

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

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



慕运维8079593
浏览 66回答 2
2回答

慕标琳琳

您可以像这样扩展插件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    }}

白衣非少年

我试过类似的东西。在这种情况下,它不起作用。我为这个插件创建了注册: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
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答