在SugarCRM SubPanel中显示具有匹配电子邮件地址的相关模块记录?

时间:2015-02-23 22:20:18

标签: sugarcrm

我们在SugarCRM中有2个模块。

模块1 =内置Contacts模块

模块2 =名为QMS模块的自定义模块。

我们希望能够在contact模块中创建新的contacts用户记录,然后在该联系人模块中设置一个子面板,该子面板将显示所有相关的qms模块记录与基于它们的联系人记录相关,具有相同的匹配email字段。

所以要澄清......在contacts module中有一个默认的email field

在我们的自定义qms module中,我们还有另一个email field

当您查看电子邮件字段值为contact module的{​​{1}}记录时,则在子面板中,它应显示任何test@test.com也具有匹配的qms module recordsemail field

这不是SugarCRM CE 6.xx中的标准行为。有谁知道我们如何才能实现这样的功能?

1 个答案:

答案 0 :(得分:5)

要完成此操作,您需要创建一个自定义函数来获取子面板的数据。

在modules / parent_module /metadata/subpaneldefs.php

中实施QMS子面板时
'qms' => array(
        'order' => 40,
        'module' => 'QMS',
        'sort_order' => 'desc',
        'sort_by' => 'date_closed',
        'get_subpanel_data' => 'function:get_qms_contacts_subpanel',
        ...
        ),

我们告诉它使用函数,而不是为get_subpanel_data提供链接字段。 这将告诉QMS子面板使用 get_qms_contacts_subpanel 函数

获取相关记录

然后进去 定制/扩展/应用/外部/的Utils / some_file_name .PHP

构造一个用于形成记录查询的函数。

<?php

function get_qms_contacts_subpanel()
{
   return array(
        "select" => "select distinct qms.id",
        "from" => "from qms",
        "join" => "join contacts on contacts.qms_id = qmd.contact_id" /*Obviously not the actual query but you get the point*/
        "where" => "where qms.email = contacts.email" /*See above*/
    );
}

我希望这会有所帮助。

有关示例,请参阅modules / Accounts / metadata / subpaneldefs.php 查看电子邮件子面板如何获取电子邮件。

检查include / utils.php以获取电子邮件子面板中使用的函数,以获取有关如何构建函数的更多信息。