繁体   English   中英

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

[英]Extend plugin javascript file from another plugin

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

您可以像这样扩展插件

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

const PluginManager = window.PluginManager;
PluginManager.override('OrgPlugin', ExtendPlugin);

...

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

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

您可以使用../../../../../../../ExternalPluginName/src/Resources/app/storefront/src/externalplugin/externalplugin.plugin等相对路径来实现此目的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM