Prestashop I';我试图构建一个模块,但我可以';我不介意为什么';它不工作了?
我的模块名为Prestashop I';我试图构建一个模块,但我可以';我不介意为什么';它不工作了?,prestashop,prestashop-1.5,Prestashop,Prestashop 1.5,我的模块名为Test,后台控制器是check,下面是代码 class TestCheckModuleAdminController extends ModuleAdminController { public function __construct() { echo "Checked!"; } } 当我打算mysite/admin/index.php?controller=check&module=test时,我得到的消息是它不存在,那么出了什
Test
,后台控制器是check
,下面是代码
class TestCheckModuleAdminController extends ModuleAdminController {
public function __construct()
{
echo "Checked!";
}
}
当我打算mysite/admin/index.php?controller=check&module=test
时,我得到的消息是它不存在,那么出了什么问题
我甚至打开了它的有效URL,它必须是这样的:
class TestCheckModuleFrontController extends ModuleFrontController {
public function __construct()
{
echo "Checked Front!";
}
}
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!";
}
}
我必须使用什么url
UPD2。嗯,我的管理员/选项卡列表中有一个新选项卡。但还是不能用控制器控制它
顺便说一句,我能用这个标签做什么?也许我可以把它放在管理菜单上的任何地方,不是吗
如何从url获取此检查控制器,而不是?在后台,您的控制器是“TestCheckModule” 因此,您应该通过以下方式进行呼叫: admin/index.php?controller=TestCheckModule&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxx 您还应该提供适当的令牌 您不需要在URL中提供模块名称
最好在控制器前面加上“Admin”作为名称前缀,您只需编写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();
我希望有帮助 嗯,我有一个选项卡,但每次我重置模块时,都会添加新的选项卡。似乎模块需要一个选项卡移除机制。而且仍然不介意如何通过令牌url获取一个控制器。例如,如果
class\u name='Check'
,那么我的控制器必须在mymodule/controllers/admin/Check.php
中,不是吗?并包含一个类:class CheckController extensed ModuleAdminController{public function\uuu construct(){echo“Test!Check!”}
,但这不起作用。