Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1

    il mio template engine 2.0, usare il php dentro il template

    ragazzi ormai mi sono stufato del mio template engine..
    l'ho scritto praticamente 4 anni fa e da allora non l'ho più cambiato.

    Allo stato atttuale il mio TE non fa altro che sostituire le stringhe trovate nel template con le variabili a cui le ho associate tramite una funzione...

    Vorrei ora poter usare il codice php nel template. E mi stavo chiedendo quale fosse la strategia giusta..

    Nel senso non vorrei usare eval per l'esecuzione del codice trovato.. quindi una soluzione sarebbe usare include('template.php');

    ma in questo caso non potrei salvare in una variabile il contenuto elaborato di template.php, a meno che non usassi il buffer dell'output ma non ne ho proprio intenzione...

    quindi come fare?

    -(non ditemi di usare i vari TE già fatti)-



  2. #2

  3. #3
    Originariamente inviato da andrea.paiola
    uttio il nuovo dll... già vista questa? http://forum.html.it/forum/showthrea...readid=1230995
    ho postato anche io li dentro
    nessuno ha parlato di come mettere in pratica il sistema però

    (anche perchè come ti ricordi dll voleva eval altri no e la discussione si è incentrata sull'uso o no di eval)


  4. #4
    Originariamente inviato da xnavigator
    ho postato anche io li dentro
    scusa non ricordavo
    Originariamente inviato da xnavigator nessuno ha parlato di come mettere in pratica il sistema però

    (anche perchè come ti ricordi dll voleva eval altri no e la discussione si è incentrata sull'uso o no di eval)

    esattamente di che sistema parli? se i file dei template sono php ( e quindi avranno estensione .php e <?php ?> dove serve... ) verranno eseguiti come php... ovviamente non userai eval...
    http://www.phppatterns.com/docs/desi...mplate_engines

    se invece vuoi mantenere solo parte del codice dei template come php allora lo devi dividere dal codice del template che non usa php... boh dimmi che vuoi fare!

  5. #5
    bhè ma mi sembra di essere stato chiaro nel mio primo post:

    Vorrei ora poter usare il codice php nel template. E mi stavo chiedendo quale fosse la strategia giusta.
    e la mia domadna era:

    Nel senso non vorrei usare eval per l'esecuzione del codice trovato.. quindi una soluzione sarebbe usare include('template.php');

    ma in questo caso non potrei salvare in una variabile il contenuto elaborato di template.php, a meno che non usassi il buffer dell'output ma non ne ho proprio intenzione...

    quindi come fare?
    --

  6. #6
    perchè non vuoi usare ob?
    ma vuoi separare il codice statico da quello php o fai che fare template direttamente in php?

  7. #7
    Originariamente inviato da andrea.paiola
    perchè non vuoi usare ob?
    ma vuoi separare il codice statico da quello php o fai che fare template direttamente in php?
    che hai scritto paiò?

    cmq provando a interpretare la domanda: un template engine serve proprio a seprare la presentazione della logica... quindi è ovvio che voglio separare HTML da php, (anche se permettere a quell'HTML di eseguire talvolta il php)

    non capisco cosa non comprendi... tutti i template più o meno fanno questo

  8. #8
    Originariamente inviato da xnavigator
    che hai scritto paiò?

    cmq provando a interpretare la domanda: un template engine serve proprio a seprare la presentazione della logica... quindi è ovvio che voglio separare HTML da php, (anche se permettere a quell'HTML di eseguire talvolta il php)

    non capisco cosa non comprendi... tutti i template più o meno fanno questo
    beh non mi sarò spiegato... un conto è fare i template php ( come fanno tutti i cms più famosi... da Drupal a Wordpress, tanto per dirtene un paio ) e un'altra cosa è usare template statici ( html o altro ) e quindi usare eval o eregi_replace per esempio ( vedi http://php.html.it/articoli/leggi/84...ati-con-php/3/ )

    oppure altri sistemi... ce ne sono diversi!

    comunque perchè non vuoi usare ob? è una scelta religiosa?

  9. #9
    il mio TE funziona a blocchi annidati dentro un solo template quindi dovevo necessariamente utilizzare eval

    Comunque posso dire di essere soddisfatto di questa scelta, grazie a questo e all'inclusione di un file quando viene caricato il tema dove butto dentro tutte le funzioni specifiche per il tema (che poi nel caso di un CMS il tema corrisponde al 90% dei casi al sito di per se, escludendo il pannello di controllo che sta in un tema a se)

    Anche perché se prevedi un sistema di hooks a cui ti appoggi internamente anche per il tuo codice dai la possibilità al template engine di decidere effettivamente cosa deve fare il CMS internamente!

    Ad esempio facendo questo ho implementato l'autenticazione per accedere ad una serie di pagine con un paio di righe di codice
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    si in eval non ci sarebbe bisogno di usare ob..
    --

    ma senza eval? facciamo un esempio di codice cosi capisce anche il paiola

    file: template.php
    codice:
    <html><body>
    <h1><?php=template_var('titolo')?></h1>
    <h2><?php=template_var('descrizione')?></h2>
    </body></html>
    e poi c'è il codice vero e proprio che si collega al db ecc (per essere molto grezzi...)
    ora per elaborare il template dovrei fare include('template.php');

    ma facendo cosi mi stamperebbe subito tutto.. non volendo usare le funzione di ob per mettere il contenuto elaborato in una variabile quale potrebbe essere una soluzione (se ce ne sono?)

    dovrei adattare il template facendo una cosa del genere:
    Codice PHP:
    <?php
     
    return '<html><body><h1>' template_var('titolo') . '</h1></body></html>';
    ?>
    ma non mi sembra la soluzione più elegante...

    Thanks!

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.