Template personalizzati (Smarty)
È possibile creare dei template personalizzati, che si sostituiscono a quelli standard (come EditView.tpl …).
Il nuovo template viene utilizzato se i valori di $_REQUEST della pagina soddisfano i requisiti. La registrazione di un nuovo template viene fatta tramite il metodo
SDK::setSmartyTemplate($params, $src);
$params : array associativo con i requisiti (vedere sotto)
$src : percorso del nuovo template
Per $params è possibile specificare un valore speciale (“$NOTNULL$”) per indicare che tale parametro deve esistere, con qualsiasi valore. I parametri non specificati vengono ignorati.
Se la regola da inserire esiste già o non è compatibile con quelle esistenti (cioè potrebbe causare ambiguità per alcune $_REQUEST), l’inserimento fallisce (e viene salvato nel log un messaggio esplicativo).
Per de-registrare un template personalizzato chiamare il metodo:
SDK::unsetSmartyTemplate($params, $src = NULL);
$params : array con i requisiti
$src : percorso del template (se NULL, include tutti i files)
Per sostituire completamente tutti i tipi di vista di un modulo servono almeno 7 regole:
$params | Note |
array( ‘module’=>’Leads’, ‘action’=>’ListView’) | ListView |
array( ‘module’=>’Leads’, ‘action’=>’index’) | ListView |
array( ‘module’=>’Leads’, ‘action’=>’DetailView’ , ‘record’=>’$NOTNULL$’) | DetailView |
array( ‘module’=>’Leads’, ‘action’=>’EditView’ , ‘record’=>’$NOTNULL$’) | EditView (deve esserci record nella request) |
array( ‘module’=>’Leads’, ‘action’=>’EditView’) | Creazione nuovo elemento |
array( ‘module’=>’Leads’, ‘action’=>’EditView’, ‘record’=>’$NOTNULL$’, "isDuplicate"=>"true") | Duplicazione |
array( ‘module’=>’Leads’, ‘action’=>’LeadsAjax’, ‘record’=>’$NOTNULL$’, 'ajxaction'=>'LOADRELATEDLIST', 'header'=>'Products') | Related List dei Leads che mostra I Prodotti |
NOTA: Se più regole corrispondono, verrà utilizzata la più specifica; ad esempio, se ci sono 2 regole, una con “$NOTNULL$” e una con il valore “Leads” e la request è “Leads”, verrà usata la seconda regola.
Hooks
Smarty_setup.php