Создание модуля: проблемы после процесса - PullRequest
0 голосов
/ 31 августа 2018

Доброе утро всем,

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

Мне нужно выполнить проверку при отправке формы (которые находятся на странице профиля пользователя, где я устанавливаю личную информацию).

Из того, что я понимаю, в форме, в которой делается отправка, первым, что вызывается в классе, является именно метод postProcess (), который заботится о проверке данных, полученных из формы, просто покорных (поправьте меня, если я я ошибаюсь).

Проблема в том, что когда я отправляю свою форму, она не входит в метод postPorcess () (я проверил кубик («тест») и он даже не показывает последний), а если я делаю проверку, мне нужно вызывая мой метод персонала внутри крюка,

Можете ли вы сказать мне, где я не прав?

Большое спасибо и хорошего дня.

Daniel.

1 Ответ

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

Daniel

Это может быть проблемой конечной точки, однако, если вы уверены, что просто обрабатываете запрос через этот класс, просто используйте Tools :: getValue ('thing_in_form ') / Tools :: isSubmit (' var '), чтобы проверить, что это отправлено.

Вам не нужно применять это. Если вам нужен пример, вы должны проверить нативные модули Prestashop или контроллеры Admin, так как это зависит от того, где вам нужно это сделать.

После нескольких лет разработки модуля я подумал, что вам следует использовать конечную точку фронт-контроллера модуля, как в случае с API, и выполнить ответ в JSON, как в этом примере:

<?php

class DummyModuleNameAjaxModuleFrontController extends ModuleFrontController
{
  public function initContent()
  {
    $response = array();

    require_once _PS_MODULE_DIR_.'dummymodulename/dummymodulename.php';

    $mod = new dummymodulename;

    if (Tools::isSubmit('action') && Tools::isSubmit('var') && Tools::getValue('var') == $mod->getSomethingForSecurity()) {

        $context = Context::getContext();

        $cart = $context->cart;

        switch (Tools::getValue('action')) {

            case 'dummy_action_name':

                // Don't forget to type it with an INT or secure this entry with strip_tags
                $my_var = Tools::getValue('var');

                break;

            default:
                break;

        }
    }

    echo Tools::jsonEncode($response);

    die;
  }
}
...