Prestashop产品管理员挂钩

时间:2019-07-05 16:43:18

标签: output prestashop hook

我正在为Prestashop创建一个新插件。插件已激活,工作正常,除了我无法进入Prestashop产品管理员(后台)中的特定区域。

我正在使用此钩子:DisplayAdminProductsMainStepLeftColumnMiddle。 我可以看到它被放置在prestashop的模板化树枝引擎中,并且我正像下面那样使用它,但是内容根本没有显示。

奇怪的是,我可以轻松地挂接,即钩住AdminOrder,没问题,但不挂接DisplayAdminProductsMainStepLeftColumnMiddle。

class my_module extends Module
{


    public function __construct()
    {

        $this->name = "my_module";
        $this->tab = 'front_office_features';
        $this->version = '1.0.0';
        $this->author = 'my_author';
        $this->need_instance = 1;
        $this->ps_versions_compliancy = [
            'min' => '1.6',
            'max' => _PS_VERSION_,
        ];

        $this->bootstrap = true;

        parent::__construct();

        $this->displayName = $this->l('my_module');
        $this->description = $this->l('my_module');
        $this->confirmUninstall = $this->l('You are about to uninstall Product addons. Wish to continue?');

    }

    public function install()
    {
        return
            parent::install()
            && $this->registerHook('displayAdminProductsMainStepLeftColumnMiddle')
            && $this->registerHook('adminOrder');
    }

    public function uninstall()
    {
        return parent::uninstall();
    }

    public function HookDisplayAdminProductsMainStepLeftColumnMiddle() //No content is being displayed in the productpage backoffice
    {
        echo 'Content in hook';
    }

    public function HookAdminOrder() //This hook works perfectly fine
    {
        echo 'Content in hook';
    }

}

2 个答案:

答案 0 :(得分:1)

使用return代替echo,它将起作用

public function hookDisplayAdminProductsMainStepLeftColumnMiddle()
{
    return 'Content in hook';
}

并且不要忘记首先重置模块以注册钩子

答案 1 :(得分:0)

我后来发现在安装函数中显式注册钩子(尤其是后端钩子)是很明显的。我只是将钩子注册到构造函数中以进行测试(前端钩子总是对我有用)。

因此,我将钩子放入安装程序功能中,重新激活该模块,然后它开始工作。

希望这可以帮助某人=)