За последние 24 часа нас посетили 17553 программиста и 1315 роботов. Сейчас ищут 1739 программистов ...

работа с шаблонами

Тема в разделе "Прочие вопросы по PHP", создана пользователем reptily.php, 29 сен 2009.

  1. reptily.php

    reptily.php Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    7
    Симпатии:
    0
    код класса

    PHP:
    1.  
    2. <?
    3. Class Templete
    4. {
    5.     var $vars     = array();
    6.     var $template;
    7.  
    8.     function Get($tpl_name)
    9.     {
    10.       if(empty($tpl_name) || !file_exists($tpl_name))
    11.         {
    12.         return false;
    13.         }
    14.       else
    15.         {
    16.         $this->template  = file_get_contents($tpl_name);
    17.         }
    18.     }
    19.    
    20.     function Set($key,$var)
    21.     {
    22.       $this->vars[$key] = $var;
    23.     }
    24.    
    25.     function Load()
    26.     {
    27.         foreach($this->vars as $find => $replace)
    28.         {
    29.         $this->template = str_replace($find, $replace, $this->template);
    30.         }
    31.     }
    32.    
    33.  
    34. }
    35. ?>
    код исполнителя

    PHP:
    1.  
    2. <?
    3. include "class/template.php";
    4.  
    5. $Tpl = New Templete;
    6.  
    7.  
    8. $Tpl->Get('tpl\index.html');
    9. $Tpl->Set('@TITLE@','тест');
    10. $Tpl->Set('@MENU@','menu');
    11. $Tpl->Set('@CONTENT@','text text text');
    12. $Tpl->Load();
    13. print $Tpl->template;
    14. ?>

    ну и сам шаблон

    PHP:
    1. <html>
    2. <head>
    3. <title>@TITLE@</title>
    4. </head>
    5. <body>
    6. <div class="menu">@MENU@</div>
    7. <br>
    8. <br>
    9. <div class="content">@CONTENT@</div>
    10. </body>
    11.  
    как сделать чтобы в переменный @****@ можно было выводить php код

    $Tpl->Set('@TITLE@','<? echo "загаловок"; ?>'); такая тема не прокатывает
    выводит <? echo "загаловок"; ?>
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    1. TemplAte

    2. Код абсолютно рабочий. Что ты ему передаешь, то он и выводит. Что тебя не устраивает?
     
  3. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    $Tpl->Set('@TITLE@','<? echo "загаловок"; ?>'); - что хотел то и получил .... может всетаки
    $Tpl->Set('@TITLE@','загаловок'); -???
     
  4. kostyl

    kostyl Guest

  5. reptily.php

    reptily.php Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    7
    Симпатии:
    0
  6. reptily.php

    reptily.php Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    7
    Симпатии:
    0
    1. от этого функционал не потерян
    2. читай выше
     
  7. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    1. Человек не умеющий внятно изложить свои мысли редко напишет внятный код.
    2. Выше у тебя все работает. Ты используешь его неправильно, а это прямое следствие п.1.
     
  8. reptily.php

    reptily.php Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    7
    Симпатии:
    0
    так ты вообще читал что я спрашиваю????
    я сам знаю что у меня работает а что нет.
    если бы все работало так как нужно я бы не заходил суда и не спрашивал
     
  9. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
  10. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Опустив несогласованность по падежам, я вижу -

    Что ты хочешь вывести php код в переменную. Ты его вывел.

    Поэтому повторюсь. Учись внятно излагать свои мысли. Что у тебя не работает?