X
ďťż

Parser szablonów Jak zrobić parser szablonów ?

       

Podstrony


telcocafe

Na początku witam wszystkich.
A teraz problem.
Czytałem ten artykuł
http://php.org.pl/artykuly/3/16
i nie moge sobie poradzić z utworzeniem pliku templates.php stale jakiś błąd mi wyskakuje. Może ktoś mi go napisać poprawnie. A o to co mi wyszło:
<?php //******************************************************************** //*         miniTemplate v. 1.2 //* Prosta klasa obsługi szablonów oparta na wzorze Splatch'a (splatch@wp.pl) //******************************************************************** class template {    var $template = array();    var $files = array();    function template($dir)    {        if($dir == "")        {            $this -> set_root("");        }        else        {            $this -> set_root($dir);        }        return true;    }    function set_root($dir)    {    if($dir != "")    {        if(!is_dir($dir))        {                die("Template: nie mozna znalesc sciezki do szablonu.");        }        else        {            $this -> root = $dir;        }    }   }   function set_files($files)    {        if(!is_array($files))        {            die("Template: funkcja set_files przyjmuje tylko tablice!");        }        else        {            while(list($tpl_id,$file) = @each($files))            {                $this -> files[$tpl_id] = $this -> root ."". $file;                        }        }    }      function assign_vars($tpl_id,$values)    {        if(!is_array($values))        {            die("Template: funkcja assign_vars() przyjmuje wartsci tylko w tablicy.");        }        else        {            reset($values);            while(list($tag,$value) = @each($values))               {                $this -> template[$tpl_id][tag][$tag] = $value;               }          }        return true;    }     function assign_var($tpl_id,$tag, $value)    {          if(empty($tag))          {               die("Template: w funkcji assign_var() musisz podac nazwe znacznika!");          }          $this -> template[$tpl_id][tag][$tag] = $value;          return true;    }    function clear($tpl_id)    {        unset($this -> template[$tpl_id]);        unset($this -> template[$tpl_id][tag]);        unset($this -> template[$tpl_id][tag][]);    }     function compile($tpl_id,$code)    {           while(list($key, $value) = @each($this -> template[$tpl_id][tag]))        {               $tag = '{'.$key.'}';               if(!strstr($code, $tag))               {                    die("Template: nie mozna znalesc znacznika $tag w pliku");               }               $code = str_replace($tag, $value, $code);          }    return $code;    }     function pparse($tpl_id)    {          if(empty($this -> files[$tpl_id]))          {               die("Template: tablica <i>files</i> dla wartosci <i>$tpl_id</i> jest pusta.");          }          $file = $this -> files[$tpl_id];          $code = @implode("\n",@file($file));          $gcode = $this-> compile($tpl_id,$code);        $gcode = str_replace("\n\n", $gcode);          return($gcode);    }       function parse($tpl_id)    {        print($this -> pparse($tpl_id));    } } ?>

I pokazuje mi ,że z linijką

unset($this -> template[$tpl_id][tag][]); (linijka 87)

Coś jest nie tak tylko co ? Prosze o pomoc albo napisanie tego pliku z góry thx
Użytkownik dEz17 edytował ten post 22 czerwiec 2005, 16:43


chyba COS ci pokazuje co?:> Moze powiedz jaki blad?

Czytać umiem to odrazu napisałem ze w
unset($this -> template[$tpl_id][tag][]); (linijka 87) co ? :]


Czytać umiem to odrazu napisałem ze w  co ? :]



aha dokładnie

NIerozumiem tej funkcji:

  function clear($tpl_id)   {       unset($this -> template[$tpl_id]);       unset($this -> template[$tpl_id][tag]);       unset($this -> template[$tpl_id][tag][]);   }

Nie powinno być w odwrotnej kolejności? I co oznaczają puste nawiasy kwadratowe? bo szczerze mówiąc, to pierwszy raz widzę taki zapis przy unset() (jedynie kojarzy mi się to z c++.)

Nie no dobra niby już mi sie udało chce ktoś zobaczyc jak to teraz wygląda :?:

Podałbyś chociaż przyczynę i rozwiązanie problemu.


Nie no dobra niby już mi sie udało chce ktoś zobaczyc jak to teraz wygląda :?:

Dobra juz jestem sorry ze tak późno. Rozwiązanie to pier**** jakis glupi parser i wziąść pobawić sie smartami taaa to jest odpowiedź dla ciekawszych co sie nie znają smarty gotowe do użytku na licencji GPL znajdziecie tutaj http://smarty.php.net

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.