簡體   English   中英

Prestashop 1.7.x 用我自己的模塊覆蓋模塊中的 javascript

[英]Prestashop 1.7.x override javascript from module with my own module

我正在編寫自己的模塊,需要覆蓋 ps_shoppingcart.js

我嘗試閱讀文檔:

https://devdocs.prestashop.com/1.7/themes/reference/overriding-modules/#overriding-templates-and-assets

└── modules
    ├── css
    │   ├── external-lib.css
    │   └── style.css
    ├── js
    │   └── app.js 

我知道這種覆蓋是針對主題的,但我希望它也適用於模塊,不幸的是我沒有找到關於模塊的任何信息。

另一個想法可能是覆蓋 Ps_Shoppingcart 類並調用我自己的 javascript。

你知道如何解決它或一些文檔鏈接、教程等嗎?

更新解決

這是我找到的解決方案,我不確定是否是最好的方法,但它確實有效。

我覆蓋了 ps_shoppingcart.php,然后我嘗試加載我自己的 javascript。 那可能是因為路徑錯誤沒有加載,所以我從我的模塊中包含了它,現在它可以工作了

ps_shoppingcart.php 覆蓋我不包含任何 javascript

if (!defined('_PS_VERSION_')) {
    exit;
}
class Ps_ShoppingcartOverride extends Ps_Shoppingcart
{
    public function hookHeader()
    {
        return;
    }
}

如果有人知道更好的解決方案,我很高興聽到

謝謝加布里埃爾

您可以在模塊 hookHeader 中使用 'unregisterJavascript' FrontController 函數刪除一些 js 實例,然后注冊您自己的 js 以覆蓋其功能。

在您的情況下,這一行: $this->context->controller->unregisterJavascript('modules-shoppingcart');

現在,您可以注冊您的 $this->context->controller->registerJavascript('instance-name', 'js-resource-path);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM