Witam,
gdzie znajdę informację w jaki sposób napisać metody klas, np. chciałbym dodać sobie dodać ajaxowy tooltip z informacjami o sprzedaży, po najechaniu na nazwę sprzedaży, na ową chwilę dodałem sobie to w pliku
/modules/Premium/SalesOpportunity/SalesOpportunityCommon_0.php
zedytowałem sobie metodę
display_opportunity_name i dopisałem 2 nowe, opportunity_get_tooltip i get_opportunity całość wygląda tak:
public static function display_opportunity_name($v, $nolink=false) {
if (is_numeric($v)) $v = self::get_opportunity($v);
if (!$v || $v=='__NULL__') return null;
$ret = '';
$ret .= Utils_RecordBrowserCommon::record_link_open_tag('premium_salesopportunity', $v['id']);
$ret .= Utils_TooltipCommon::ajax_create($v['opportunity_name'],array('Premium_SalesOpportunityCommon','opportunity_get_tooltip'), array($v));
$ret .= Utils_RecordBrowserCommon::record_link_close_tag();
return $ret;
}
public static function opportunity_get_tooltip($record) {
if (!$record[':active']) return '';
if (!Utils_RecordBrowserCommon::get_access('premium_salesopportunity', 'view', $record)) return '';
return Utils_TooltipCommon::format_info_tooltip(array(
__('Id')=>$record['id'],
__('Follow-up Date')=>Base_RegionalSettingsCommon::time2reg($record['follow_up_date'], false),
__('testy_ekonf_zdalna')=>$record['testy_ekonf_zdalna'],
__('Probability (%%)')=>$record['probability____'],
__('Description')=>$record['description'],
__('Contract Amount')=>Utils_CurrencyFieldCommon::format($r['contract_amount'])
));
}
public static function get_opportunity($id) {
static $cache;
if(!isset($cache[$id]))
$cache[$id] = Utils_RecordBrowserCommon::get_record('premium_salesopportunity', $id);
return $cache[$id];
}
i działa tak jak chcę, jednak to nie najlepszy sposób bo aktualizacja mi to nadpisze.
Widzę, że deklaracja metody, która wyświetla nazwę czyli display_opportunity_name który edytowałem jest w instalatorze:
/modules/Premium/SalesOpportunity/SalesOpportunityInstall.php
...
array('name' => _M('Opportunity Name'), 'type'=>'text', 'required'=>true, 'param'=>'64', 'extra'=>false, 'visible'=>true,'display_callback'=>array('Premium_SalesOpportunityCommon', 'display_opportunity_name')),
...
Jak najprościej mogę przenieść swój kod do swojego pliku żeby Epesi wiedziało że ma wykorzystywać moja metodę do wyświetlania a nie default'ową ?