Автор Тема: При инициализации модуля изменить код другого контроллера  (Прочитано 66 раз)

11 Март 2018, 19:15:19
  • Старожил
  • ****
  • Сообщений: 378
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени суток всем!
Прошу помощи в решении такого момента..
Сделана своя страница отзыва с контроллером MyPageController все работает.
В контроллере проверка переменных при отправки на сервер
class MyPageControllerCore extends FrontController
{

public function postProcess()
{
if (Tools::isSubmit('submitOtzyv'))
{

$otzyv = Tools::getValue('otzyv');
if (!$otzyv)
$this->errors[] = Tools::displayError('ошибка 1');
else if (!Validate::isCleanHtml($otzyv))
$this->errors[] = Tools::displayError('ошибка 2');

else
{
Есть другой новый модуль testmodule. И его установка...
function install()
    {
     

return (parent::install() && $this->fixFiles() );

    }

 private function fixFiles() {
. . . . тут код
. . . . .

         return true;
     }
Возможно как - то при установке данного  модуля testmodule  прописать  добавление строки в MyPageController
else if (Configuration::get('_ZAP_') != Tools::getValue('Zap'))
$this->errors[] = Tools::displayError('ошибка 3');
Что - бы в контроллере MyPageController получить такой код

public function postProcess()
{
if (Tools::isSubmit('submitOtzyv'))
{

$otzyv = Tools::getValue('otzyv');
if (!$otzyv)
$this->errors[] = Tools::displayError('ошибка 1');
else if (!Validate::isCleanHtml($otzyv))
$this->errors[] = Tools::displayError('ошибка 2');

else if (Configuration::get('_ZAP_') != Tools::getValue('Zap')) // добавлена
$this->errors[] = Tools::displayError('ошибка 3');
else
{
Может как - то в override переопределить контроллер MyPageController?
Подскажите как можно или нет реализовать это.

Спасибо!
11 Март 2018, 20:00:18
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33160
  • Репутация: +26762/-0
    • Просмотр профиля
В модуле переопределить контроллер MyPageController
class MyPageController extends MyPageControllerCore
11 Март 2018, 20:29:51
Ответ #2
  • Старожил
  • ****
  • Сообщений: 378
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо большое за ответ.
Только вот я не понял, в каком модуле переопределить и как?

Я пробовал делать в override - -> controllers - - > front

Создал MyPageController.php с кодом

Class MyPageController extends MyPageControllerCore
{
 public function initContent()
    {
    
        parent::initContent();
   
.....
.....
      
    } 

}


Но он почему - то не работает.
Или как?
Подскажите.

Спасибо!
11 Март 2018, 22:21:03
Ответ #3
  • Старожил
  • ****
  • Сообщений: 378
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля