SugarCRM Smarty код в Listviewdefs
Я пытаюсь использовать Smarty PHP для пользовательских функций в ListView (custom / modules/Leads / metadata / listviewdefs.php) из SugarCRM (6.5.3).
Это прекрасно работает:
'customCode' => '{$LD_ASSUMED_SUGAR_ACCOUNT_ID_C}',
И это тоже:
'customCode' => '{$ACCOUNT_NAME}',
Однако это просто выводит код (скобки и все) в списке (но с именем учетной записи, замененным на правильное значение):
'customCode' => '{if $LD_ASSUMED_SUGAR_ACCOUNT_ID_C}{$ACCOUNT_NAME}{/if}',
Что я делаю не так!?
1 ответ:
Я не думаю, что вы можете достичь того же результата, который вы ищете в ListView, как вы можете в EditView & DetailView. Один из способов сделать это-добавить не-db поле в Leads vardefs и использовать логический крюк для обработки условного форматирования.
Создайте новый vardef:
/custom/Extension/modules/Cases/Ext/Vardefs/my_listview_value_c.php
<?php $dictionary['Lead']['fields']['my_listview_value_c'] = array( 'name' => 'my_listview_value_c', 'vname' => 'LBL_MY_LISTVIEW_VALUE_C', 'type' => 'varchar', 'len' => '255', 'source' => 'non-db', ); ?>
Создайте логику крюк:
/custom / modules / Leads / ListViewLogicHook.php
<?php class ListViewLogicHook { public function getListValue(&$bean, $event, $arguments) { if ($bean->ld_assumed_sugar_account_id_c) { $bean->my_listview_value_c = $bean->account_name; } else { // Whatever you'd like } } }
Добавьте запись логического крючка:
// position, file, function $hook_array['process_record'] = Array(); $hook_array['process_record'][] = Array(1, 'Conditional formatting in a listview column', 'custom/modules/Leads/ListViewLogicHook.php','ListViewLogicHook','getListValue');
Наконец, в вашем listviewdefs добавьте новый столбец:
Надеюсь, это поможет.'MY_LISTVIEW_VALUE_C' => array ( 'width' => '10%', 'label' => 'LBL_MY_LISTVIEW_VALUE_C', 'default' => true, ),