0

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

可以在此处找到此小型努力的代码(关于我正在努力解决的另一个 SO 问题)。

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

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

我整天都在为这个问题苦苦挣扎,不知道下一步该怎么做。

我究竟做错了什么?

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

1.5版有没有关于这个主题的好书?花更多时间在 SO 中寻找答案而不是做一些实际工作真的很令人沮丧。

谢谢,我真的很感激

4

1 回答 1

1

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

private function _postProcess() {
  if (Tools::isSubmit('btnSubmit')) {
    Configuration::updateValue('BANK_WIRE_DETAILS', Tools::getValue('details'));
        ...
  }
}
于 2012-11-12T22:00:04.130 回答