Template Engine

Stavo sviluppando la parte amministrativa di un sito (piccolo cms per gestire agevolmente il database).

Non mi interessano gli orpelli grafici ma la cosa che risultava utile era il passaggio delle variabili tramite un TE.

Per altri lavori ho usato Smarty, ma Smarty è abbastanza pesante in termini di Kb (lo uso incorporandolo al sito per incompatibilità col server ospite).

Sapreste indicarmi qualche metodo per passare agevolmente i dati ad una sorta di template?

Visto che devo gestire il database i dati che dovrò passare sono inerenti ai form e ai controlli nel caso di errore.

Esempio (vecchio sito con Smarty):

{if (isset($errore.cosa))}

   <p><span class ='rosso'>{$errore.cosa}</span></p><br />

{/if}

[...]

<input id="username" name="username" size="20"
   {if ($errore.user)}value ="{$errore.user}"{/if} /><br />

Suggerimenti?

inviato 10 anni fa
arjuna
X 0 X

Tempo fà lessi un breve articolo (non ricodo più dove) che iniziava dicendo che PHP è essostesso un template engine. E se ci pensi è verissimo, ma per convincerti ti riporto una porzione di un template che ho realizzato per un progetto:

<table width="100%"  border="0" cellspacing="0" cellpadding="20"> 
  <tr> 
    <td><table  border="0" cellpadding="0" cellspacing="0" class="tab_main"> 
        <tr> 
          <td colspan="4" class="row_top"><p>Delibere</p></td> 
        </tr>
      <?php
      $c = count($delibere);
      if(!$c):?> 
        <tr>
          <td colspan="4" class="cella_scura"><p class="txt_centro">&nbsp;</p>
              <p class="txt_centro">&nbsp;</p>
              <p class="txt_centro">Nessuna delibera formulata per questa pratica</p>
              <p class="txt_centro">&nbsp;</p>
              <p class="txt_centro">&nbsp; </p></td>
        </tr>
      <?php else:?> 
        <tr>
          <td height="30" colspan="4" nowrap class="row_bottoni"><p>&nbsp;<a href="<?php echo $print_page?>" target="_blank"><img src="/immagini/icone/stampa.gif" alt="stampa" width="22" height="22" border="0" align="absmiddle"> Stampa</a> <img src="/immagini/img/divisore.gif" alt="" width="9" height="21" align="absmiddle"></p>
          </td>
        </tr>
        <tr>
          <td nowrap class="cella_scura">&nbsp;</td> 
          <td height="30" nowrap class="cella_scura"><p align="center" class="txt_bold">N. delib.</p>            </td> 
          <td class="cella_scura"><p align="center" class="txt_bold">Data delibera</p>
          </td> 
          <td width="100%" class="cella_scura"><p align="center" class="txt_bold">Interventi</p>          </td>
        </tr>
      <?php for($i = 0 ; $i < $c ; $i++):?>
        <tr>
          <td class="cella_generica"><p align="center"><?php echo $delibere[$i]->getLink()?></p></td> 
          <td class="cella_generica"><p align="center"  style="margin:10px"><?php echo $delibere[$i]->getNumber()?></p></td> 
          <td nowrap class="cella_generica"><p align="center"  style="margin:10px"><?php echo $delibere[$i]->data->getVerboseItalianString()?></p></td> 
          <td class="cella_generica"><p style="margin:10px"><?php echo $delibere[$i]->getDescrizioneBreve()?></p></td>
        </tr>
      <?php endfor?>
        <?php endif ?> 
        <tr> 
          <td colspan="4" class="row_bottom">&nbsp;</td> 
        </tr> 
      </table></td> 
  </tr> 
</table>

Come puoi vedere non è che ci sia tutta questa differenza ad usare direttamente il PHP piuttosto che ad impiegare un template engine. Basta preparate tutte le variabili nello script principale e poi includere il template che provvederà a mostrarle nel punto giusto.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda