A volte si potrebbe aver bisogno di una diversa formattazione dei campi visualizzati nella ListView.
Un esempio potrebbe essere aggiungere un bordo di colore diverso al campo “City” nella ListView di “Accounts”.
Per prima cosa definiremo un LogicHook che sovrascriverà il valore di “City” e aggiungerà lo stile di cui abbiamo bisogno.
custom/Extension/modules/Accounts/Ext/LogicHooks/ListViewHighlight.php
1 2 3 4 5 6 |
<?php $hook_array['process_record'][] = Array(1, 'Highlight account city', 'custom/modules/Accounts/HighlightCityLogicHook.php','HighlightCityLogicHook', 'highlightCity'); ?> |
Questo imposta un “process_record” LogicHook.
Successivamente definiremo la classe che effettua la formattazione in
custom/modules/Accounts/HighlightCityLogicHook.php
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php class HighlightCityLogicHook{ public function highlightCity(SugarBean $bean, $event, $arguments){ $colour = substr(md5($bean->billing_address_city),0,6); $bean->billing_address_city = "<div style='border: solid 3px #$colour;'>".$bean->billing_address_city."</div>"; } } ?> |
Questa funzione genera il colore basato sull’MD5 del campo “City” e lo imposta come un bordo.