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.