Advertisement
Guest User

Untitled

a guest
May 4th, 2015
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. <?
  2.  
  3. class template # создали класс
  4.  
  5. { # зададим переменные
  6.  
  7. var $data = array(); # переменная для шаблонов
  8.  
  9. var $root = '.'; # каталог для шаблонов
  10.  
  11. var $ext = '.tpl'; # расширение для шаблонов
  12.  
  13. var $da_vr = array(); # переменная для преобразованых шаблонов
  14.  
  15. // Класс создан, далее формируем функции:
  16.  
  17. function template($dir, $ext)
  18.  
  19. {
  20.  
  21. if (is_dir($dir)){ $this->root = $dir; }
  22.  
  23. else{ die('Ошибка! <b>'.$dir.'</b> - это не директория!'); }
  24.  
  25. $this->ext = $ext;
  26.  
  27. }
  28.  
  29. // Эта функция выполниется сразу после создания класса, поэтому при создании надо
  30.  
  31. // указывать директорию и расширения шаблонов (см. ниже). Далее надо загрузить шаблон:
  32.  
  33. function load($name)
  34.  
  35. {
  36.  
  37. $nn = $name;
  38.  
  39. $dir = $this->root;
  40.  
  41. $ext = $this->ext;
  42.  
  43. $name = $dir.'/'.$name.$ext;
  44.  
  45. if (!is_file($name)) { die('Ошибка <b>'.$name.'</b> - это не файл!'); }
  46.  
  47. $fp = fopen($name, 'r');
  48.  
  49. $data = fread($fp, filesize($name));
  50.  
  51. fclose($fp);
  52.  
  53. $this->data[$nn] = $data;
  54.  
  55. $this->da_vr[$nm] = $data;
  56.  
  57. }
  58.  
  59. // В этой функции мы считали шаблон через fread и запихнули его в две переменных:
  60.  
  61. // da_vr и data. При загрузке шаблона надо указывать имя шаблона без расширения
  62.  
  63. // (см.ниже). Далее преобразовываем переменные:
  64.  
  65. function vars($nm, $vars = array())
  66.  
  67. {
  68.  
  69. $data = $this->data[$nm];
  70.  
  71. while (list($id, $var) = each($vars))
  72.  
  73. {
  74.  
  75. global $$vars[$id];
  76.  
  77. $data = str_replace('{'.$vars[$id].'}', $$vars[$id], $data);
  78.  
  79. }
  80.  
  81. $this->da_vr[$nm] = $data;
  82.  
  83. }
  84.  
  85. // Тут мы преобразовали переменные и загнали в переменную da_vr. И осталось вывести
  86.  
  87. // шаблон:
  88.  
  89. function out($name)
  90.  
  91. {
  92.  
  93. $ret = $this->da_vr[$name];
  94.  
  95. $this->da_vr[$name] = $this->data[$name];
  96.  
  97. return $ret;
  98.  
  99. }
  100.  
  101. }
  102. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement