我想更改現有的prestashop模塊而不復制它並創建新模塊。我知道可以重寫prestashop中的.tpl文件,但是可以用php類做同樣的事情嗎?例如,我想更改blockcart,以便它可以掛在上面。由於原始版本沒有那個鉤子,我需要更改install()函數!我不能改變原始的源代碼(這是不好的主意不是它...)文件我需要通過繼承blockcart模塊來重寫install()函數。有沒有可能這樣做,我可以找到例子?Prestashop - 現有prestashop模塊中的覆蓋功能
8
A
回答
11
我使用我自己的覆蓋到FrontController類,以允許在tpl文件中的任意點顯示模塊輸出 - 這意味着模塊不需要支持特定的鉤子。它通過一個智者插件實現的,所以你可以例如使用:
{plugin module='blockcart' hook='rightColumn'}
以上將強制模塊輸出什麼,如果鉤到上面的標籤插在右列會顯示(可任何tpl文件中的任何地方)。您可以從右欄中「解除」模塊,以便它僅顯示您希望使用此技術的位置。我已經在生產網站上使用它,取得了巨大的成功。
有說明它是如何工作(與所需的代碼)提供了一系列的文章:
3
在Prestashop 1.4中,您可以覆蓋核心類和模塊模板 今天,這是不可能覆蓋模塊的php文件,但我們正在努力。
1
由於的PrestaShop 1.6.0.11版本中,有一個新的功能,允許開發人員重寫模塊的實例類。
通過 擴展它要覆蓋一個模塊的實例類重寫模塊的實例類,你必須把它擴大,從而擴展的類相同的名稱和增加覆蓋後綴:
<?php
if (!defined('_PS_VERSION_'))
exit;
class BlockUserInfoOverride extends BlockUserInfo
{
public function hookDisplayNav($params)
{
return '<div class="header_user_info"><a>Test</a></div>';
// return $this->display(__FILE__, 'nav.tpl');
}
}
來源:http://build.prestashop.com/howtos/module/how-to-override-modules/
相關問題
- 1. Prestashop模塊的CSS覆蓋
- 2. Prestashop支付模塊覆蓋
- 3. 覆蓋Prestashop模塊更改不可見
- 4. Prestashop鉤子和覆蓋模塊
- 5. 覆蓋prestashop模塊翻譯缺失
- 6. Prestashop:覆蓋核心模塊類
- 7. PrestaShop - 覆蓋模塊CSS文件
- 8. 覆蓋MyAccountController Prestashop
- 9. 覆蓋的Prestashop 1.6.1.4
- 10. 使用prestashop模塊中的現有類
- 11. 在prestashop中覆蓋paypal模塊模板文件
- 12. 模塊prestashop
- 13. Prestashop模塊API
- 14. 覆蓋prestashop管理員TPL
- 15. Prestashop 1.6覆蓋feature.php類
- 16. 在Prestashop上安裝模塊時覆蓋模板
- 17. Prestashop - 如何覆蓋自己的模塊中的另一個模塊
- 18. Git的Prestashop模塊
- 19. 覆蓋Prestashop模塊控制器:放置php文件的位置?
- 20. 如何覆蓋prestashop 1.5中的FrontController?
- 21. Prestashop - 用模塊更改核心函數(不是覆蓋目錄)
- 22. Prestashop傳真模塊
- 23. Prestashop支付模塊
- 24. 擴展Prestashop功能
- 25. Prestashop 1.6 addJS和andCss不能在功能模塊getContent()中爲admin
- 26. nodejs覆蓋模塊中的功能
- 27. 創建prestashop模塊試圖在PrestaShop模塊上顯示錯誤
- 28. 的Prestashop不能訪問模塊
- 29. 的Prestashop覆蓋店鋪等級
- 30. 的Prestashop模塊調試
Wow偉大的解決方案保羅! – 2011-09-07 10:30:09
我一直覺得雖然Modules和hooks系統在很多情況下都有效,但有些時候它太僵化了。很高興你發現它很有用。 – 2011-09-08 18:02:29
優秀的保羅!順便說一下,我可以傳遞一些參數到模塊的鉤子?謝謝! – 2013-12-06 06:19:42