Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: буква) "умный" шаблонизатор

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: ну или есть возможность не создавать колесо?
DlTA
Отправлено: 23 Мая, 2011 - 11:08:01
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




возникла идея воспользоваться функционалом "умного" шаблонизатора

в чем (как по мне) его особенности, окромя тупой замены имеющегося шаблона на предоставленный текст, возможность самостоятельно запрашивать текст по шаблону

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

вот и возникла идея, а может можно наоборот, типа:
шаблонизатор, разобрал документ, нашел метки с параметрами и САМ запросил из вне заменные текста, предоставив метку и ее параметы, некий внешний объект, получив список (метка, параметры) и + параметры запроса уже генерит текста по меткам и возвращает их в шаблонизатор, а тот в свою очередь доделывает свою работу.

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

может кто знает варианты подходящие под описание?
 
 Top
EuGen Администратор
Отправлено: 23 Мая, 2011 - 11:22:59
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




А чем вариант с написанием самому плох?
Вроде такого:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. Тестовое предложение о {{action}} и {{implementation}}
  3.  

В коде что-то набодобии
PHP:
скопировать код в буфер обмена
  1.  
  2. class Template_Extended
  3. {
  4.    //do some public vars - template file, source of content e t.c.
  5.    function __construct()
  6.    {
  7.    }
  8.    //example, source of tags=$_REQUEST
  9.    //can be implemented by replacing some internal 'template' var
  10.    function replaceTags($string)
  11.    {
  12.       $rgKeys=array_map(create_function('$item','return "{{".$item."}}";'), array_keys($_REQUEST));
  13.       $rgValues=array_values($_REQUEST);
  14.       return str_replace($rgKeys, $rgValues, $string);
  15.    }
  16. }
  17.  

PHP:
скопировать код в буфер обмена
  1.  
  2. $rTemplate=new Template_Extended();
  3. //{{ ... }}
  4. $rTemplate->replaceTags($content);
  5.  

Источником замены служит просто $_REQUEST. Но никто не мешает сделать некоторый объект в системе, который будет иметь сеттеры для переменных-меток и просто хранить их; при замене соответственно нужно будет собирать метки оттуда.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Stierus Супермодератор
Отправлено: 23 Мая, 2011 - 11:34:03
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




 
My status
 Top
DlTA
Отправлено: 23 Мая, 2011 - 13:36:54
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




EuGen пишет:
А чем вариант с написанием самому плох?

ничем, но вдруг есть ченить умное и понятное

Stierus пишет:
hmvc http://ruseller.com/lessons.php?...ub=37&id=674

по сути да, хотя реализация мне не нравится

EuGen, небольшой пример из фантазии:
к примеру есть шаблон
site=
CODE (htmlphp):
скопировать код в буфер обмена
  1. {header:name=Мой сайт}{contnt}{footer}


шаблонизатор запрашивает для каждой метки HTML-ку
причем HTML-ка чаще всего будет генерировать на основе другова шаблона.
header=
CODE (htmlphp):
скопировать код в буфер обмена
  1. <a ...><img ...>{siteName}</a><...>...
и т.д.

в общем случае получается что шаблонизатор рекурсивно запрашивает сам себя
хотя не прямая рекурсия, а косвенная (так вроде называется), то есть через объект управления
по сравнению с MVC
моделью выступает Шаблон
отображение готовит шаблонизатор
ну контроллер производит разбор запросов, работа с базой, подготовка дополнительных параметров, вызош башлонизатора с параметрами (файл, и т.д.)
как то так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB