Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Templates

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274

    Templates

    Salve, sono il webmaster di www.baricity.it (circa 500 UV al giorno e 26.000 pagine viste come picco giornaliero).
    Ho intenzione di sviluppare vari template per il sito... sono indeciso se utilizzare Smarty o affidarmi completamente al CSS...
    Cosa mi suggerite di fare? Con Smarty ho paura di appesantire un po' il sistema... (poi aruba mi chiederà di comprare il server perchè spreco troppe risorse), col CSS però tempo che venga un po' disordinato (è solo la scusa che mi tocca studiare per bene il CSS).

    Cosa mi consigliate?
    Progeny

  2. #2

    ..........

    Ho intenzione di sviluppare vari template per il sito... sono indeciso se utilizzare Smarty o affidarmi completamente al CSS
    Sono cose differenti tra loro Smarty ti permette di separare
    il codice dall'output xhtml.
    Con i Css intervieni sul layout.

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    mi collego io...
    come faccio a creare un template?
    Cioè io ho un sito dinamico fatto da script miei, non un cms già fatto.
    Come faccio ad implementare un sistema che mi permetta di separare il codice del template per visualizzazre il sito dal resto.
    Joomla, Xoops o altri come fanno.
    Da dove devo partire a studiare? avete link o altri suggerimenti?
    Grazie a tutti

  4. #4
    Puoi dare un occhio a questa semplice classe
    simple template class

    Un esempio di come separare il codice
    dal layout lo puoi trovare nel mio ultimo
    script (bloggerino in firma) senz'altro sarà
    molto + facile che capire il meccanismo di
    template di Joomla, Xoops.


    Da dove devo partire a studiare? avete link o altri suggerimenti?
    practise practise practise


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Va bene, grazie per il punto di partenza. Me lo studio e ti faccio sapere.

    Hai anche un po' di documentazione della classe?
    Comunque grazie il Bloggerino è proprio interessante.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Template TROPPO complessi hanno il semplice effetto di SPOSTARE il codice dal php al template (quando nel template ci sono if, cicli e assegnazioni come si può dire di aver separato il codice dall'output?)
    Ti suggerisco quindi anche io di non utilizzare i template o di utilizzarne uno "minimale" (come quello suggerito), e di mantenere il codice "elaborativo" nel php. Spostare il codice nel template ha l'unico effetto di rallentare le prestazioni perchè l'interprete analizza il php che deve analizzare il template

    PHP è già di suo un template engine, va solo usato col giusto criterio

  7. #7
    Forse non ho chiarissimo cosa fa un template engine....

    Comunque tu dici che non serve, fa già tutto PHP?!?!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Una template engine è uno prodotto che ti permette di scrivere una cosa del genere (esempio)

    Codice PHP:
    <loop $variabile>
     

    {
    $variabile.valore}</p>
    </
    loop
    Per eseguire un loop so tutti i valori di un array.
    Esistono diversi "template engine" con diverse sintassi, e Smarty è appunto un "template engine"
    Quello che voglio dire io è che non c'è alcuna differenza tra il codice da me appena scritto e il seguente
    Codice PHP:
    <?php foreach ($variabile as $valore) {?>


    <?php echo $valore?></p>
    <?php ?>
    Cambia la sintassi, ma non è assolutamente vero che nel primo caso ho "separato il codice dal contenuto html"; ho semplicemente inserito nell'html un codice con una sintassi diversa da quella php (ma sempre di codice si tratta), il che non fa altro che "rallentare" lo script. Senza contare che la maggior parte dei template engine ci costringe a mettere sempre in un array i valori quando vogliamo eseguire un ciclo, cosa che nel caso di un query ci fa fare due volte lo stesso ciclo: la prima volta un ciclo di fetch per prendere i valori della select e metterli nell'array (con grande sperpero di memoria), la seconda nel template engine per usare tali valori
    In pratica avviene una cosa del genere
    Codice PHP:
    $sql "SELECT x,y FROM tabella";
    $result mysql_query($sql);
    $array = array();
    while(
    $row mysql_fetch_assoc($result// questo è il primo ciclo
      
    $array[] = $row;
    $template = new MioTemplate("template.tpl");
    $template->show(); 
    Immagina se la select producesse migliaia di righe che spreco di memoria
    Con il file "template.tpl" che sarà qualcosa del genere (dipende dal template engine usato)
    Codice PHP:
    <loop $array// secondo loop


    {$array.elem.x} - {$array.elem.y}</p>
    </
    loop
    Quando avremmo potuto, semplicemente usando solo php scrivere una cosa del genere
    Codice PHP:
    $sql "SELECT x,y FROM tabella";
    $result mysql_query($sql);
    $array = array();
    while(
    $row mysql_fetch_assoc($result// questo è il primo ciclo
      
    echo "

    "
    .$row["x"]." - " $row["y"] . "</p>"
    Eseguendo un solo ciclo e risparmiando tutta la memoria, poichè il php avrebbe mantenuto solamente un record del query alla volta, demandando al motore sql il resto del lavoro di "contenimento dati"

    Questi sono esempi molto semplici, ma rendono l'idea di quello di cui parlo.
    Sta al programmatore cercare metodi per separare il codice dal contenuto
    Ad esempio si potrebbe preparare un file "template.tpl" contenente SOLO questa parte
    Codice PHP:


    {x} - {y}</p
    E trasformare il nostro php in
    Codice PHP:
    $sql "SELECT x,y FROM tabella";
    $result mysql_query($sql);
    $array = array();
    while(
    $row mysql_fetch_assoc($result// questo è il primo ciclo
      
    {
         
    $html implode("",file("template.tpl"));
         foreach(
    $row as $key=>$value)
         {
            
    $html strreplace("{$key}",$value);
         }
         echo 
    $html;
      } 
    In pratica il template contiene "l'aspetto" di ogni singolo "blocco" che però può essere visualizzato uno o più volte, decisione che spetta al PHP e non al TEMPLATE
    Da qui si arriva rapidamente a quel "template engine" MINIMALE che ti ha suggerito WISHER e che può essere un buon compromesso per usare "template" senza compromettere significativamente le prestazioni

  9. #9
    Grazie della spiegazione, me la studio un po'...

  10. #10


    Ops sbagliato post
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.