Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 36

Discussione: template...

  1. #1
    Guest

    Predefinito template...

    dunque dunque dunque,
    io mi sono stufato di modificare ogni volta il codice php (echo, ec..) per cambiare la grafica... quindi sono giunto ad una soluzione... utilizzare i template... adesso sorge un problema... come apro il file .themes (template) e lo stampo a video sostituendo inserendo dove necessario il codice html generato da php???

    es:

    Codice:
    <html>
    <head>
    <title>{titolo_sito}</title>
    </head>
    <body>
    {testo}
    </body>
    </html>
    adesso credo che sia tutto più chiaro... devo sostituire il tag {titolo_sito} e {testo} con quello che voglio, ad esempio se {testo} sono 12 righe di codice che genero con il php come faccio? se fosse una sola stringa str_replace e risolvo tutto, ma se sono una serie di 20 righe... e poi come faccio ad aprire il file e salvaro in una variabile che poi stampo a video con tutte le modifiche opportune?

    lo so è un casino ma mi tocca impararlo, e se mi date una mano faccio prima
    Ultima modifica di neoscript : 05-10-2004 alle ore 16.46.52

  2. #2
    Guest

    Predefinito

    io ho fatto una cosa del genere per il forum allora x il primo caso usa str_replace('find', 'TUTTO QUELLO CHE VUOI ANCHE 50 RIGHE', $var)

    x la seconda cosa
    $file = fopen("file.ext", 'rb');
    $Template = fread($file, filesize("file.ext"));
    fclose($file);

  3. #3
    Guest

    Predefinito

    ma per le 50 righe le formatto quando le elaboro nel senso di tutto il codice html che mi serve e poi lo sostituisco?

  4. #4
    Guest

    Predefinito

    intendi che hai tipo
    <table>
    <tr>
    <td>
    </td>
    </tr>
    </table>

    se è così allora puoi metterlo tra le ''

  5. #5
    Guest

    Predefinito

    no dico... ho <html><body>{testo}</body></html>... come faccio a sostituire {testo} con 50 righe di codice che genero con php?

  6. #6
    Guest

    Predefinito

    no dico le 50 righe sono tipo <table>.....

  7. #7
    Guest

    Predefinito

    si... le genero come tabella...

  8. #8
    Guest

    Predefinito

    non hai capito.....
    le righe sono del semplice codice html o funzioni php che genrano codice???

  9. #9
    Guest

    Predefinito

    sono del codice html che genero con php... ad esempio una query sul db... queste cose...

  10. #10
    Guest

    Predefinito

    vabbe lasciamo stare....

  11. #11
    Guest

    Predefinito

    come lasciamo starE???? a me serve dai seriamente qualcuno che ha fatto una cosa del genere???

  12. #12
    Guest

    Predefinito

    io l'ho fatto nel mio forum ma noi non ci riusciamo a capire

  13. #13
    Data registrazione
    27-03-2003
    Messaggi
    235

    Predefinito

    Dunque, non ho capito molto bene se vuoi usare dei layout diversi o se vuoi avere un unico file per lo stesso layout :\
    Nel caso tu voglia usare lo stesso file per tutte le pagine (in modo da dover cambiare solo quello), c'è un metodo molto più semplice dei templates ^^
    In pratica, apri la tua index ad esempio, e copi tutto il contenuto in alto, fino a quando arrivi ai contenuti specifici della pagina...ad esempio:

    <html>
    <head>
    <title>bla bla bla</title>
    </head>
    <body>

    salvi in un file txt, con il nome che vuoi, ad esempio header.txt

    Dopodichè copi tutto il fondo, dalle fine dei contenuti specifici alla chiusura della pagina....ad esempio

    </body>
    </html>

    E salvi in un file txt, ad esempio footer.txt

    Poi li richiami con un semplice include php...ricorda che a questo punto la index per funzionare deve avere estensione .php
    Quindi avrai la index.php che sarà così:

    <? php include('header.txt'); ?>
    Questa è la mia index.
    <? php include('footer.txt'); ?>

    Ti basta poi copiare queste tre righe e sostituire i vari contenuti. Ovvio che nei file txt puoi usare l'html tranquillamente, come fai di solito. E' comodo: se ad esempio devi aggiungere un link, editi solo uno dei due file e la modifica compare in tutte le pagine.
    Devono però avere estensione php per funzionare!
    In base alle tue esigenze, possono tornarti utili anche questi due scriptini:
    http://codegrrl.com/scripts/nlconverttophp/ utile se il tuo sito ha poche pagine
    http://codegrrl.com/scripts/nlgenericpages/ utile se il tuo sito ha varie pagine simili in cui devi modificare solo delle variabili.
    Se hai problemi con l'inglese posso aiutarti :grin:
    Spero di esser stata utile
    "La fortuna di diventare me stessa e grazie a ciò più utile agli altri - ho vissuto anche questo" Cassandra (C. Wolf)
    ::: my freedom :: my strenght :: my wings :::

  14. #14
    Guest

    Predefinito

    allora... io ho tante pagine html che fanno da template... nel senso dentro c'è il codice html per un form... io quando devo piazzare il form devo sostituire i campi generici tipo
    <form action="[ACTION]" method="[METHOD]"> con quelli che gli passo in php... io ho tante pagine html quante me ne servono per le parti comuni in tutto il sito...

    adesso a me serve il codice per aprire, sostituire e stampare... ma se ad esempio devo sostituire [TESTO] con 25 righe di codice html che genero con php come faccio? se sostituisco [TESTO] la prima volta poi non posso più inserire il contenuto in quel punto...

  15. #15
    Data registrazione
    27-03-2003
    Messaggi
    235

    Predefinito

    Usa le variabili....non può andare?
    "La fortuna di diventare me stessa e grazie a ciò più utile agli altri - ho vissuto anche questo" Cassandra (C. Wolf)
    ::: my freedom :: my strenght :: my wings :::

  16. #16
    Guest

    Predefinito

    come? faccio un .php dove memorizzo i template nella variabile? bhe, ma cmq c'è sempre lo stesso problema... quando sostituisco il [TESTO]... non posso inserire altre righe dopo...

  17. #17
    Guest

    Predefinito

    appena rimetto online il mio forum scaricalo e prendi spunto da lì

  18. #18
    Data registrazione
    27-03-2003
    Messaggi
    235

    Predefinito

    No, intendo una cosa simile a quella che viene spiegata in questa pagina:
    http://codegrrl.com/scripts/nlgenericpages/
    Ora, non so come funzionino i templates, ma se tu fai una variabile $testo e poi in ogni pagina inserisci il valore della variabile, non funziona?
    "La fortuna di diventare me stessa e grazie a ciò più utile agli altri - ho vissuto anche questo" Cassandra (C. Wolf)
    ::: my freedom :: my strenght :: my wings :::

  19. #19
    Data registrazione
    27-03-2003
    Messaggi
    235

    Predefinito

    Ho trovato questa URL....
    http://smarty.php.net/
    Credo sia una specie di script per gestire i templates, non ho guardato bene....pensi ti possa servire?
    "La fortuna di diventare me stessa e grazie a ciò più utile agli altri - ho vissuto anche questo" Cassandra (C. Wolf)
    ::: my freedom :: my strenght :: my wings :::

  20. #20
    Data registrazione
    27-03-2003
    Messaggi
    235

    Predefinito

    Uh, sei riuscito poi?
    "La fortuna di diventare me stessa e grazie a ciò più utile agli altri - ho vissuto anche questo" Cassandra (C. Wolf)
    ::: my freedom :: my strenght :: my wings :::

  21. #21
    Guest

    Predefinito

    sto studiandomi un sistema... poi vi faccio sapere...

  22. #22
    Guest

    Predefinito

    il metodo migliore è prendere un template che è un misto di htlm e php e iniziare a smattare da li fino al tuo gradimento

    Meglio se inizi da quelli base già inclusi sno i migliori da editare a piacimento

  23. #23
    Guest

    Predefinito

    no, io dico un template da caricare con php... non voglio inserire codice php nel codice html... voglio una cosa divisa...

  24. #24
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Neoscript e theCoreWS...
    sembravate due vecchietti al parco:
    "cheee?"
    "cosa hai detto?"
    "ho detto cheeee che hai detto primaaa?"
    "prima cosa???"
    :grin: OLD :grin:


    Insomma se volete capirvi tra di voi, sia chi cerca di spiegare sia chi deve risolvere, consiglio di scrivere post un pochino più esaurienti invece che andare avanti di una riga a botta ("no dico.." "no dico table.." :grin: )

    Veniamo al quesito:
    Citazione Originalmente inviato da neoscript
    no dico... ho <html><body>{testo}</body></html>... come faccio a sostituire {testo} con 50 righe di codice che genero con php?
    Molto semplice teoricamente (anche se sinceramente non ho ancora provato in pratica, ammetto, ma in teoria mi suona bene):

    quando si lavora SENZA template siamo abituati a scrivere direttamente in output (nel documento da spedire al client), dunque appena abbiamo qualcosa facciamo subito echo o print.
    Se invece vogliamo usare i template dobbiamo accumulare tutto il "prodotto" (html finale da outputtare) in una stringa, il cosiddetto "buffer".


    Esempio pratico:

    senza template:
    Codice PHP:
    echo "<div class=\"ciccio\">"; //apri cornice

    echo "tutto il content del documento";
    echo
    "...";

    echo
    "</div>"; //chiusa cornice
    con template:
    crei un file template di nome "file.ext" che contiene per es:
    Codice:
    <div class="ciccio">
    [taginventato]
    </div>
    poi nel php che usa il template:

    Codice PHP:
    //creazione del contenuto
    $buffer = "content del documento";
    $buffer .= "altro content..."; //nota bene il .= per accumulare
    $buffer .= "altro content sempre in append con .= ";

    //apre template
    $file = fopen("file.ext", 'rb');
    $tpl = fread($file, filesize("file.ext"));
    fclose($file);

    //sostituisce speudo-tag (o placeholder)
    str_replace('[taginventato]', $buffer, $tpl);

    echo
    $tpl; //scrive finalmente in output template+contenuto

    Dunque in questo caso il template è solo una "cornice" DIV ma può benissimo essere tutto il codice esterno di un html, poi magari gran parte del body invece la aggiungi a parte, come voleva neoscript mi pare di capire.

    Oh dovrebbe fungere, ho utilizzato alcuni pezzi già detti qui nel thread per capirci. Può darsi che ci sono funzioni più eleganti (o apposite) per aggiungere man mano contenuto ad un buffer (come in Java gli StringBuffer, in php ho alcune lacune non so bene ma .= per l'append dovrebbe andar bene comunque). Append = aggiungi in fondo.

    Fammi sapere se gira o se trovate boiate che ho scritto
    Ultima modifica di heracleum : 14-10-2004 alle ore 20.11.13 Motivo: correzione sintassi
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  25. #25
    Guest

    Predefinito

    concordo con heracleum (soprattutto per la parte dei vekkietti al parco )
    voglio aggiungere solo 1 cosa sugli output buffer:
    in php esiste la possibilita' di settare un buffer in cui "buttare" tutto quello ke risulta da echo & print (e che puoi manipolare con str_replace &co), cerca su http://it.php.net la funzione ob_start (e altri composti di ob=output buffer)
    cmq in linea di max se puoi fare il tutto aggirando echo con le variabili il metodo descritto da hera e' + comodo da usare


    p.s.: @hera: qnd nn c'eri avevo mooolte + possibilita' di rispondere a un 3d tecnico senza ke qlk avvoltoio avesse gia' spolpato tutto lo spolpabile sull'argomento...

  26. #26
    Guest

    Predefinito

    mitico heracleum era proprio quello che volevo dire

  27. #27
    Guest

    Predefinito

    come funzione il ob_start? che già lo sentito con il mod rewrite di evcz che ha scritto per il suo phpnuke... please un esempio concreto...

  28. #28
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Ah ecco infatti sospettavo ci fosse qualcosa di apposito (visto che l'output buffering è un concetto comune un po' a tutti i linguaggi).
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  29. #29
    Guest

    Predefinito

    emm... un esempiuccio? se ne avete uno...

  30. #30
    Guest

    Predefinito

    mai fatto una visita su php.net?
    Codice PHP:
    <?php

    function callback($buffer)
    {
    // replace all the apples with oranges
    return (str_replace("apples", "oranges", $buffer));
    }

    ob_start("callback");

    ?>

    <html>
    <body>
    <p>It's like comparing apples to oranges.
    </body>
    </html>

    <?php

    ob_end_flush
    ();

    ?>
    Produce
    Codice:
    <html>
    <body>
    <p>It's like comparing oranges to oranges.</p>
    </body>
    </html>

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •