Visualizzazione risultati 1 fino 4 di 4

Discussione: Problema classe template

  1. #1
    Guest

    Predefinito Problema classe template

    Ciao,
    ho fatto questa classe che mi crea i files template:
    Codice PHP:
    class templateParser
    {
    private
    $output;

    public function
    __constructor($templateFile)
    {
    if (
    file_exists($templateFile))
    $this->output = file_get_contents($templateFile);
    }

    public function
    parseTemplate($tags)
    {
    if(
    count($tags) > 0)
    {
    foreach(
    $tags as $tag => $data)
    {
    if(
    file_exists($data))
    $this->parseFile($data);

    $this->output = str_replace('{'.$tag.'}', $data, $this->output);
    }
    }
    }

    private function
    parseFile($file){
    ob_start();
    include(
    $file);
    $content = ob_get_contents();
    ob_end_clean();
    return
    $content;
    }

    public function
    display()
    {
    return
    $this->output;
    }
    }
    Codice PHP:
    $template = &new templateParser('prova_template.htm');
    $tags = array('titolo' => 'Titolo della Pagina', 'contenuto' => 'Contenuto della Pagina');
    $template->parseTemplate($tags);
    echo
    $template->display();
    Codice HTML:
    <html>
    <head>
    <title>{titolo}</title>
    </head>
    <body>
    {contenuto}
    </body>
    </html>
    il problema è che nn mi da errori, ma nn mi stampa niente...spero c'è qualcuno che possa aiutarmi...ciao e grazie!

  2. #2
    Guest

    Predefinito

    Cambia:
    Codice PHP:
    public function parseTemplate($tags)
    {
    if(
    count($tags) > 0)
    {
    foreach(
    $tags as $tag => $data)
    {
    if(
    file_exists($data))
    $this->parseFile($data);

    $this->output = str_replace('{'.$tag.'}', $data, $this->output);
    }
    }
    }
    in:
    Codice PHP:
    public function parseTemplate($tags)
    {
    if(
    count($tags) > 0)
    {
    foreach(
    $tags as $tag => $data)
    {
    if(
    file_exists($data))
    $this->parseFile($data);

    $this->output = str_replace('{'.$tag.'}', $data, $this->output);
    }
    return
    $this->output;
    }
    }

  3. #3
    Guest

    Predefinito

    Non ho capito perchè parseTemplate dovrebbe ritornare il valore output non credo sia quello lo scopo di quella funzione. A questo punto si può anche eliminare display!

    Comunque:
    Codice PHP:
    error_reporting(E_ALL); // mostra tutti gli errori (warning, notice etc...)

    class templateParser
    {
    private
    $output;
    public function
    __construct($templateFile) // construct non constructor!
    {
    if (
    file_exists($templateFile))
    $this->output = file_get_contents($templateFile);
    }

    public function
    parseTemplate($tags)
    {
    if(
    count($tags) > 0)
    {
    foreach(
    $tags as $tag => $data)
    {
    if(
    file_exists($data))
    $this->parseFile($data);

    $this->output = str_replace('{'.$tag.'}', $data, $this->output);
    }
    }
    }

    private function
    parseFile($file){
    ob_start();
    include(
    $file);
    $content = ob_get_contents();
    ob_end_clean();
    return
    $content;
    }

    public function
    display()
    {
    return
    $this->output;
    }
    }

  4. #4
    Guest

    Predefinito

    lol, che errore da niubbo, grazie della risp nokiagames.. (imperdonabili questi errori)

Regole di scrittura

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