如何根据Leads的'Campaign'子面板中的信息在SugarCRM / SuiteCRM中创建逻辑钩子?

时间:2017-01-11 14:23:39

标签: php sugarcrm suitecrm

我在潜在客户模块中有一个字段为“interested_c”,它是十进制类型并存储数值。

以下是Leads Module的Campaign子面板的详细视图。

Leads Details View

一条记录有活动类型= Click-thru(iink)和相应的'related',这是一个URL(跟踪器)。

我想为引导模块创建一个逻辑钩子,如果可能的话,可以使用这两条信息作为每个例子的条件:

if Activity Type = Click-thru (link) and other 'related' = <urlxyz>, 然后将增量值添加到自定义字段“interested_c”。

如何创建这样的逻辑钩子?

有些信息可能会有所帮助:

  1. 此“广告系列”子面板从模块获取大部分数据:CampaignLog(与Campaign有关系)。 [对应的MySQL表:campaign_log]
  2. 这些变量在suitecrm&gt; modules&gt; CampaignLog&gt;的vardefs.php中定义。 Vardefs of the fields concerned here

1 个答案:

答案 0 :(得分:2)

脱离我的头脑,并使用modules/Accounts/AccountsJjwg_MapsLogicHook.php中的相关字段逻辑钩子示例:

创建两个文件:

custom/modules/Leads/logic_hooks.php
custom/modules/Leads/LeadsLogicHooks.php

logic_hooks.php:

<?php
$hook_version = 1; 
$hook_array = Array(); 
$hook_array['before_save'][] = Array(51, 'updateCounter',
'custom/modules/Leads/LeadsLogicHooks.php', 'LeadsLogicHooks', 'updateCounter'); 
?>

LeadsLogicHooks.php:

<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not a valid Entry Point'); 
class LeadsLogicHooks{ 
 function updateCounter(&$focus, $event, $arguments){ 
  require_once('custom/modules/CampaignLog/CampaignLog.php');
  $campaigns = $bean->get_linked_beans('campaign', 'Campaign');
  foreach ($campaigns as $campaign) {
   if ($campaign->activity_type == "Click-thruLink" && !empty($campaign->related_type)) {
          $focus->interested_c += 1;
   } #if 
  } #for 
 } #function 
} #class