Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Система шаблонов

Сообщения:  [1-10]   [11-19] 

 
 автор: cyberface   (19.08.2006 в 22:03)   письмо автору
 
   для: D.Lans   (19.08.2006 в 02:26)
 

Не легче ли взять готовый шаблонизатор, который и быстрее и эффективнее работать будет?

[поправлено модератором]

   
 
 автор: D.Lans   (19.08.2006 в 21:27)   письмо автору
 
   для: Lelik   (19.08.2006 в 02:55)
 

Не совсем.
Все же спасибо.

Код я написал, только он не работает как надо..
Буду разбираться..

   
 
 автор: Lelik   (19.08.2006 в 02:55)   письмо автору
 
   для: D.Lans   (19.08.2006 в 02:52)
 

а теперь посмотри внимательней на тот код, что я представил здесь - то, о чем ты как долго писал

   
 
 автор: D.Lans   (19.08.2006 в 02:53)   письмо автору
 
   для: Lelik   (19.08.2006 в 02:42)
 

"брать из шаблона" - значит загружать файл с шаблоном в отдельную строковую переменную и уже затем оперировать с ней.

   
 
 автор: D.Lans   (19.08.2006 в 02:52)   письмо автору
 
   для: Lelik   (19.08.2006 в 02:41)
 

Все равно совсем не то.

У тебя теги <loop> <table> <tr> уже известны программисту и вставляются в PHP коде.
А в том и соль, что дизайнер, который работает только с шаблоном (PHP кода он не знает) - должен в своем шаблоне написать:


<table>
  <loop news>
     <tr>
       <td>{zagolovok}</td>
      </tr>
       <tr>
          <td>{news_text}</td>
       </tr>
     </loop news>
</table>


parser.php загружает этот файл, ищет в нем теги <loop>, в теге <loop> ищет:
<loop news>
ключевое слово news (оно может быть произвольным) и уже в зависимости от этого слова делает что-то, в частности - загружает из БД именно список новостей, а не что-то другое.
далее он находит кусок кода между тегами <loop>
в нашем случае это:

     <tr>
       <td>{zagolovok}</td>
      </tr>
       <tr>
          <td>{news_text}</td>
       </tr>


И прогоняет его по циклу столько раз, сколько найдено новостей в БД.
На каждом прогоне (итерации) - подставляет вместо {zagolovok} и {news_text} нужные данные из бд.
+на каждом шаге "запихивает" очередной блок кода (между тегами <loop> который) в одну строковую переменную..
затем эту переменную подставляет вместо <loop>, + стирает </loop>
Получается готовый отпарсенный файл..

В общем, пока я писал, я кажется сам понял как это сделать. :)))))))

   
 
 автор: Lelik   (19.08.2006 в 02:42)   письмо автору
 
   для: D.Lans   (19.08.2006 в 02:39)
 

>Это не совсем то.
>В вашем примере код между тегами <loop> уже известен, а он может быть любым, его надо брать из шаблона.
я чет не понял, это как - брать из шаблона?

   
 
 автор: Lelik   (19.08.2006 в 02:41)   письмо автору
 
   для: D.Lans   (19.08.2006 в 02:39)
 

я код исправил, попробуй заново

   
 
 автор: D.Lans   (19.08.2006 в 02:39)   письмо автору
 
   для: D.Lans   (19.08.2006 в 02:38)
 

Это не совсем то.
В вашем примере код между тегами <loop> уже известен, а он может быть любым, его надо брать из шаблона.

   
 
 автор: D.Lans   (19.08.2006 в 02:38)   письмо автору
 
   для: Lelik   (19.08.2006 в 02:37)
 

спасибо за код, сейчас гляну

   
 
 автор: D.Lans   (19.08.2006 в 02:37)   письмо автору
 
   для: Lelik   (19.08.2006 в 02:33)
 

в том то и дело что циклы должны быть в PHP коде..
а в шаблоне только определены места для вставки переменных {text}
и как я уже написал - циклы, чтобы парсер знал, что надо данные проциклить.
например парсер находит
<loop news>
</loop>
и в зависимости от найденной переменной, (в данном случае news) выводит из БД какие-то данные, беря код между тегами <loop> парся его на {news_text} и {text_news} например и на каждом шаге в цикле вставляя опеределенные данные из БД...

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования