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!”}
,但这不起作用。