在创建或更新任务时尝试向suiteCRM添加逻辑挂钩

时间:2016-07-07 14:33:00

标签: sugarcrm suitecrm

这是我第一次尝试编写sugarCRM / suiteCRM。

我应该说我已经为Wordpress编写了将近10年的代码,但是现在我已经完全迷失了,我开始深入研究套件CRM。

我已经读过您可以在将数据保存到数据库后添加逻辑挂钩以修改数据,但我不知道从哪里开始......

想象一下,我今天(7月7日)创建了一个与我每两个月访问一次的客户相关的任务,因此在账户中有一个名为"访问频率"的字段。我希望将未来日期(7月7日+ 60天= 9月7日aprox)添加到任务的未来访问日期"字段,所以我可以用它来通过Workflow创建特定的未来任务。

我尝试做的是计算任务中的字段(未来访问日期),该字段等于帐户模块的字段(访问频率)添加到任务中的天数&# 39;自己的日期字段。

我已经能够使用以下布局使其工作:

内部\custom\modules\Tasks\logic_hooks.php

<?php

$hook_version = 1; 
$hook_array['before_save'] = Array();

$hook_array['before_save'][] = Array(
    1, //Processing index. For sorting the array.
    'future_task_date_on_task_creation', //Label. A string value to identify the hook.
    'custom/modules/Tasks/future_visit_date.php', //The PHP file where your class is located.
    'before_save_class', //The class the method is in.
    'future_visit_date' //The method to call.
);

?>

Inside \ custom \ modules \ Tasks \ future_visit_date.php

<?php

if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');

class before_save_class {

    function future_visit_date($bean, $event, $arguments) {
        $bean->rhun_fecha_sig_c = date("Y-m-d H:i:s", $date);
    }

}

?>

通过此设置,未来访问日期将填入计算日期。

我还读到不建议使用此设置,并且我应该使用Extension Framework并将第一个文件放在此路径中:

/custom/Extension/modules/Tasks/Ext/LogicHooks/<file>.php

但我无法使其发挥作用。

如果不存在,我是否必须创建LogicHooks文件夹? 我应该为这个文件分配哪个文件名? 我是否必须在代码中更改其他内容?

1 个答案:

答案 0 :(得分:2)

是的,创建LogicHooks目录(如果它不存在)。可以根据需要调用PHP文件。

/custom/Extension/modules/Tasks/Ext/LogicHooks/MyLogicHookFile.php

像以前一样在此文件中定义逻辑挂钩。

<?php

$hook_version = 1; 
$hook_array['before_save'] = Array();

$hook_array['before_save'][] = Array(
    1, //Processing index. For sorting the array.
    'future_task_date_on_task_creation', //Label. A string value to identify the hook.
    'custom/modules/Tasks/future_visit_date.php', //The PHP file where your class is located.
    'before_save_class', //The class the method is in.
    'future_visit_date' //The method to call.
);

然后从“管理”面板运行修复和重建。

使用Extension框架的主要优点是它允许多个开发人员向Sugar实例添加组件,而不必担心覆盖现有代码。
有关详细信息,请参阅Developer Guide