3

我正在尝试在 SugarOS 6 中创建一个自定义字段来存储中间名。使用 Studio 在EditView中设计和实现该字段非常容易。但是当谈到在DetailView中显示串联的名称部分(即Salutation + First Name + Middle Name + Last Name)时,我被卡住了。

Foraging through the Sugar Forums让我找到了这个线程,它描述了一种可以完成的方法。我已经以 Sugar 逻辑钩子的形式实现了那里给出的代码,该钩子利用了在加载记录时调用的after_retrieve钩子。

这是我的钩子代码:

$hook_array['after_retrieve'] = Array(); 
$hook_array['after_retrieve'][] = array(
        100, 
        'set_full_name', 
        'custom/modules/Leads/leads_custom_logic.php', 
        'LeadsCustomLogic', 
        'setFullName'
);

这是被调用的函数:

function setFullName( &$focus, $event, $arguments ) {
    $name = $focus->salutation . ' ' . 
            $focus->first_name . ' ' .
            ( $focus->middle_name_c ? ( $focus->middle_name_c . ' ' ) : '' ) . 
            $focus->last_name;
    $focus->name = $name;
    $focus->full_name = $name;
    // echo $focus->full_name;
}  

钩子和被调用的代码似乎工作正常,如果我取消注释最后一行(回显),则全名将被转储到整个屏幕上(无论调用此函数的位置)。但是,它没有显示它实际应该显示的位置,即 DetailView 屏幕中出现全名的行。

有任何想法吗?

谢谢,m^e

4

1 回答 1

1

也许只需更改detailview.php并将以下内容添加到您的全名字段 defs

'customCode' => '{$fields.salutation.value} {$fields.first_name.value} {$fields.midle_name_c.value} {$fields.last_name.value}'

作为新key => value的数组,将显示自定义代码而不是 full_name 值。

于 2010-11-26T00:40:45.120 回答