Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème de Librarie template

les blocks s'affiche

    3 juin 2006 à 9:37:18

    Bonjour, je suis en ce moment en train de créer une librairie de template, j'ai repris un tutoriel trouvée sur internet visant à en créer une simple, et je l'ai optimisée pour affiché les blocks (et autre chose plus tard, mais là n'est pas le problème)

    <?php

    class template
    {
            var $fields = array();
           
            var $content;
           

           
            //initialisation du constructeur du template()
            function template($filename)
            {
                    //ouverture du template
                    $modele = @fopen($filename, 'r');
                   
                    //definition de l'attribut content
                    $this->content = @fread($modele, filesize($filename));
                   
                    //fermeture du fichier
                    @fclose($modele);
            }

            //initialisation de la fonction assign()
            function assign_vars($vararray)
            {
                    reset ($vararray);
                    while (list($key, $value) = each($vararray))
                    {
                            $this->fields[$key] = $value;
                    }
            }
           
            //initialisation de la fonction assign_block()
            function assign_block_vars($block, $vararray)
            {
                    if (preg_match('#^<!-- BEGIN (.+) -->$#', $this->content))
                    {
                            if (preg_match('#^<!-- END (.+) -->$#', $this->content))
                            {
                                    reset ($vararray);
                                    while (list($key, $value) = each($vararray))
                                    {
                                            $key = $block . '.' . $key;
                                            $this->fields[$key] = $value;
                                    }
                            }
                            else
                            {
                                    echo 'Erreur : Tous les blocks n ont pas été fermé';
                            }
                    }
            }
           
            //initialisation de la fonction parse()
            function parse()
            {
                    foreach($this->fields as $key => $value)
                    {
                            //remplacement des values dans le modèle
                            $result = preg_replace('!{' . $key . '}!', $value, $this->content);
                           
                            //initialisation du content template
                            $this->content = $result;
                    }
                   
                    echo $this->content;
            }
    } 


    Le problème c'est que les blocks s'affiche même quand ils ne sont pas déclarés.
    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2006 à 11:16:01

      En fait je crois qu'il faut rajouter une condition pour cacher les blocks mais je sais pas comment m'y prendre
      • Partager sur Facebook
      • Partager sur Twitter

      problème de Librarie template

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown