[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разбор шаблона
web-monster
Вообщем пытаюсь сделать поддержку шаблонов, сейчас сделал так но это глупо:

function comment_template($user,$avatar,$nick,$message,$online,$date,$edit) {

if(file_exists("themes/".THEMES."/comments.php"))
{
include "themes/".THEMES."/comments.php";
}
else
{
include "themes/main/comments.php";
}

}


ну и в comments.php

<table align="center" class="show_comments">
<tbody>
<tr>
<td
width="1%" valign="top">
<a
href="anketa/'.$user.'"><img src="'.$avatar.'" width="80px"></a>
</td>

<td
class="comment_content" valign="top">
<h3>
Написал: <a href="anketa/'.$user.'">'.$nick.'</a> '.$online.'</h3>
<p
class="comment_text">'.$message.'</p>
<div
class="comment_time">'.$date.'</div>
<div
class="comment_edit">'.$edit.'</div>
</td>
</tr>
</tbody>
</table>



Как сделать к примеру чтобы он брал фаил tpl к примеру и потом с тегов {user} получал $user и выводил потом... Подскажите как это делается)



Спустя 53 минуты, 50 секунд (23.06.2010 - 15:13) SlavaFr написал(а):
да вместо include делаеш file_get_contents() и содержимое через str_replace прогоняеш.

Спустя 13 минут, 58 секунд (23.06.2010 - 15:27) web-monster написал(а):
Спасибо! smile.gif

Спустя 3 часа, 21 минута, 58 секунд (23.06.2010 - 18:49) web-monster написал(а):
К примеру вот так:

$opa = file_get_contents('themes/main/comments.tpl');
$left_skoba = str_replace("{", "$", "$opa");
$right_skoba = str_replace("}", ";", "$left_skoba");
echo $right_skoba;

а как сделать чтобы этот код выполнился как код)?

Спустя 2 часа, 35 минут, 40 секунд (23.06.2010 - 21:25) web-monster написал(а):
Сделал так:

class Template {

var $vars = array();
var $template;

function get_template($template) {

if(file_exists("themes/".THEMES."/".$template.".tpl"))
{
$this->template = file_get_contents("themes/".THEMES."/".$template.".tpl");
}
else
{
$this->template = file_get_contents("themes/di_main/".$template.".tpl");
}

}



function set_template($key,$var) {

$this->vars[$key] = $var;

}


function template_parse() {

foreach($this->vars as $find => $replace)
{
$this->template = str_replace($find, $replace, $this->template);
}

}



}


и вызов

$this->get_template('comments'); // Шаблон
$this->set_template('{USER}',$user); // Пользователь
$this->set_template('{AVATAR}',$avatar); // Аватар
$this->set_template('{NICK}',$nick); // Ник
$this->template_parse(); //Парсим
echo $this->template; //Выводим



Так правильно или можно улучшить?
Быстрый ответ:

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