首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块创建:后期处理问题

模块创建:后期处理问题
EN

Stack Overflow用户
提问于 2018-08-31 16:43:28
回答 1查看 601关注 0票数 1

大家早上好,

我正在为prestashop 1.7开发一个模块,目前在我的模块的主类中截取postprocess方法时遇到了问题。

我需要检查提交表单(这是在用户配置文件页面,在那里我设置个人信息)。

据我所知,在表单提交中,在类中调用的第一件事正是postProcess ()方法,它负责验证从表单接收到的数据(如果我错了,请纠正我的错误)。

问题是,当我提交表单时,它没有进入postPorcess ()方法(我检查了一个骰子(“测试”),它甚至没有显示后者),而如果我通过调用钩子中的方法人员来进行所需的检查,

你能告诉我我哪里错了吗?

非常感谢,祝您有愉快的一天。

丹尼尔。

EN

回答 1

Stack Overflow用户

发布于 2018-08-31 16:56:39

丹尼尔

这可能是一个端点问题,但是,如果您确定只通过这个类处理请求,只需使用Tools::getValue('something_in_form') / Tools::isSubmit('var')来检查它是否已发送。

你并不真的需要应用这个。如果您需要示例,您应该检查Prestashop的本机模块或管理控制器,因为它取决于您需要在哪里执行此操作。

经过几年的模块开发后,我的想法是,您应该像使用API和JSON中的do a response一样使用模块前端控制器端点,如下所示:

代码语言:javascript
复制
<?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;
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52111669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档