2014-01-20 35 views
0

我模塊調用Test和後臺控制器,這是check,這裏是代碼我試圖建立一個模塊,但不介意它爲什麼不工作?

class TestCheckModuleAdminController extends ModuleAdminController { 

    public function __construct() 
    { 

     echo "Checked!"; 

    } 

} 

當我要mysite/admin/index.php?controller=check&module=test我得到它不存在的消息,所以最近出了什麼問題?

我甚至打開它有效的URL,它必須是這樣的:

mysite/admin/module/test/check但這個沒有任何反應。

但如果它是一個前端控制器是這樣的:

class TestCheckModuleFrontController extends ModuleFrontController { 

    public function __construct() 
    { 

     echo "Checked Front!"; 

    } 

} 

的URL,這將是像mysite/module/test/check而且還好吧。

我想這是這個沒有重寫規則.htaccess

我想這...

RewriteCond %{HTTP_HOST} ^test.test$ 
RewriteRule ^admin([0-9]{4})/module/([a-z]+)/([a-z]+) module=$1&controller=$2 [L] 

也許這是不對的,但接近答案。

UPD 1.

prestashop/modules/mymodule/controllers/admin/check.php 

和它的來源現在:

class TestCheckController extends ModuleAdminController { 

    public function __construct() 
    { 
     echo "Checked!"; 
    } 

} 

什麼網址我一定要使用它?

upd 2.嗯,我在我的管理員/選項卡列表中有一個新選項卡。但仍然無法控制它。

russian panel

我可以用這個標籤順便說一句嗎?也許我可以把它放在管理菜單上的任何地方?

check

怎樣才能從一個url比這個檢查控制器?

回答

1

對於你應該只寫TestCheckController而不是TestCheckModuleAdminController名稱前綴控制器一個很好的做法。我最近做了它,它適用於我。

您也可以在路上延伸的Prestashop菜單欄,你將不再需要自己提供一個令牌:

模塊安裝方法,添加以下代碼:

$parentTab = new Tab(); 
$parentTab->name[$this->context->language->id] = $this->l'('My module Top tab'); 
$parentTab->class_name = 'TopModuleNav'; 
$parentTab->id_parent = 0; 
$parentTab->module = $this->name; 
$parentTab->add(); 

$adminMenuItem = new Tab(); 
$adminMenuItem->name[$this->context->language->id] = $this->l'('Admin Menu Item'); 
$adminMenuItem->class_name = "TestCheck"; 
$adminMenuItem->module = $this->name; 
$adminMenuItem->id_parent = $parentTab->id; 
$adminMenuItem->add(); 

希望它有助於!

+0

嗯,我有一個選項卡,但每次重新設置我的模塊新選項卡已被添加。似乎該模塊需要一個製表符清除機制。 – Smash

+0

而且還不能介意如何通過令牌url來獲取控制器。 – Smash

+0

例如,如果'class_name ='Check''那麼我的控制器必須位於'mymodule/controllers/admin/check.php'中是不是?幷包含類:'類CheckController擴展ModuleAdminController { \t公共職能__construct() \t { \t \t呼應; 「測試檢查!」 \t} }'但是,那是行不通的。 – Smash

1

在的BackOffice控制器是 「TestCheckModule」 所以你應該通過調用它:?

管理/ index.php的控制器= TestCheckModule &令牌= xxxxxxxxxxxxxxxxxxxxxxxxxxx

你應該提供一個正確的令牌,以及。

您不需要在URL中提供模塊名稱。

這是一個與「管理」

相關問題