实现自定义类的“默认”行为(在任何给定时间只能有一个项目处于活动状态)

时间:2012-11-12 19:05:21

标签: prestashop

我正在构建一个视频模块,它将URL与标题相关联(它尽可能简单),但我需要它来强制执行“默认”行为,其中在任何给定时间只有一个项可能处于活动状态。 Prestashop的悲惨文件将是我的死...

可以找到这个小型努力的代码here(在我正在努力解决的另一个问题上)。

我的想法是在后台管理视频控制器内的postProcess函数中运行SQL查询。在这里 - 以及插入/更新之后 - 我将触发一个SQL查询,该查询将所有其他行的“活动”列的值设置为0.

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

我一整天都在努力解决这个问题,不知道下一步该做什么。

我做错了什么?

我是否可以重载另一种方法,以便在每次更新/创建行时轻松触发SQL查询?

对于1.5版本,这个主题是否有任何体面的书籍?花更多的时间在SO上寻找能够做一些实际工作的答案真的很令人沮丧。

谢谢,我真的很感激

1 个答案:

答案 0 :(得分:1)

您必须检查_postProcess函数中的提交按钮 例如,在modules/bankwire/bankwire.php脚本中查看bankwire模块的_postProcess函数:

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