Php 触点模块中的逻辑钩
我需要SuiteCRM中的下一件事:当我保存联系人(填写他的名字和姓氏)时,我需要在一个字段中输入缩写的名字。例如,我需要的是J.Smith,而不是John Smith 我做了下一个代码:Php 触点模块中的逻辑钩,php,sugarcrm,suitecrm,Php,Sugarcrm,Suitecrm,我需要SuiteCRM中的下一件事:当我保存联系人(填写他的名字和姓氏)时,我需要在一个字段中输入缩写的名字。例如,我需要的是J.Smith,而不是John Smith 我做了下一个代码: class contactShortName { function getShortName($bean, $event, $arguments) { $bean->short_name = substr($bean->first_name,0,1) . '.' .
class contactShortName
{
function getShortName($bean, $event, $arguments)
{
$bean->short_name = substr($bean->first_name,0,1) . '.' . $bean->last_name;
$bean->save();
}
}
但它不起作用。请提供帮助。根据提供的信息,custom/modules/Contacts/logic_hooks.php文件应包含类似以下内容:
$hook_version = 1;
$hook_array = Array();
$hook_array['before_save'] = Array();
$hook_array['before_save'][] = [1, 'Set short name', 'path/to/contactShortName.php', 'contactShortName', 'getShortName'];
文件应该是
class contactShortName
{
function getShortName($bean, $event, $arguments)
{
$bean->short_name = substr($bean->first_name,0,1) . '.' . $bean->last_name;
}
}
这应该行…您是否已将其添加到自定义/modules/Contacts/logic_hooks.php文件中?@johnmcuk当然可以。快速修复和构建您肯定不需要$bean->save()部分,这可能会导致无限循环。谢谢您的回答,但它仍然不起作用:(逻辑钩子正在启动吗?如果您执行var_dump())在getShortName方法中,它显示了吗?是的,我只是为了测试而尝试了$bean->short\u name=$bean->last\u name,它工作了。但是当我添加substr函数时,它不工作了。我唯一能想到的是,因为short\u name是一个自定义字段,它实际上可能是$bean->short\u name\u cwell,我找到了解决方案。我用俄语打印,一个一个俄文字母被视为两个符号,而不是一个英文符号。这就是为什么我需要像substr($bean->first_name,0,2)这样的操作来打印第一个字母。非常感谢您的帮助!