Prestashop 1.7 переопределить фронт-контроллер от модуля - PullRequest
0 голосов
/ 13 февраля 2020

У меня проблема с переопределением фронт-контроллера в моем пользовательском модуле. У меня есть модуль:

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class cartlimit extends Module
{

    public function __construct()
    {
        $this->name = 'cartlimit';
        $this->tab = 'front_office_features';
        $this->author = 'somedata';
        $this->version = '1.0.0';
        $this->need_instance = 0;
        $this->ps_versions_compliancy = array('min' => '1.7', 'max' => _PS_VERSION_);
        $this->bootstrap = true;

        parent::__construct();

        $this->displayName = $this->l('cart limit');
        $this->description = $this->l('module for cart limit');
    }

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

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

в моем модуле у меня есть переопределение контроллера / контроллеры / CartController. php с кодом:

      <?php

use PrestaShop\PrestaShop\Adapter\Presenter\Cart\CartPresenter;

class CartControllerCore extends FrontController
{
    public $php_self = 'cart';

    public function init()
    {
        parent::init();
        $this->qty = abs(Tools::getValue('qty', 1));
        var_dump(1);

        if ($this->qty >= 2) {
            #How can i show notification?
        }
    }

}

Когда я устанавливаю свой модуль и добавляю продукт в корзина, то моя переопределение не работает. Presta добавляет товар в корзину вместо показа var_dump. Второй вопрос: как я могу показать уведомление, когда $ this-> qty is> = 2?

Я спрашиваю везде, но ни одного ответа.

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Вам необходимо сохранить в yourmodule/override/controllers/front/CartController.php.

Затем вам нужно переопределить основной CartController следующим образом:

CartController extends CartControllerCore {
    // do whatever
}

Наконец, вам нужно сбросить / переустановить модуль для копирования PrestaShop переопределение автоматически.

0 голосов
/ 21 февраля 2020

Вы можете отображать уведомления в контроллере с помощью команды

$this->success[] = $this->l(' Succes info.');
...