Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Template engine - smarty - template nidificati

    Ciao ragazzi!!!
    un saluto a tutti... e da un pò che non bazzico da queste parti

    Sto provando alcuni template engine.

    Template_IT PEAR
    Template Sigma PEAR
    Smarty

    Quest'ultimo mi sembra il migliore.
    Devo fare questo.

    1) Creare un template master che verrà incluso in tutte le pagine
    2) Creare template delle singole pagine che includeranno il master
    3) Creare le pagine phpche generano i valori

    Con smarty, anche smanettando sul web, e sulla documentazione ufficiale, non sono riuscito a capire come avviene la nidificazione di più template (forse con il metodo "fetch"), mentre con gli atri engine l'argomento era trattato come "block", in smarty mi sfugge.

    Avete, consigli, dritte, link...

    Ciao e grazie.

    Marcello.
    se Mano lava Mano... Gina lava Gina

    ScrollbarsPainter05 per colorare le scrollbar

    Metaphysique - this stuff rocks!!!

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    uso un po smarty..

    In poche parola il tpl principale viene visualizzato col metodo display:

    $viewer(uso io questi nome per la classe smarty)

    $viewer->display('file.tpl');

    le variabili smarty che ti trovi nel tpl le devi assegnare con

    $viewer->assign('nome_var', 'prova txt'); e quindi avrai {$nome_var} in file.tpl

    Per visualizzare in file.tpl altri tpl e quindi altre pagine(blocchi) da includere in esso, dovresti usare il metodo fetch.

    Ad esempio un metodo che ritorna questo return $viewer->fetch('box_login.tpl'); e quindi avrai :

    $viewer->assign('box_login', self::login());
    $viewer->display('file.tpl');

    In file.tpl avrai la variabile {$box_login} che sara' tutto il tpl del sigolo box login.

    C'e' solo da fare attenzione dove assegnare le variabili.
    Le variabili usate nel boxlogin vanno assegnate nel metodo del rispettivo dove fai il fetch perche' se assegnate dove fai il display probabilmente non dovresti vederle.
    assegnandole a monte e quindi nel metodo dove c'e' il diaplay dovresti vederle ovunque perche' a monte(fai una prova non vorrei confondermi)

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Per includere il template A nel template B devi fare "include A" all'interno di B

    http://www.smarty.net/manual/it/lang...on.include.php

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ok ma con include includi un file statico o sbaglio?
    Avevo interpretato la domanda come un qualcosa da creare a blocchi e poi includere tutto insieme.

  5. #5
    Ciao ragazzi e grazie mille delle risposte.
    Il fatto è che con include posso dire al template master di inserire un alre porzione di codice.
    L'obbiettivo è quello di creare:
    a) pagina php con il motore smarty es... estrazione dati da db
    b) template del form che uso per impagina re i risultati estratti in una tabella.
    c) template master che contiene la grafica del head, sfondo ed il menù di navigazione.

    Ovviamente io chiamo 'a' che recupera 'b' ma poi tutto deve finire dentro 'c'

    Credo che fetch sia la strada.

    Strano che un argomento come questo nella documentazione non si ain rilievo, a differenza di Sigma o Template_IT di Pear.
    se Mano lava Mano... Gina lava Gina

    ScrollbarsPainter05 per colorare le scrollbar

    Metaphysique - this stuff rocks!!!

  6. #6
    Originariamente inviato da m4rko80


    $viewer->assign('box_login', self::login());
    $viewer->display('file.tpl');

    In file.tpl avrai la variabile {$box_login} che sara' tutto il tpl del sigolo box login.
    Grazie M4rko!!!

    Sviluppo usando fetch e poi documento l'accaduto...

    Io trovo la filosofia dei template nidificata vincinte per moltissimi aspetti, non solo quello di dividere il lavoro tra grafici e sviluppatori... ma anche quella di potere integrare grossi pezzi di codice in altri lavori senza grossi traumi.
    se Mano lava Mano... Gina lava Gina

    ScrollbarsPainter05 per colorare le scrollbar

    Metaphysique - this stuff rocks!!!

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da m4rko80
    Ok ma con include includi un file statico o sbaglio?
    Avevo interpretato la domanda come un qualcosa da creare a blocchi e poi includere tutto insieme.
    Con include puoi includere un altro template.

  8. #8
    Ciao Luca e grazie mille.

    Se non sbaglio con include devo dire al templete parent quale templete child includere.

    Invece quando navigo, io chiamo il templete child, poi lui deve caricarsi il parent che gli farà da cornice.

    E' possibile anche con iclude?
    se Mano lava Mano... Gina lava Gina

    ScrollbarsPainter05 per colorare le scrollbar

    Metaphysique - this stuff rocks!!!

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    O fai casino tu, o non capisco io

    Cosa intendi per parent e child?

  10. #10
    Dunque, ecco una breve spiegazione del template nidificato con i Templete engine.

    Nel mio caso, che poi è il caso di tutti i template engine, abbiamo tre file che comporranno la pagina web vista dall'utente.

    1) pagina php che estrae o elabora dati -> myData.php
    2) template che contiene il codice html che verrà utilizzato per formattare i dati estratti ->myData.tpl (child)
    3) template master che contine la struttura grafica portante del sito e la navigazione -> Master.tpl (parent)

    Quando dal browser chiamo myData.php, questa pagina elabora i dati ed al momento del rendering carica myData.tpl che contiene i segna posto {NOME_VAR} che verranno sostituti da smrty con le relative varibili.

    myData.php però oltre a ciucciarsi myData.tpl deve chiamare in causa anche master.tpl.

    master.tpl è il template presente in tutte le pagine, mentre myData.tpl è chiamato solo da myData.php


    Usando include posso dire al master quali child incorporare, ma non posso dire al child quale master, a meno che non si usi il classico sistema con "head.html" e "footer.html" ancora valido specialmente nel mondo del tableless, ma è sul bigio viale dell'obsolescenza.
    se Mano lava Mano... Gina lava Gina

    ScrollbarsPainter05 per colorare le scrollbar

    Metaphysique - this stuff rocks!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.