2

我希望能够创建一个模块作为 SugarCRM 和其他数据库之间的交互。为此,我使用模块构建器工具构建了一个模块,我想将它连接到一个新表,该表是糖数据和我的第二个应用程序数据之间的连接(以防止数据重复)。

由于我的模块新表是其他两个视图之间的视图,因此糖可以毫无问题地查看内容,但每当我尝试插入任何内容时都会引发异常。所以我想使用一个逻辑钩子,它将数据直接存储在两个“原始”表中。

这是我的问题:即使数据被正确存储,我也想阻止糖尝试存储任何东西。一旦我的钩子完成了它的工作,我可以在我的钩子中做些什么来阻止糖的作用吗?

对不起我糟糕的英语,感谢您的阅读。

4

1 回答 1

1

我推荐的是覆盖自定义模块控制器中的 Save 方法。

构建和部署模块后,将有一个新目录:custom/modules/yourcustommodule. 在该目录中,创建一个名为controller.php.

该文件应包含以下(未经测试的)代码:

require_once('include/MVC/Controller/SugarController.php');

class yourcustommoduleController extends SugarController {
    function action_save() {
        return;
    }
}

您甚至可以将之前/之后的挂钩移动到此自定义操作函数中。只要您不调用默认保存方法(parent::action_save();我认为),SugarCRM 的默认保存操作就不会发生。

重要提示:部署自定义模块后,SugarCRM 的最佳实践是永远不要重新部署它,而是在 Studio 中进行所有后续更改。这很重要,因为一旦您对自定义模块进行这些文件级更改,如果您重新部署该模块,这些更改将会丢失。

于 2013-08-14T19:24:52.953 回答