Автор Тема: Темплейты  (Прочитано 11450 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Темплейты
« Ответ #15 : 22 Марта 2002, 21:32:11 »
AlieN
я тоже админ и программер. и что?
но с производительностью согласен?
не согласен - попробуй ab ;)
с уважением,
магистр белой магии.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Темплейты
« Ответ #16 : 26 Марта 2002, 13:56:13 »
Ещё раз о птичках!

Кто-нить подкинет мазу как правильно подгружать темплейты?
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Темплейты
« Ответ #17 : 26 Марта 2002, 19:47:24 »
с уважением,
магистр белой магии.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Темплейты
« Ответ #18 : 27 Марта 2002, 13:29:09 »
Dm
Ну те темплейты есть детство - т.е. требуется написать такую систему которая поддерживает хотя бы тройную вложенность темплейтов
т.е.
$template1="blabla1 $template2";
$template2="blabla2 $template3";
$template3="blabla3 Yo";
и чтобы в итоге при
print $template1

было:

blabla1 blabla2 blabla3 Yo
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Темплейты
« Ответ #19 : 27 Марта 2002, 18:22:06 »
AlieN
могу скинуть свой вариант решения. можно хоть тысячу вложенных шаблонов сделать.
используется eval.
с уважением,
магистр белой магии.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Темплейты
« Ответ #20 : 27 Марта 2002, 19:00:13 »
Dm
А он SQL использует?
Если да - то кидай
kex_net@mail.ru
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Темплейты
« Ответ #21 : 27 Марта 2002, 19:08:07 »
AlieN
нет. все забирает из файлов. так быстрее получается.
прикрутить базу данных - не проблема, если нужно.

ЗЫ. сейчас отправлю
с уважением,
магистр белой магии.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Темплейты
« Ответ #22 : 29 Марта 2002, 20:58:39 »
Dm
Поймал сурс.
Ещё-бы пример работы не помешало-бы + алгоритм работы - хорошо
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Темплейты
« Ответ #23 : 29 Марта 2002, 22:26:03 »
Неплохо было бы выкладывать - ссылку или часть кода.
Евгений aka Razor,

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Темплейты
« Ответ #24 : 29 Марта 2002, 23:56:56 »
простейший класс работы с шаблонами:

<?
class 
template {
	
var 
$template_dir
	
=
	
\
'./templates/\';
	
var $ext
	
	
=
	
\'.html\';
	
var $template
	
	
=
	
array();
	
var $templates
	
	
=
	
array();

	
function load($names) {
	
	
$names = explode("|", $names);
	
	
foreach($names as $name) {
	
	
	
$fl = file($this->template_dir.$name.$this->ext);
	
	
	
$this->templates[$name] = implode("", $fl);
	
	
}
	
}

	
function add($id_tpl, $name_tpl, $data_tpl) {
	
	
extract($data_tpl);
	
	
if(isset($this->template[$id_tpl])) { $p = "."; } else { $p = " "; }
	
	
eval(\'$this->template[$id_tpl]\'.$p.\'= "\'.addslashes($this->templates[$name_tpl]).\'";\');
	
	
$this->template[$id_tpl] = str_replace("\\\'", "\'", $this->template[$id_tpl]);
	
}
}
?>

переменные:
$template_dir - каталог с файлами шаблонов
$ext - расширение файлов шаблонов

функции:
   load(names)   - загружает шаблон(ы) в массив $template из файлов.
   Если загружается один шаблон, $names = "001". Если несколько, они разделяются
   символом "|" - $names = "001|002|005|006". Сделано для того, чтобы загружать
   определенные файлы шаблонов.

   add(id, name, data)   - производит замену переменных в шаблоне на данные и размещает результат
   в массив $templates. Причем, если функцию повторить для уже использованного ключа, то
   полученные данные прибавляются.

   id - имя ключа.
   name - название шаблона (обращается к $template).
   data - массив переменных для замены в шаблоне. Вид: array("variable" => "value");


пример:

<?
$t->add("links""003", array(
	
"namelink"
	
=> 
"test link",
	
	
	
	
	
	
	
	
"link"
	
	
=> 
"/test");
$t->add("output""002", array(
	
"title"
	
	
	
=> 
"test page",
	
	
	
	
	
	
	
	
"charset"
	
	
=> 
$charset,
	
	
	
	
	
	
	
	
"links"
	
	
	
=> 
$t->template["links"]));
echo 
$t->template["output"];
с уважением,
магистр белой магии.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Темплейты
« Ответ #25 : 02 Апреля 2002, 14:53:56 »
! Ура я уже почти понял !
Пришлось перекопать половину исходников данного форума ужасно.
В общем скоро будет написан интересный класс работы с шаблонами с использованием MySQL кому интересен сурс - мыльте
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Темплейты
« Ответ #26 : 02 Апреля 2002, 19:26:00 »
AlieN
лучше напиши здесь, где его можно будет скачать.
с уважением,
магистр белой магии.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Темплейты
« Ответ #27 : 04 Апреля 2002, 12:24:07 »
Dm
Можешь рассказать об алгоритме загрузки и вывода шаблонов?
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Темплейты
« Ответ #28 : 04 Апреля 2002, 16:45:25 »
описание функций уже было.
что именно не понятно?
с уважением,
магистр белой магии.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Темплейты
« Ответ #29 : 04 Апреля 2002, 16:56:34 »
Dm
Желательно чтобы ты описал каждую строчку
и
Цитировать
echo $t->template["output"];
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28