Передача переменной между крючками в одном файле класса - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь получить значение из одного хука действия, которое будет отображаться на странице администратора.

public function hookActionProductCancel($params)
{
    $this->response = "response";
}
public function hookDisplayAdminOrder($params) {
    $this->context->smarty->assign('response', $this->response);
    return $this->display(__FILE__, 'views/templates/admin/response.tpl');
}

Я не получаю значение «response» в response.tpl. Вероятно, небольшая проблема, но я не понимаю в данный момент.

Любое руководство действительно ценится. Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы должны просто сохранить ответ на cookie и очистить его перед отображением.

public function hookActionProductCancel($params)
{
    // code
    $this->context->cookie->mymodule_response = "response";
    $this->context->cookie->write();
}
public function hookDisplayAdminOrder($params) 
{
    // if no response stored in cookie do nothing
    if (!$this->context->cookie->mymodule_response) {
        return false;           
    }

    // assign response from cookie to smarty then clear response from cookie
    $this->context->smarty->assign('response', $this->context->cookie->mymodule_response);
    unset($this->context->cookie->mymodule_response);

    return $this->display(__FILE__, 'views/templates/admin/response.tpl');
}
0 голосов
/ 29 августа 2018

Вы забыли использовать this

public function hookActionProductCancel($params)
{
    ..... codes .....
    $this->response = "response";
}

public function hookDisplayAdminOrder($params) 
{
    $this->context->smarty->assign('response', $this->response);
    return $this->display(__FILE__, 'views/templates/admin/response.tpl');
}
...