2010-11-10 61 views
3

我试图在SugarOS 6中创建一个自定义字段来存储中间名。在Studio中设计和实现EditView中的字段非常简单。但是当我在DetailView(即称呼+名字+中间名+姓氏)中显示连接名称部分时,我被卡住了。SugarCRM:编写自定义中间名字段

通过糖论坛got me to this thread觅食,其中描述了可以完成的方式。我已经以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屏幕中出现全名的行。

任何想法?

感谢, 平方公尺Ë

回答

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值。

+0

这是一个很酷的快速修复。谢谢:)但我正在寻找一种方式,通过$ bean-> full_name(对于Leads)将产生所有3个字段的连接结果。我追溯到include/SugarObjects中的Person类的名为_create_proper_name_field()的例程。我试图找出一种安全地重写此例程的方法,因为这样做会反映出Sugar中所有可能视图的变化。 – 2010-11-26 02:20:07