What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Nome Attributo | Tipo | Obbligatorio | Default | Descrizione |
---|---|---|---|---|
file | stringa | sì | nessuno | Nome del file php da includere |
once | booleano | no | true | Se includere o no il file php più di una volta nel caso venga richiesto più volte |
assign | stringa | no | nessuno | Nome della variabile cui sarà assegnato l'output di include_php |
include_php è deprecato da Smarty, in quanto potete ottenere la stessa funzionalità attraverso una funzione utente. L'unica ragione per usare include_php è se avete una reale necessità di tenere fuori la funzione php dalla directory dei plugin o dal vostro codice applicativo. Vedere l'esempio di template a componenti per i dettagli.
i tag include_php sono usati per includere uno script php nel template. Se la security è abilitata, lo script php si deve trovare nel percorso di $trusted_dir. Il tag include_php deve avere l'attributo "file", che contiene il percorso al file da includere, che può essere assoluto relativo alla directory $trusted_dir.
include_php è un ottimo modo per gestire template a componenti, e tiene il codice PHP separato dai file dei template. Diciamo che abbiamo un template che mostra la navigazione del nostro sito, che viene prelevata dinamicamente da un database. Possiamo tenere la logica PHP che ottiene il contenuto del database in una directory separata, ed includerla in cima al template. Ora possiamo includere questo template ovunque senza preoccuparci che l'applicazione abbia preventivamente caricato i dati del database.
Per default, i file php sono inclusi una sola volta, anche se richiesti più volte nel template. Potete specificare che devono essere inclusi ogni volta con l'attributo once. Se impostate once a false, lo script verrà incluso tutte le volte che viene richiesto nel template.
Opzionalmente potete passare l'attributo assign, che specifica un nome di variabile cui sarà assegnato l'output di include_php, invece di essere visualizzato.
L'oggetto smarty è disponibile come $this all'interno dello script PHP che viene incluso.
Example 7.9. funzione include_php
load_nav.php ------------- <?php // carichiamo le variabili da un db mysql e le assegnamo al template require_once("MySQL.class.php"); $sql = new MySQL; $sql->query("select * from site_nav_sections order by name",SQL_ALL); $this->assign('sections',$sql->record); ?> index.tpl --------- {* percorso assoluto, o relativo a $trusted_dir *} {include_php file="/path/to/load_nav.php"} {foreach item="curr_section" from=$sections} <a href="{$curr_section.url}">{$curr_section.name}</a><br> {/foreach}