SugarCRM - 防止自定义模块的记录

时间:2013-07-26 13:26:42

标签: database module sugarcrm

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

由于我的模块新表是另外两个视图,因此Sugar查看内容没有任何问题,但每当我尝试插入任何内容时都会抛出异常。所以我想使用一个逻辑钩子,它将数据直接存储在两个“原始”表中。

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

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

1 个答案:

答案 0 :(得分: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中进行所有后续更改。这很重要,因为一旦对自定义模块进行了这些文件级更改,如果重新部署模块,这些更改将会丢失。