以下是添加自定义字段的步骤与代码示例:
在 custom/Extension/modules/Meetings/Ext/Vardefs/new_field.php 中添加如下代码:
<?php
$dictionary['Meeting']['fields']['custom_field'] = array(
'name' => 'custom_field',
'label' => '自定义字段',
'vname' => 'LBL_CUSTOM_FIELD',
'type' => 'varchar',
'len' => '255',
'default' => '',
'massupdate' => 0,
'no_default' => false,
'comments' => '',
'help' => '',
'importable' => 'true',
'required' => false,
'reportable' => true,
'audited' => false,
'duplicate_merge' => 'enabled',
'duplicate_merge_dom_value' => '1',
'merge_filter' => 'disabled',
'unified_search' => false,
'calculated' => false,
'full_text_search' => array(
'enabled' => true,
'boost' => 0.5,
'searchable' => true,
),
);
执行以下命令以更新元数据:
php -f bin/sugarcrm repair
登录SuiteCRM后台,进入「布局管理」中的「日程管理」,将新字段拖入布局视图中即可开始使用。
下面通过Hook机制自定义一个提醒逻辑:
在 custom/modules/Meetings/logic_hooks.php 文件中添加以下代码:
<?php
$hook_version = 1;
$hook_array = array();
$hook_array['before_save'][] = array(
10,
'reminder',
'custom/modules/Meetings/reminder.php',
'reminder',
'beforeSave',
);
创建 custom/modules/Meetings/reminder.php 文件,写入以下逻辑:
<?php
class reminder
{
function beforeSave($bean, $event, $arguments)
{
$before_save_custom_field = $bean->custom_field;
// 示例提醒逻辑,将信息写入日志文件
file_put_contents('reminder.log', $before_save_custom_field . "\n", FILE_APPEND);
// 可根据需求扩展为发送邮件、短信等
}
}
该功能将在保存日程前触发,可用于记录日志或推送通知等,帮助团队成员及时获悉安排。