|
|
|
| Люди добрые, кто может объяснить что это такое? Сколько читал, понял только одно - все это используется для разделения php и html, а на практике нифига. Если взять уже готовый (написаный кем-то) сайт, то не могу понять, как можно создать систему шаблонов? Помогите.... | |
|
|
|
|
|
|
|
для: PHPer
(29.03.2006 в 09:24)
| | Ну начнем с того, что вам желательно почитать Smarty - система постоения шаблонов. В документации довольно понятно объяснено, зачем нужно разделять логику от дизайна, кому это нужно и чем это выгодно. | |
|
|
|
|
|
|
|
для: Денис
(29.03.2006 в 12:55)
| | А где можно скачать этот Smarty? | |
|
|
|
|
автор: cheops (из кафе) (29.03.2006 в 13:36) |
|
|
для: PHPer
(29.03.2006 в 09:24)
| | Исчерпывающая статья по шаблонам расположена по ссылке http://providerz.ru/articles/php/templates.html. | |
|
|
|
|
|
|
|
для: cheops (из кафе)
(29.03.2006 в 13:36)
| | Я читал эту статью, но мне не понятно другое: например, как создать шаблон, если уже имеется готовая страница? Ведь как я понимаю шаблоны применяют при разработкересурсов, а не после того как они созданы. Ведь так? или я ошибаюсь? | |
|
|
|
|
|
|
|
для: PHPer
(29.03.2006 в 13:55)
| | Для этого сначала надо понять как, конкретно ваш, шаблон будет работать.
Если я правильно понимаю, то под "разработкой ресурса" вы подразумеваете верстку, а следовало-бы - код. Тогда и вопросов не будет.
ЗЫ А страницу все равно сначала верстают целиком. | |
|
|
|
|
|
|
|
для: Loki
(29.03.2006 в 15:23)
| | Loki, я хотел у вас узнать: как я понял шаблон используется для вывода, так или нет? Т.е. шаблон - это то же html, разве что с добавлением специальных тэгов. Это так? Просто хотелось бы понять принцип работы шаблонов на простом примере, а не на словах, как это обычно встречается | |
|
|
|
|
|
|
|
для: PHPer
(29.03.2006 в 15:37)
| | Самый простой пример шаблона:
index.tpl
<html>
<head>
<title>{_title_}</title>
</head>
{_content_}
</html>
|
index.php
<?
$data=file_get_contents("index.tpl");
$data=str_replace("Название страницы", "{_title_}", $data);
$data=str_replace("Данные выводимые на страницу", "{_content_}", $data);
echo $data;
?>
|
Это самый простой вариант шаблона. Если его усложнять, то можно его собирать как матрешку из более мелких частей. Причем, пометки что и куда вставлять можно оставлять в самом шаблоне. Правда, при этом мы теряем в скорости работы, так как нам приходится сначала разобрать весь шаблон в поисках спец. тегов, но выигрываем в скорости разработки. Но hgjbuhsdftv на том, что придется изобрести и запомнить мини язык программирования, используемый внутри шаблона...
В общем, ничто не идеально.
Кстати, по ссылке выше как раз прекрасная иллюстрация моим словам. Напрасно вы не стали читать. | |
|
|
|
|
|
|
|
для: Loki
(29.03.2006 в 15:50)
| | кажется речь примерно об этом:
1,рисуете как должна выглядеть страница
2,воспроизводите ее на html
3,переименовываете его в index.php и производите следующие операции:
было index.html
<html>
<head>
</head>
<body>
<!-- шапка-->
<h3>шапка</h3>
<!-- навигация-->
<a href="page2.html">ссылка</a>
<!-- текст-->
<p> текст текст текст текст текст текст</p>
</body>
</html>
|
стало index.php
<html>
<head>
</head>
<body>
<!-- шапка-->
<h3>шапка</h3>
<!-- навигация-->
<a href="?ref=page2">ссылка</a>
<?php
if (empty($ref)) {
$ref='maim_part';
}
$filenamet=$ref . ".html";
include($filenamet);
?>
</body>
</html>
|
+ maim_part.html с содержанием
<p> текст текст текст текст текст текст</p>
|
теперь можно наделать кучу файлов и вставлять их в тело страницы, при этом везде останется навигация и шапка | |
|
|
|
|
|
|
|
для: AlexSol
(29.03.2006 в 16:06)
| | Это как раз пример того, для избавления от чего и используются шаблоны: для отделения php кода от html:) | |
|
|
|
|
|
|
|
для: Loki
(29.03.2006 в 17:05)
| | извиняйте, был неправ... заблуждался... | |
|
|
|
|
|
|
|
для: AlexSol
(29.03.2006 в 17:10)
| | Спасибо народ, теперь проясняется:-) | |
|
|
|
|
|
|
|
для: Loki
(29.03.2006 в 17:05)
| | Loki, хотел ещё вот что узнать: а зачем в FastTemplate или Smarty используют класс шаблона, а от не порождают объект и с ним работают? По-моему твой пример выше проще и всё понятно что к чему, а вот этот класс не совсем. Зачем это нужно? | |
|
|
|
|
|
|
|
для: PHPer
(29.03.2006 в 17:30)
| | Возможно разработчики оформили код в виде класса, для того, чтобы потом систему можно было легко расширить путём наследования или просто отдали дань моде... | |
|
|
|
|
|
|
|
для: PHPer
(29.03.2006 в 17:30)
| | В реальном приложении мой код все равно оформлен в виде функции. Кроме того, данный шаблон достаточно прост. А, например, тот что приведен по ссылке выше, не будучи функцией и работать не будет, так как там используется рекурсивный вызов. | |
|
|
|
|
|
|
|
для: Loki
(29.03.2006 в 21:04)
| | Loki, я заметил вы часто говорите о какой-то своей шаблонной системе, а можно получить на неё ссылочку? Было бы интересно разобраться в ней, у вас достаточно подробно всегда всё пишется на PHP | |
|
|
|
|
|
|
|
для: PHPer
(29.03.2006 в 22:03)
| | Ну "моя" система недалеко ушла от примера который я вам привел. Несколько раз порывался ее усложнить, но при этом сразу же потеряю в скорости и гибкости. Такую использую не только я. Примеры можете посмотреть тут:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=9641&page=1
http://softtime.ru/forum/read.php?id_forum=1&id_theme=10367&page=1 | |
|
|
|
|
|
|
|
для: Loki
(29.03.2006 в 21:04)
| | А мне всегда было интересно, зачем нужно создавать какой-то файл *.tpl, когда можно так
template.php
<html>
<head><title><? echo $title_page ?></title></head>
<body>
<? echo $text_page; ?>
</body>
</html>
|
А сам код оформить так
$title_page = "Заголовок";
$text_page = "Текст";
include "template.php";
|
Чем такой вариант хуже? Ведь он будет выполняться быстрее. | |
|
|
|
|
|
|
|
для: Ziq
(29.03.2006 в 22:16)
| | А теперь на секунду представьте что вам надо:
а. поменять дизайн
б. отладить верстку
в. отладить php
г. дать дизайн на изменение дизайнеру который ничегошеньки не смыслит в php
д. распихать по коду сложную верстку
е. а, б, в, г и д сразу... и вот тогда наступает полный пункт ж!
Если отделить код от оформлеия, то с оформлением может работать любой маломальски подготовленный человек. В то же время, php код получается очень компактным и его легко отлаживать. Собственно, это как функции или классы: на начальном этапе труда придется затратить больше, зато потом скорость разработки возрастает, а сопровождение упрощается. | |
|
|
|
|
|
|
|
для: Loki
(29.03.2006 в 23:59)
| | Кто может сказать можно ли (если да то как) написать одни шаблон, например, к двум разным html-кам? К примеру, на основной странце присутствует ссылка на вторую странице, причём обе они генерируются одни и тем же шаблоном. Такое можно сделать? | |
|
|
|