Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z klasą
sazian
post 1.03.2007, 21:55:51
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


przeczytałem ten artykuł http://www.php.org.pl/artykuly/3/16

i przy próbie odpalenia głównego pliku wywala mi błąd Fatal error: Call to undefined function: set_files() in e:\usr\krasnal\www\moje\test.php on line 5
czyli ta linijka
  1. <?php
  2. $template -> set_files(
  3. array('index' => 'index.tpl',
  4. 'header' => 'header.tpl',
  5. 'bottom' => 'bottom.tpl'
  6. ));
  7. ?>


jeśli to zablokuje wywala kolejny błąd tym razem w
  1. <?php
  2. $template -> assign_vars('header',
  3. array('TITLE'  => "Spokojnie, to tylko test!",
  4. 'META'  => "",
  5. 'BGCOLOR'  => '#f0f0f0',
  6. 'KODOWANIE' => 'iso-8859-2'
  7. )
  8. );
  9. ?>


jak dla mnie wygląda to tak jakby nie łączył się z tym plikiem teplates.php

co może tu być nie tak questionmark.gif
cały kod strony głównej
  1. <?
  2. include "templates/teplates.php";
  3.  
  4. $template = new template('templates/');
  5. $template -> set_files(
  6. array('index' => 'index.tpl',
  7. 'header' => 'header.tpl',
  8. 'bottom' => 'bottom.tpl'
  9. )); 
  10.  
  11. $template -> assign_vars('header',
  12. array('TITLE'  => "Spokojnie, to tylko test!",
  13. 'META'  => "",
  14. 'BGCOLOR'  => '#f0f0f0',
  15. 'KODOWANIE' => 'iso-8859-2'
  16. )
  17. );
  18.  
  19. $template -> assign_var('bottom','LINK',"http://www.komandor.brod.pl/~splatch/");
  20.  
  21. $template -> assign_vars('index',
  22. array('HEADER', $template -> pparse('header'),
  23. 'TRESC', "Tutaj powinna znajdować się właściwa treść strony :)",
  24. 'BOTTOM', $template -> pparse('bottom')
  25. )
  26. );
  27.  
  28. $template -> parse('index');
  29. ?>

a to teplates.php
  1. <?php
  2. /******************************************************************************
  3. *  miniTemplate v. 1.2
  4. * Prosta klasa obsługi szablonów oparta na wzorze Splatch'a (splatch@wp.pl)
  5. ******************************************************************************/
  6.  
  7. class template
  8. {
  9. var $template = array();
  10. var $files = array();
  11.  
  12. // Jak zauważyliście klasa posiada tylko dwa atrybuty - tablicę z wartościami wszystkich znaczników i z nazwami plików.
  13. // Teraz prosty kontruktor klasy, który ustawi ścieżkę do szablonów.
  14.  
  15. function template($dir)
  16. {
  17. if($dir == "")
  18. {
  19. $this -> set_root("");
  20. }
  21. else
  22. {
  23. $this -> set_root($dir);
  24. }
  25. return true;
  26. }
  27.  
  28. // Poniżej znajduje się funkcja, która umożliwi stworzenie pełnej ścieżki do plikó
    w. W ten sposób nie musimy mozolnie definiować nazw plików jak poniżej:
  29. // $tmp = new template(moj/katalog/i/plik.tpl);
  30. // $tmp -> assign('znacznik', $wartosc);
  31. // $tmp -> parse();
  32. // Widzicie, że sposób ten jest kompletnie spalony, bo utrudnia obsługę wielu plik
    ów. Dzięki zastosowaniu konstruktora i poniższej funkcji możemy łatwiej i szybcie
    j definiować nazwy plików wraz z ich uchwytami. Dodatkowo nie jest już problemem 
    operowanie na trzech plikach na raz.
  33.  
  34.  
  35. function set_root($dir)
  36. {
  37. if($dir != "")
  38. {
  39. if(!is_dir($dir))
  40. {
  41. die("Template: nie można znaleść ścieżki do szablonu.");
  42. }
  43. else
  44. {
  45. $this -> root = $dir;
  46. }
  47. }
  48.  function set_files($files)
  49. {
  50. if(!is_array($files))
  51. {
  52. die("Template: funkcja set_files przyjmuje tylko tablice!");
  53. }
  54. else
  55. {
  56. while(list($tpl_id,$file) = @each($files))
  57. {
  58. $this -> files[$tpl_id] = $this -> root ."". $file;
  59. }
  60. }
  61. }
  62.  function set_file($tpl_id,$file)
  63. {
  64. $this -> files[$tpl_id] = $this -> root ."". $file;
  65. }
  66.  function assign_vars($tpl_id,$values)
  67. {
  68. if(!is_array($values))
  69. {
  70. die("Template: funkcja assign_vars() przyjmuje wartsci tylko w tablicy.");
  71. }
  72. else
  73. {
  74. reset($values);
  75. while(list($tag,$value) = @each($values))
  76.  {
  77. $this -> template[$tpl_id][tag][$tag] = $value;
  78.  }
  79. }
  80. return true;
  81. }
  82.  
  83.  
  84. function assign_var($tpl_id,$tag, $value)
  85. {
  86. if(empty($tag))
  87. {
  88.  die("Template: w funkcji assign_var() musisz podać nazwę znacznika!");
  89. }
  90. $this -> template[$tpl_id][tag][$tag] = $value;
  91. return true;
  92. } 
  93.  
  94.  
  95.  function compile($tpl_id,$code)
  96. {
  97.  while(list($key, $value) = @each($this -> template[$tpl_id][tag]))
  98. {
  99.  $tag = '{'.$key.'}';
  100.  if(!strstr($code, $tag))
  101.  {
  102. die("Template: nie można znaleść znacznika $tag w pliku");
  103.  }
  104.  $code = str_replace($tag, $value, $code);
  105. }
  106. return $code;
  107. }
  108.  
  109.  
  110. function pparse($tpl_id)
  111. {
  112. if(empty($this -> files[$tpl_id]))
  113. {
  114.  die("Template: tablica <i>files</i> dla wartości <i>$tpl_id</i> jest pusta.");
  115. }
  116. $file = $this -> files[$tpl_id];
  117. $code = @implode("n",@file($file));
  118. $gcode = $this-> compile($tpl_id,$code);
  119. $gcode = str_replace("nn", $gcode);
  120. return($gcode);
  121. }
  122. function parse($tpl_id)
  123. {
  124. print($this -> pparse($tpl_id));
  125. }
  126.  
  127. }
  128. }
  129. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Cienki1980
post 1.03.2007, 22:10:02
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----



Zamykam
Proszę zapoznać się z Tematyką i Zasadami panującymi na forum Przedszkole i wysłać mi lub innemu moderatorowi / opiekunowi na PW poprawny tag tego wątku wraz z linkiem do niego.
Do tego czasu wątek pozostanie zamknięty.


--------------------
404
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:31