Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.12.2006, 18:35
Americanets вне форума Посмотреть профиль Отправить личное сообщение для Americanets Найти все сообщения от Americanets
  № 1  
Ответить с цитированием
Americanets
 
Аватар для Americanets

Регистрация: Jun 2005
Сообщений: 127
По умолчанию создание шаблонов для разделения кода от дизайна

как можно создать шаблон, с типовыми данными которые просто вставляются более или менее понятно , можно парсить файл шаблона а потом вместо {title} вставлять $title а как быть если нужно вставить алгоритм например при создании html таблицы, которая строится автоматом на данных из базы?

Старый 19.12.2006, 18:55
rtm вне форума Посмотреть профиль Отправить личное сообщение для rtm Найти все сообщения от rtm
  № 2  
Ответить с цитированием
rtm

Регистрация: Nov 2006
Сообщений: 39
Когда я самостоятельно писал свой парсер шаблонов я делал что-то вроде:
Код:
{tbl users}<table ...>
<!--Заголовок-->
<tr><th>Имя</th><th>Возраст</th><th>Пол</th></tr>
{tblrow username age gender}
<tr><td>{username}</td><td>{age}</td><td>{gender}</td></tr>
{/tblrow}
</table>
{/tbl}
Это все пасится с помощью регулрных выражений, ну а дальше дело техники.

А вообще - зачем изобретать велосепед, когда есть уже готовые шаблонизаторы, такие какSmarty?

Старый 22.12.2006, 11:22
Americanets вне форума Посмотреть профиль Отправить личное сообщение для Americanets Найти все сообщения от Americanets
  № 3  
Ответить с цитированием
Americanets
 
Аватар для Americanets

Регистрация: Jun 2005
Сообщений: 127
Вот, налабал начало шаблонизатора, естественно единичные данные выводит, также естественно динамичные данные мне нужно будет впихнуть в CONTENT, вопрос как это можно сделать?

Код:
<?
$f = fopen("1","r");
$PAGE_CONTENT="контент";
$PAGE_TITLES="титлес";
$CONTENT = @fread($f,filesize("1"));
fclose($f);
$CONTENT = preg_replace("/CONTENT/", $PAGE_CONTENT, $CONTENT);
$CONTENT = preg_replace("/TITLES/", $PAGE_TITLES, $CONTENT);
echo $CONTENT;
?>

например при выдаче результатов поиска примерно такая конструкция

Код:
<a href="LINKS_TO_PAGE">TITLE_LINKS</a><br>
TEXT_KRATKO<br>
<a href="LINKS_TO_PAGE">подробно</a><br>
<hr>
нужно чтоб на выходе после цикла в страницу инклюдилось
Код:
<a href="***.htm">Название</a><br>
бла бла бла<br>
<a href="LINKS_TO_PAGE">подробно</a><br>
<hr>
<a href="***.htm">Название</a><br>
бла бла бла<br>
<a href="LINKS_TO_PAGE">подробно</a><br>
<hr>
<a href="***.htm">Название</a><br>
бла бла бла<br>
<a href="LINKS_TO_PAGE">подробно</a><br>
<hr>..............
с таблицами тоже самое или


в шаблоне
Код:
<table>
   <tr>
     <td>
        NAZVANIE
</td>
     <td>
    <img srk="FOTO">
     </td>
     <td>
      OPISANIE
     </td>
  </tr>
</table>

а на выходе

Код:
<table>
   <tr>
     <td>
        Название *******
</td>
     <td>
    <img srk="img**.gif">
     </td>
     <td>
      Описание ***********
     </td>

<tr>
     <td>
        Название *******
</td>
     <td>
    <img srk="img**.gif">
     </td>
     <td>
      Описание ***********
     </td>


<tr>
     <td>
        Название *******
</td>
     <td>
    <img srk="img**.gif">
     </td>
     <td>
      Описание ***********
     </td>

<tr>
     <td>
        Название *******
</td>
     <td>
    <img srk="img**.gif">
     </td>
     <td>
      Описание ***********
     </td>
  </tr>
</table>

Старый 23.12.2006, 18:22
Americanets вне форума Посмотреть профиль Отправить личное сообщение для Americanets Найти все сообщения от Americanets
  № 4  
Ответить с цитированием
Americanets
 
Аватар для Americanets

Регистрация: Jun 2005
Сообщений: 127
еще попробвал

Код HTML:
$CONTENT = preg_replace("/CONTENT/", foo(), $CONTENT); 
function foo(){
$query="SELECT * from `cms_pages`  where `content`  LIKE '%$poisk%'"; 
$query = mysql_query($query) or die (mysql_error()); 
WHILE ($dat=mysql_fetch_array($query))  { 
$HTMLData= "<li>".$dat['id']."&nbsp;&nbsp;&nbsp;URL: <strong>".$dat['menu_neme']."</strong><br>\n"; 
return $HTMLData;
}

}
но выводит только первое , зато там где надо, как сделать чтоб все выводилось?
Может подскажете как вывести все

Старый 29.12.2006, 04:06
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 5  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
http://inetmoney.h15.ru/template_demo/template.inc
Мой вариант. Тупой как пробка. Работает. Служит уже несколько лет...
__________________
тонкий тролль, осеянный благодатью

Старый 09.01.2007, 14:04
rtm вне форума Посмотреть профиль Отправить личное сообщение для rtm Найти все сообщения от rtm
  № 6  
Ответить с цитированием
rtm

Регистрация: Nov 2006
Сообщений: 39
Цитата:
Сообщение от Americanets
еще попробвал

Код HTML:
$CONTENT = preg_replace("/CONTENT/", foo(), $CONTENT); 
function foo(){
$query="SELECT * from `cms_pages`  where `content`  LIKE '%$poisk%'"; 
$query = mysql_query($query) or die (mysql_error()); 
WHILE ($dat=mysql_fetch_array($query))  { 
$HTMLData= "<li>".$dat['id']."&nbsp;&nbsp;&nbsp;URL: <strong>".$dat['menu_neme']."</strong><br>\n"; 
return $HTMLData;
}

}
но выводит только первое , зато там где надо, как сделать чтоб все выводилось?
Может подскажете как вывести все
Вытащите return из цикла while.

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.