Prestashop продукт крючки администратора - PullRequest
0 голосов
/ 05 июля 2019

Я создаю новый плагин для Prestashop. Плагин активирован, работает нормально, за исключением того, что я не могу подключиться к определенной области в Prestashop Product Admin (backoffice).

Я использую этот хук: 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 ]

1 голос
/ 06 июля 2019

Используйте return вместо echo, и оно будет работать

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

и не забудьте сбросить модуль, чтобы сначала зарегистрировать ловушку

0 голосов
/ 08 июля 2019

Позже я обнаружил, что явно регистрировать хуки (особенно для бэкэнд-хуков) в функции установки.Я только что зарегистрировал хук в конструкторе для целей тестирования (у меня всегда так работали хуки внешнего интерфейса).

Поэтому я поместил хук в функцию установщика, снова активировал модуль, и он заработал.

Надеюсь, это может кому-то помочь =)

...