Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428

    template engine, struttura elementi iterativi

    Buona sera,
    ho un dubbio su come strutturare gli elementi provenienti da un'iterazione.
    Per esempio .. per creare il template della pagina delle ultime 5 news.
    Ogni news riporta titolo, breve descrizione ed immagine.
    Creo un piccolo template, con un tabella con le tre righe. Itero per 5 volte, accodo l'output del codice in una variabile che a sua volta sostituisco nel template della pagina? Oppure ci sono metodi più funzionali al mio scopo? :master:

    ciao
    gnegno

  2. #2
    se è più funzionale a te giudicare

    In Smarty (http://smarty.php.net) le iterazioni le fai nel template, passi una variabile array al template che contiene le tue 5 news e poi è nel template che fai l'iterazione per mostrare le 5 news.

    Stesso principio dunque ma fatto completamente diversamente e posso dirti per esperienza che Smarty è molto potente permettendo questo generi di operazioni direttamente nel template, permette di avere script PHP molto più puliti in cui non c'è proprio più HTML.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    non capisco come lo itera all'interno del template... cioè se io a priori fisso 5 news ok, faccio una tabella e via, ma nel caso che il numero di news vari? le news le ho prese per esempio, ma di contenuti di cui non puoi prevedere quanti saranno? come fa a fargli gestire l'iterazione?

    Cmq io pensavo ad una cosa del tipo:
    codice:
    $pippo=loadTpl("pagina_news.tpl");
    $temp="";
    $pluto=loadTpl("singola_news");
    for ($i=0;$i<$num_news;i++){
    pluto2 = pluto;
    sostituisci_con_i_valori(pluto2, titolo, immagine..etc.etc..);
    temp.=pluto2;
    }
    sostituisci_con_i_valori(pippo,news,$temp);
    ciao
    gnegno

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    up

  5. #5
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    Originariamente inviato da Gnegno
    non capisco come lo itera all'interno del template... cioè se io a priori fisso 5 news ok, faccio una tabella e via, ma nel caso che il numero di news vari? le news le ho prese per esempio, ma di contenuti di cui non puoi prevedere quanti saranno? come fa a fargli gestire l'iterazione?

    Cmq io pensavo ad una cosa del tipo:
    codice:
    $pippo=loadTpl("pagina_news.tpl");
    $temp="";
    $pluto=loadTpl("singola_news");
    for ($i=0;$i<$num_news;i++){
    pluto2 = pluto;
    sostituisci_con_i_valori(pluto2, titolo, immagine..etc.etc..);
    temp.=pluto2;
    }
    sostituisci_con_i_valori(pippo,news,$temp);
    ciao
    gnegno
    le strutture di iterazione di smarty sono molto simili alle strutture cicliche di programmazione, in altre parole è possibile ciclare per tutti gli elementi di un array proprio come faresti in un while o foreach

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    sì, ciclare tutti gli elementi di un array mi torna ... però se io per ogni singola news faccio una tabella in cui ci siano 3 righe, una con il titolo, una con una breve descrizione, una con l'imaggine. Con smarty carico solo il template di tutta la pagina delle ultime x news... se non uso un template a parte per la singola news .. lui come fa a replicare quello stile per n news?
    Non so se avete capito dove è il mio dubbio!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    up

  8. #8
    nel template Smarty metti un ciclo for con all'interno la tua tabella da 3 righe che contiene la news, e Smarty ciclo sull'array che contiene le news, per ognuna ti restituisce la tua tabella da 3 righe riempita con i valori.

    Il concetto "strano" è che Smarty introduce della "programmazione" nel template con delle funzioni e operatori assai avanzati (cicli for & co, if-elseif-else, ...)

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    sì stavo vedendo ora.. anche se non mi sono azzardato a sperdermi nel codice sorgente!
    Però effettivametne è molto interessante smarty.. ha anche fin troppe funzioni rispetto alle mie necessità.. però mi semplificherebbe abbastanza la vita!

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.