获取 PrestaShop 前端控制器中的模块名称
Get name of module in PrestaShop front controller
在 PrestaShop(特别是 v1.7.5)中的一个 get an 模块 class 通过调用
$module = Module::getInstanceByName('theModuleName');
在自定义模块的控制器中。
'theModuleName'
是否可以通过其他设置或变量使用,还是需要硬编码?
它也应该用作 getModuleLink()
的第一个参数。
您可以通过以下方式访问模块名称(以及模块 class 中的其余部分):
$theModuleName = $this->module->name;
以 Prestashop 核心模块 "Cronjobs" 为例,您还可以 运行 前端控制器中的模块方法,如下所示:
class CronjobsCallbackModuleFrontController extends ModuleFrontController
{
public function postProcess()
{
$this->module->sendCallback();
die;
}
}
如果您在 ProductListingFrontController 的子项中工作,则此->模块未定义。
如果您使用 getInstanceByName 调用该模块,您将获得一个实例以便稍后使用它。字符串方式在列表控制器中不起作用。
class mymoduleMyControllerModuleFrontController extends ProductListingFrontControllerCore
{
public function init()
{
parent::init();
$this -> module = Module::getInstanceByName('mymodule');
}
}
在 PrestaShop(特别是 v1.7.5)中的一个
$module = Module::getInstanceByName('theModuleName');
在自定义模块的控制器中。
'theModuleName'
是否可以通过其他设置或变量使用,还是需要硬编码?
它也应该用作 getModuleLink()
的第一个参数。
您可以通过以下方式访问模块名称(以及模块 class 中的其余部分):
$theModuleName = $this->module->name;
以 Prestashop 核心模块 "Cronjobs" 为例,您还可以 运行 前端控制器中的模块方法,如下所示:
class CronjobsCallbackModuleFrontController extends ModuleFrontController
{
public function postProcess()
{
$this->module->sendCallback();
die;
}
}
如果您在 ProductListingFrontController 的子项中工作,则此->模块未定义。 如果您使用 getInstanceByName 调用该模块,您将获得一个实例以便稍后使用它。字符串方式在列表控制器中不起作用。
class mymoduleMyControllerModuleFrontController extends ProductListingFrontControllerCore
{
public function init()
{
parent::init();
$this -> module = Module::getInstanceByName('mymodule');
}
}