[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: шаблонизатор
45king
что не так почму шаблонизатор не робит

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 написал(а):
народ не поскажите как такое реализовать вот такое в шаблонизатор вот пример

$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 значения

Спустя 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));


Спустя 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 и добавлять к контенту. сувать прять в шаблонизатор массивы контента - не самое лучшее решение.

Спустя 13 минут, 27 секунд (21.01.2012 - 11:32) 45king написал(а):
redreem
я вот в одном шаблоне полазел и мне понравелся принцип работы его <!-- 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++ написал(а):
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.