我正在嘗試重寫Prestashop中的模塊。我已經成功地重寫了模塊的模板,但是我無法成功覆蓋模塊的控制器。覆蓋Prestashop模塊控制器:放置php文件的位置?
應該在哪裏放置新的控制器類文件?
我曾嘗試以下的位置,但他們不增加新的行爲(改變任何東西):
〜/重寫/模塊/ blockwishlist /控制器/正面/ mywishlist.php
〜/主題/ MY_THEME /模塊/ blockwishlist /控制器/正面/ mywishlist.php
據我previous question我可以通過編輯核心類(通過U /謝爾蓋·P好心建議)做,但我肯定有做一個標準的方法這不涉及編輯核心c lasses?
僅供參考;這裏是mywishlist.php
內容:
<?php
if (!defined('_CAN_LOAD_FILES_'))
exit;
//class BlockWishListMyWishListModuleFrontController extends BlockWishListMyWishListModuleFrontControllerCore // extends ModuleFrontController
class BlockWishListMyWishListModuleFrontControllerOverride extends BlockWishListMyWishListModuleFrontController
{
public function __construct()
{
parent::__construct();
}
/**
* Assign wishlist template
*/
public function assign()
{
$errors = array();
....
$this->setTemplate('mywishlist.tpl');
}
}
編輯:我已經不能夠覆蓋ModuleFrontController
類可能的解決方法。目標是在「我的願望清單」頁面添加一個「導出爲CSV」按鈕,點擊該按鈕後,服務器將生成一個包含該願望清單中所有產品的CSV文件。之前,我做了所有的工作,你能對這個是否有可能提供建議......在模板文件
- 將掛鉤,將調用自定義掛鉤,並鏈接到自定義模塊
{hook h='displayExportToCsvColumn' mod='myCustomModule'}
- 創建自定義註冊新鉤子的模塊具有呈現表列和按鈕的方法,並具有生成CSV文件的方法。
- 大問題:你可以有一個模塊內的模塊?我正在編輯的模板文件位於模塊
BlockWishlist
(〜/ themes/MY_THEME/modules/blockwishlist/controllers/front/mywishlist.php)內,然後我的鉤子將調用我的自定義模塊。這可能嗎?
它可能取決於你有什麼PS版本。一些覆蓋只在最近的版本中添加。 – gskema
@gskema感謝您的評論。我有版本1.6.1.2。控制器文件應該放在這個版本的PS中? –