Template engine

vitalka12

Новичок
Template engine

Вот нашел Template engine
вот так он работает

template.class.php
PHP:
<?php
class parse_class
    {
    var $vars     = array();
    var $template;

    function get_tpl($tpl_name)
      {
      if(empty($tpl_name) || !file_exists($tpl_name))
        {
        return false;
        }
      else
        {
        $this->template  = file_get_contents($tpl_name);
        }
      }
    function set_tpl($key,$var)
      {
      $this->vars[$key] = $var;
      }
    function tpl_parse()
      {
      foreach($this->vars as $find => $replace)
             {
             $this->template = str_replace($find, $replace, $this->template);
             }
      }
    }
$parse = new parse_class;
?>
и index.php
PHP:
$parse->get_tpl('templates/default/registration.tpl'); //Файл который мы будем парсить
$parse->set_tpl('{login}','Супер сайт'); //Установка переменной {title}
$parse->set_tpl('{bgcolor}','#f2f2f2'); //Установка переменной { bgcolor }
$parse->set_tpl('{sometpltags}','<font color=red>Это текст обрамленый красным  цветом</font>'); 
$parse->tpl_parse(); //Парсим
print $parse->template; //Выводим нашу страничку
Помагите переделать чтоб вот так работал с array
PHP:
$parse->get_tpl('templates/default/registration.tpl'); //Файл который мы будем парсить
$parse->set_tpl(array("login" => $_POST['login'],
                                  "email" => $_POST['email'],
						          "icq" => $_POST['icq'],
                                  "payment" => $_POST['payment'],"s" => "dfsdfs"));
$parse->tpl_parse(); //Парсим
print $parse->template; //Выводим нашу страничку
 

dimagolov

Новичок
is_array, foreach. ман тебе в помощь

только так прямо нельзя, нужно хотя-бы теги чистить из полученных полей, а лучше делать полноценную валидацию полученных данных.
 

vitalka12

Новичок
а кто нибудь сможет переделать это ато у меня чёт не получается
 

dimagolov

Новичок
так дело не пойдет.
PHP:
    function set_tpl($key,$var)
      {
      $this->vars[$key] = $var;
      }
тебе нужно переписать эту ф-ю так, чтобы во-первых второй аргумент был не обязательным, а во-вторых она проверяла массив или нет первый аргумент и если да, то перебирала его значения и сохраняла их в массиве $this->vars. как и чем проверять и перебирать я уже написал. что ты сделал?

п.с. тут по-разному не нужно, реально есть один вариант
 

Фанат

oncle terrible
Команда форума
Ну, или хотя бы стоит дописать в него обработку блоков
 

HraKK

Мудак
Команда форума
А заметить что человек не хочет ничего делать, а просит чтоб за него сделали. Помагли.
 

STRELOK

Новичок
Мда, шаблонизатор так шаблонизатор, ничего не скажешь =)
 
Сверху