antivir
Новичок
Ещё один теоретический вопрос по шаблонам
http://dklab.ru/chicken/nablas/16.html
Использую "четвертый способ", когда в шаблон подгружается PHP-код.
Столкнулся с одной проблемой, даже не проблема, а просто задумался над следующим вопросом (вопрос из области «как сделать всё идеально»): а нормально ли, когда в скрипте определяется, какой именно подшаблон (блок HTML-кода) нужно подгружать?
Т.е., допустим, я имею общий шаблон - каркас страницы, в него инклюдится PHP-скрипт, который производит какие-то действия. Например, если нажата кнопка А, то в место основного контента страницы нужно подгрузить один HTML-код, а если нажата кнопка Б, то другой.
Вариантов тут может быть два:
1. Имеем на все конечные результаты работы скрипта отдельные полноценные шаблоны (вместе с каркасом страницы). Для ситуации, когда нажата кнопка А - имеем шаблон, в котором прописан один HTML-код, когда нажата Б - совершенно другой шаблон.
Минусы такого подхода - плодим однотипный код шаблона в виде каркасов страницы. Различаться такие шаблоны будут очень незначительно.
Плюсы - мы никак не завязаны в скрипте на именах подшаблонов, скрипт генерирует только данные.
2. Имеем на все результаты работы скрипта один основной шаблон (каркас страницы). Пути к подшаблонам прописаны в скрипте, в генераторе даных, типа
а в основном шаблоне. в каркасе делаем
Минусы - скрипт завязан с шаблоном.
Плюсы - не нужно плодить основной шаблон (каркас).
Лично мне симпатизирует 1 вариант. Хотя, для каждого результата работы скрипта нужно делать отдельную страницу.
Т.е. если есть форма регистрации пользователей, то тут будет как минимум два полных шаблона, вместе с каркасом:
- Шаблон начальный, с формой для вода данных (туда же входит и блок вывода ошибок)
- Шаблон конечный, с сообщением, что "всё ок, вы зарагестрировались".
Даже если эти два шаблона отличаются только тем, что у первого в блоке контента - форма, а другого - сообщение из трёх слов, то ВСЁ РАВНО ОНИ ДОЛЖНЫ БЫТЬ РАЗДЕЛЕНЫ НА ОТДЕЛЬНЫЕ СТРАНИЦЫ, на отдельные сущности.
Этим, ИМХО, можно добиться полной независимости шаблонов от скриптов.
Ваши идеи?
-~{}~ 12.10.06 14:24:
===============================================
Поясню на примере мой первый вариант, за который я ратую:
index.php - шаблон:
Генератор данных kernel.php:
Шаблон на случай удачного выполнения - ok.php:
http://dklab.ru/chicken/nablas/16.html
Использую "четвертый способ", когда в шаблон подгружается PHP-код.
Столкнулся с одной проблемой, даже не проблема, а просто задумался над следующим вопросом (вопрос из области «как сделать всё идеально»): а нормально ли, когда в скрипте определяется, какой именно подшаблон (блок HTML-кода) нужно подгружать?
Т.е., допустим, я имею общий шаблон - каркас страницы, в него инклюдится PHP-скрипт, который производит какие-то действия. Например, если нажата кнопка А, то в место основного контента страницы нужно подгрузить один HTML-код, а если нажата кнопка Б, то другой.
Вариантов тут может быть два:
1. Имеем на все конечные результаты работы скрипта отдельные полноценные шаблоны (вместе с каркасом страницы). Для ситуации, когда нажата кнопка А - имеем шаблон, в котором прописан один HTML-код, когда нажата Б - совершенно другой шаблон.
Минусы такого подхода - плодим однотипный код шаблона в виде каркасов страницы. Различаться такие шаблоны будут очень незначительно.
Плюсы - мы никак не завязаны в скрипте на именах подшаблонов, скрипт генерирует только данные.
2. Имеем на все результаты работы скрипта один основной шаблон (каркас страницы). Пути к подшаблонам прописаны в скрипте, в генераторе даных, типа
PHP:
if($rezult)
$second_tpl = "a.html";
else $second_tpl = "b.html";
PHP:
include($second_tpl);
Плюсы - не нужно плодить основной шаблон (каркас).
Лично мне симпатизирует 1 вариант. Хотя, для каждого результата работы скрипта нужно делать отдельную страницу.
Т.е. если есть форма регистрации пользователей, то тут будет как минимум два полных шаблона, вместе с каркасом:
- Шаблон начальный, с формой для вода данных (туда же входит и блок вывода ошибок)
- Шаблон конечный, с сообщением, что "всё ок, вы зарагестрировались".
Даже если эти два шаблона отличаются только тем, что у первого в блоке контента - форма, а другого - сообщение из трёх слов, то ВСЁ РАВНО ОНИ ДОЛЖНЫ БЫТЬ РАЗДЕЛЕНЫ НА ОТДЕЛЬНЫЕ СТРАНИЦЫ, на отдельные сущности.
Этим, ИМХО, можно добиться полной независимости шаблонов от скриптов.
Ваши идеи?
-~{}~ 12.10.06 14:24:
===============================================
Поясню на примере мой первый вариант, за который я ратую:
index.php - шаблон:
PHP:
<? // Инклюдим гипотетический config ?>
<?
// Инклюдим генератор данных
include("kernel.php");
?>
<HTML><HEAD>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<TITLE>Превед!</TITLE>
</HEAD><BODY>
<H4>Введите что-нибудь</H4>
<? if($err): ?>
<b style="color:red"><?=$err?></b>
<? endif; ?>
<form method="POST">
<input type=text name="go"><br>
<input type=submit>
</form>
</BODY></HTML>
PHP:
<?
$err = '';
if ($_SERVER["REQUEST_METHOD"]=="POST") {
if(!empty($_POST["go"])) {
header("Location: ok.php");
}
else {
$err = "Введи что-нить, тупая скатина!";
}
}
?>
PHP:
<? // Инклюдим гипотетический config ?>
<HTML><HEAD>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<TITLE>Превед!</TITLE>
</HEAD><BODY>
<H4>Всё получилось!</H4>
<p>Вы - супергерой!</p>
</BODY></HTML>