【发布时间】:2015-02-23 10:23:24
【问题描述】:
我在 Sugar CRM 中创建了自定义模块。该模块的数据/线索来自网络表单。 当我将此模块的潜在客户导出到 excel 表时,我会在 excel 表中获取所有数据。但我不希望所有数据都被导出。
知道如何自定义它吗?我正在使用 Sugar CRM 的社区版。
提前致谢。
【问题讨论】:
我在 Sugar CRM 中创建了自定义模块。该模块的数据/线索来自网络表单。 当我将此模块的潜在客户导出到 excel 表时,我会在 excel 表中获取所有数据。但我不希望所有数据都被导出。
知道如何自定义它吗?我正在使用 Sugar CRM 的社区版。
提前致谢。
【问题讨论】:
有一个预定义的导出条目。您需要覆盖导出入口点,并且可以自定义导出功能。
export entryPoint直接打到根目录下的export.php
创建entry_point_registry.php文件,在里面添加如下代码
$entry_point_registry['export'] = array('file' => 'your_file_path/export.php', 'auth' => true);
【讨论】:
在您的模块 bean 类(即 Leads.php 或 YourModule.php)中添加一个覆盖方法 create_export_query。
例如,如果您像这样覆盖标准导出函数,则您的导出仅包含字段“special_field_c”。
function create_export_query(&$order_by, &$where){
$custom_join = $this->custom_fields->getJOIN(true, true);
$query = "SELECT
contacts_cstm.special_field_c as special ";
if ($custom_join) {
$query .= $custom_join['select'];
}
$query .= " FROM contacts
LEFT JOIN contacts_cstm
ON contacts.id=contacts_cstm.id_c ";
if ($custom_join) {
$query .= $custom_join['join'];
}
$where_auto = " contacts.deleted=0 ";
$query .= empty($where) ? "WHERE $where_auto" : "WHERE ($where) AND $where_auto";
$query .= empty($order_by) ? "" : " ORDER BY " . $this->process_order_by($order_by, null);
return $query;
}
【讨论】: