[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: По поводу самодельных шаблонов
user321
Здравствуйте.

Пытаюсь упрощать жизнь применением шаблонов, если это можно так назвать.

Есть блок кода (html со вставками типа <?php echo $a?>, упакованный в tem.tpl), который нужно выводить циклом. Как это лучше сделать не знаю. Подскажите.

Нужно что-то вроде (описана идея, технически код - неправильный):

<?php
$a = 'asdf';
while ($myrow = mysql_fetch_assoc ($result)
{
echo tem.tpl;
}
?>



Содержимое tem.tpl:

<div>Текст: <?php echo $a?></div>




Спустя 1 минута, 14 секунд (19.04.2011 - 20:37) inpost написал(а):
include 'tem.tpl';

а вообще, посмотри на ирбисе, как работает функции по работе с шаблонами: irbis-team.com

Спустя 5 минут, 9 секунд (19.04.2011 - 20:43) user321 написал(а):
Смотрел на ирбисе. Многое оттуда беру. По поводу шаблонов - тоже глядел буквально только что. Но разбираться и копаться в коде нет времени. Тамошний вариант сложнее моего.

А если сравнить по скорости вариант с include и вариант с чистым кодом в цикле. Что быстрее?

Спустя 2 часа, 47 минут, 31 секунда (19.04.2011 - 23:30) Columb написал(а):
В теории вывод конечно быстрее. Но, как показывает практика различие минимальны и не заметны глазу.
Юзайте include. Время выполнения не критично, ТОЛЬКО если в не делаете высоко нагруженную систему, кто знает smile.gif
P.S. можно и проще в данном случае просто echo. ИМХО.

Спустя 14 минут, 59 секунд (19.04.2011 - 23:45) Raito-kun написал(а):
вот простой пример. закинь 3 файла в папку, посмотри результат.


template.php
class template_class {
var $values = array();
var $html;


function get_tpl($tpl_name) {
if (empty($tpl_name) || !file_exists($tpl_name)) {
return false;
}
else {
$this->html = file_get_contents($tpl_name);
}
}


function set_value($key, $var) {
$key = '{' . $key . '}';
$this->values[$key] = $var;
}


function tpl_parse() {
foreach ($this->values as $find => $replace) {
$this->html = str_replace($find, $replace, $this->html);
}
}
}


$tpl = new template_class;


index.php
require_once("./template.php");

$USER = "username";
$LAST = "19.04.2011";
$REG_DATE = "16.04.2011";
$MESSAGES = 34;
$PERSONAL = 0;

$tpl->get_tpl('welcome.tpl');

$tpl->set_value('USER', $USER);
$tpl->set_value('LAST', $LAST);
$tpl->set_value('REG_DATE', $REG_DATE);
$tpl->set_value('MESSAGES', $MESSAGES);
$tpl->set_value('PERSONAL', $PERSONAL);

$tpl->tpl_parse();

echo $tpl->html;


welcome.tpl
<p>Добро пожаловать <b>{USER}</b>
<p>
Дата вашего последнего визита: <b>{LAST}</b>
<p>
Дата регистрации: <b>{REG_DATE}</b>
<p>
Вами оставлено сообщений: <b>{MESSAGES}</b>
<p>
Новых личных сообщений: <b>{PERSONAL}</b>

Спустя 13 минут, 43 секунды (19.04.2011 - 23:59) user321 написал(а):
Спасибо за последний пример! Буду смотреть.

По поводу высоконагруженности. Количество посетителей одновременно обращающихся к странице 300-700. Не одновременно, а за единицу времени (принятую 5 мин.)

Спустя 26 минут, 21 секунда (20.04.2011 - 00:25) Columb написал(а):
Все зависит от Ваших потребностей. В чем преимущество использование шаблонов? Во первых это отделение кода от "верстки" второе, как по мне это большая практичность если вы будете периодично менять, например оформление сайта и т.д. а так же эффективность корректировать нужное вам содержимое.
Но даже в курсах на IRBIS говорят, не скажу дословно, но суть в том, что начинающие, кто "познал" шаблоны, начинают их применять абсолютно везде. Но это не всегда оправдано. Иногда гораздо эффективнее и проще использовать непосредственно генерацию контента средствами php.
Но в вашем случае я бы не юзал шаблон, это как раз этот случай, но я все же не знаю общей "картины Ваших замыслов" smile.gif

Спустя 13 часов, 22 минуты, 1 секунда (20.04.2011 - 13:47) user321 написал(а):
Сайт - каталог фильмов. Одна и та же часть (довольно объемная по содержанию - около 100 строк) выводится очень часто. Вот и вспомнил слово "шаблон". И вцелом сайт состоит из блочков, которые то выводятся, то не выводятся. Я и раньше применял разбиение на блоки, но то, о чем идет речь в данной теме, особенно в сообщении Raito-kun, для меня новое.

Спустя 9 минут, 54 секунды (20.04.2011 - 13:57) user321 написал(а):
Разобрал пример Raito-kun. Буду переделывать свой include "по образу и подобию" примера. Все "чисто", просто и удобно.

Столкнулся с еще одним неудобством. Допустим, есть много шаблонов. В каждом свои переменные. Нужно постоянно заходить в шаблон и смотреть их... хотя, может можно сделать описание как у функций и оно будет появляться при вводе данных. Попробую...
Быстрый ответ:

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