Prestashop 实施",;“违约”;自定义类的行为(在任何给定时间只有一个项处于活动状态)

Prestashop 实施",;“违约”;自定义类的行为(在任何给定时间只有一个项处于活动状态),prestashop,Prestashop,我正在构建一个视频模块,该模块将URL与标题关联起来(这很简单),但我需要它来强制执行“默认”行为,在该行为中,在任何给定时间只有一个项目处于活动状态。普雷斯塔索普悲惨的文件将是我的死亡 可以找到这一微小努力的代码(关于我一直在努力解决的另一个问题) 我的想法是在后台AdminVideo控制器内的后处理函数中运行SQL查询。在这里,以及在插入/更新之后,我将触发一个SQL查询,将所有其他行上的“active”列的值设置为0 我的问题是这个函数-postProcess()-会被一次又一次地调用(包

我正在构建一个视频模块,该模块将URL与标题关联起来(这很简单),但我需要它来强制执行“默认”行为,在该行为中,在任何给定时间只有一个项目处于活动状态。普雷斯塔索普悲惨的文件将是我的死亡

可以找到这一微小努力的代码(关于我一直在努力解决的另一个问题)

我的想法是在后台AdminVideo控制器内的后处理函数中运行SQL查询。在这里,以及在插入/更新之后,我将触发一个SQL查询,将所有其他行上的“active”列的值设置为0

我的问题是这个函数-postProcess()-会被一次又一次地调用(包括当需要列出视频时),并且查询不能每次都运行

我为这个问题挣扎了一整天,不知道下一步该怎么办

我做错了什么

是否有其他方法可以重载,以便在每次更新/创建行时轻松触发SQL查询

1.5版有关于这个主题的像样的书吗?花更多的时间去寻找答案,而不是去做一些实际的工作,这确实令人沮丧


谢谢,我非常感谢

您必须检查后处理功能中的提交按钮。
例如,在
modules/bankwire/bankwire.php
script:

private function _postProcess() {
  if (Tools::isSubmit('btnSubmit')) {
    Configuration::updateValue('BANK_WIRE_DETAILS', Tools::getValue('details'));
        ...
  }
}

嗯,好的,但是bankwire模块似乎根本没有后台管理面板(我真的需要它)。在adminvideo.php控制器内的postProcess()函数中粘贴Tools::isSubmit实际上不起作用,bankwire模块的代码也不容易修改(同样是后台)…Enzino,还有一件事:我似乎无法使用Tools::getValue获得任何值(我相信它总是空的)。我在这里发布完整的代码---,知道我做错了什么吗?谢谢你过去几天的帮助。。。非常感谢。@Hal
Tools::getValue
方法在没有带有指定键的$\u POST或$\u GET元素时返回false。尝试添加语句
echo“”。打印($\u请求,true)。“”转换到
postProcess()
函数中,只是为了查看您要查找的变量是否已有效设置。确定它,只需将其转换为字符串:(string)Tools::getValue('title'):)