# 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 |
**Hooks** Smarty\_setup.php