• XSS.stack #1 – первый литературный журнал от юзеров форума

Классный шаблон

IFrin

CD-диск
Пользователь
Регистрация
02.06.2006
Сообщения
14
Реакции
0
Наверняка не одно web-приложение уже не обходится без смены оформления, но я пока лишь могу реализовать это в виде функций, в которые я буду помещать данные излеченные из БД и html код. Но это не удобный способ ибо код html и php начинают сливаться - да и создавать новые шаблоны сплошной гемор. Узнал что существуют уже готовые написанные классы в php, которые помогут все это реализовать...
У меня следующий вопрос к php-кодерам как написать подобный класс, желательно на примерах, посколько теория будет лишней (для меня)..
 
Честно говоря, берется сорец темлейтов какого-нибудь опен-соурс форума (например, phpBB) и курицца :)
Пример простого парсера темплейтов с подробным описанием можно посмотреть хотя бы здесь
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот те наглядный пример основы основ по шаблонам.

Надо разбить html текст на: верх страницы и низ страницы, то есть создать шаблоны. В этом случае, будет меняться только центр странички, что немаловажно.

Следующий файл "top.htm" - верх странички
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>%title%</TITLE></HEAD><BODY>
Этот файл "end.htm" - низ странички
Код:
</BODY></HTML>

Сам сценарий будет такой
Код:
<?php
    //вставляем верхний шаблон и изменяем в нем Title.
$title = "Php-web-дизайн";
$t = @file ('top.htm');
for($i = 0; $i < count($t); $i++){ 
   $t[$i] = str_replace("%title%",$title,$t[$i]);
   echo "$t[$i]"; 
}
    //здесь вставляем центр странички
include("zentr.htm");
    //вставляем низ странички
include("end.htm");
?>

При обращении к этому сценарию сервер выдаст броузеру
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Php-web-дизайн</TITLE></HEAD><BODY>
середина странички, которая будет меняться, то есть zentr.htm.
</BODY></HTML>

Мы добились того, что в верхней части меняем title, выводим саму меняющуюся информацию (zentr.htm) в центр html кода и добавляем низ. Теперь мы будем менять только центральную часть, не заботясь о шаблонах. В этом простом примере мы научились разбивать текст странички, менять его и вставлять файлы. Теперь один раз записав файл верх, по разным ссылкам мы спокойно изменим в нем title или что-нибудь еще, вставим центральную часть и закончим нижней.

У нас на сайте переписывается в верху: title, статистика (левый нижний угол), затем мы вставляем сам текст в центр, а в нижней части переписывается время генерации странички сервером. В итоге, странички получаются всегда разные, хотя мы используем всего два html файла (верх и низ), центр странички разный. То же самое относится и к центральной части, в которой тоже можно создать шаблон, а сервер сам будет менять в нем данные, что придаст сайту больше интерактивности.
 
Одинокий Волк, такой подход геморный я так делал предстваь себе я отдаю кому-нибудь систему на ппользование, а этому челу вдруг хазотелось изменить оформление а в php он дуб - да и такой подход никак не отделяет код от дизайна.. следовательно не катит, мне нужно чтобы на основе tpl файлов...

Вообще-то основы я знаю ибо не спрашивал бы помощи а залез в мануалы..
Одинокий Волк такой подход не очень рациональный - я как раз подобным обходился..

not null, честно говоря статьи читать геморно принцип и так понятен - я еще синтаксис учу в php =) мне легче разобраться на готовом примере.. но как вариант - спасибо =)

SapienS, во во.. что-то подобное искал правда нашел еще более простую альтернативу, в этой как я понял php_template - нужно настройки производить с php.ini чтобы класс присобачить - но это гемор ибо если скрипт будет распостраняться... каждому бзверу прийдется это настраивать..
 
IFrin
Если честно, то прочитав твой вопрос я хотел писать тебе точно так же как и "Одинокий волк" потому как ты что-то запутил очень сложное...
Ты говоришь, что ты хочешь менять дизайн, но при этом не хочешь писать функции... простите, а как тогда ты себе это представляешь ??? типа я хочу поменть и оно само по себе меняется... Будь тогда конктренее...

то что тебе посоветовал "not null" это типа уже больше идет как персонализация...
почему бы не создать файлик config в котором ты просто создаешь константы со ссылками на CSS и файлы header.tpl и footer.tpl ??? следовательно в header.tpl ты будешь денамически подставлять в мета данные CSS таблицы и собирать страницу автоматически...

Или что тебе нужно ??? можешь поконкретнее объяснить, чес слово, не понимаю что тебе нужно, если не это...
 
Кстати последовал SapienS взял готовый класс... smarty,меня пугает то что он весит многовасто для класса...
спасибо not null за линку ибо почитал =)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх