class template
{
var $vars = array();
var $template;
function load($way)
{
if(empty($way) || !file_exists($way))
{
die('Template error, no '.$way);
}
else
{
$this->template = file_get_contents($way);
}
}
function language($lang_array)
{
foreach($lang_array as $find => $replace)
{
$this->vars[$find] = $replace;
}
}
function parse()
{
foreach($this->vars as $find => $replace)
{
$this->template = str_replace($find, $replace, $this->template);
}
}
function remove(){
print $this->template;
}
}
$tpl = new template;
$tpl->load('tempel/main.tpl');
$marks = array('TITLE' =>'Мой титл страницы', 'HEADER'=> 'Заголовок страницы', 'TEXT'=> 'бла-бла-бла-бла-бла-');
$tpl->language($marks);
$tpl->parse();
$tpl->remove();
почму то не делает замену
Спустя 1 час, 2 минуты, 53 секунды (20.01.2012 - 06:42) 45king написал(а):
все разобрался
Спустя 1 час, 39 минут, 43 секунды (20.01.2012 - 08:22) 45king написал(а):
народ не поскажите как такое реализовать вот такое в шаблонизатор вот пример
и получаеться пока есть данные он их выводит там где есть <!-- BEGIN priv --> вот как мне реализовать такое себе в шаблонизатор
$template->assign_block_vars('priv', array(
'POLUCH' =>"<a onclick=\"window.open('/profile.php?mode=viewprofile&u=".$row['p_privmsgs_to_userid']."')\"><span class='$color'>".$row['u_username']."</span></a>",
'OTPRAF'=>"<a onclick=\"window.open('/profile.php?mode=viewprofile&u=".$row['p_privmsgs_from_userid']."')\"><span class='$col'>".$row['g_username']."</span></a>",
<!-- BEGIN priv -->
<tr>
<td>{priv.OTPRAF}</td>
</tr>
<!-- END priv -->
и получаеться пока есть данные он их выводит там где есть <!-- BEGIN priv --> вот как мне реализовать такое себе в шаблонизатор
Спустя 3 часа, 6 минут, 57 секунд (20.01.2012 - 11:29) 45king написал(а):
народ подскажите куда копать
Спустя 4 часа, 19 минут, 25 секунд (20.01.2012 - 15:48) 45king написал(а):
а вот если у меня есть такие массивы
первый масив в нем идут
{ZASEW},{ZASEW},{ZASEW},{ZASEW}
во втором
реал,vflhbn,ttyyyy,tyyyy
потом я заменяю первый масив на второй и
у меня в шаблоне написан один {ZASEW}
и на экран у меня выводиться реал вопрос как мне вывести остальные 3 значения
первый масив в нем идут
{ZASEW},{ZASEW},{ZASEW},{ZASEW}
во втором
реал,vflhbn,ttyyyy,tyyyy
потом я заменяю первый масив на второй и
у меня в шаблоне написан один {ZASEW}
и на экран у меня выводиться реал вопрос как мне вывести остальные 3 значения
Спустя 4 часа, 9 минут, 47 секунд (20.01.2012 - 19:58) killer8080 написал(а):
45king
это
заменяется на это
Это
на это
это
function language($lang_array)
{
foreach($lang_array as $find => $replace)
{
$this->vars[$find] = $replace;
}
}
заменяется на это
function language($lang_array)
{
$this->vars = $lang_array;
}
Это
function parse()
{
foreach($this->vars as $find => $replace)
{
$this->template = str_replace($find, $replace, $this->template);
}
}
на это
function parse(){
$this->template = strtr($this->template, $this->vars);
}
Спустя 10 часов, 6 минут, 26 секунд (21.01.2012 - 06:05) 45king написал(а):
killer8080
а как сделать цикличный шаблонизатор вот пример
хочу вывести всю информацию с базы данных
но на экран выводться только первое сообщение
а как сделать цикличный шаблонизатор вот пример
<?php
include "config.php";
include "function.php";
include "tempelate.php";
$tpl->load('main.tpl');
$ca=$DB->select("SELECT c.text,s.title FROM chat c LEFT JOIN stol s ON(s.id=c.id)");
//$ee=$DB->fetch_array($ca);
foreach($ca as $row){
$tpl->language(array(
'ZASEW'=>$row['text']
));
}
$tpl->wiev();
?>
хочу вывести всю информацию с базы данных
но на экран выводться только первое сообщение
Спустя 2 часа, 43 минуты, 40 секунд (21.01.2012 - 08:48) redreem написал(а):
$content = '';
foreach($ca as $row) {
$content .= $row['text'];
}
$tpl->language(array('ZASEW'=>$content));
foreach($ca as $row) {
$content .= $row['text'];
}
$tpl->language(array('ZASEW'=>$content));
Спустя 2 часа, 25 минут, 56 секунд (21.01.2012 - 11:14) 45king написал(а):
народ кто нить себе писал цикличный шаблонизатор?есть пару вопросов
Спустя 44 секунды (21.01.2012 - 11:15) 45king написал(а):
redreem
мне б желательно цеклычный вывод в шаблонезатор бы сделать
мне б желательно цеклычный вывод в шаблонезатор бы сделать
Спустя 3 минуты, 17 секунд (21.01.2012 - 11:18) redreem написал(а):
слово "цикличный" мало что проясняет.
можно сделать 1 tpl файл с переменными {}, на каждом проходе цикла компилировать этот tpl и добавлять к контенту. сувать прять в шаблонизатор массивы контента - не самое лучшее решение.
можно сделать 1 tpl файл с переменными {}, на каждом проходе цикла компилировать этот tpl и добавлять к контенту. сувать прять в шаблонизатор массивы контента - не самое лучшее решение.
Спустя 13 минут, 27 секунд (21.01.2012 - 11:32) 45king написал(а):
redreem
я вот в одном шаблоне полазел и мне понравелся принцип работы его <!-- BEGIN любая_переменная --> и он выводит пока есть переменные в масиве кажеться циклит через фор я пытался его к себе реализовать но не че не выходит интересно кто нить знает <!-- BEGIN любая_переменная --> случаем не на <for($q=0;$q<=5;$q++)заменяеться?
я вот в одном шаблоне полазел и мне понравелся принцип работы его <!-- BEGIN любая_переменная --> и он выводит пока есть переменные в масиве кажеться циклит через фор я пытался его к себе реализовать но не че не выходит интересно кто нить знает <!-- BEGIN любая_переменная --> случаем не на <for($q=0;$q<=5;$q++)заменяеться?
Спустя 4 минуты, 10 секунд (21.01.2012 - 11:36) 45king написал(а):
redreem
Цитата |
слово "цикличный" мало что проясняет. можно сделать 1 tpl файл с переменными {}, на каждом проходе цикла компилировать этот tpl и добавлять к контенту. сувать прять в шаблонизатор массивы контента - не самое лучшее решение. |
покажи пример а то я так чет не понял
Спустя 20 минут, 53 секунды (21.01.2012 - 11:57) redreem написал(а):
то что ты видел - это уже будет парсер, а не шаблонизатор.
пример писать надо... пока лень.
пример писать надо... пока лень.
Спустя 5 месяцев, 8 дней, 9 часов, 50 минут, 27 секунд (29.06.2012 - 21:47) Guest написал(а):
[sql]
Скрытый текст |
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM |
Спустя 2 минуты, 5 секунд (29.06.2012 - 21:49) I++ написал(а):