Шаблон простого сайта - как лучше сделать?

Bully

Новичок
Шаблон простого сайта - как лучше сделать?

Допустим, разрабатываем простой сайт без наворотов (страниц 20), все страницы которого выполняются в одном дизайне. Соответственно, файлы с оформлением страниц храним отдельно, а контент - в разных файлах (имя файла - название страницы). Для упрощения будем считать, что
страницы различаются только тегом <title> и, собственно, контентом.

Мне представляется очевидным два пути для решения подобной задачи:

Первый: каждая страница имеет вид:
<?
$title = "Название страницы";
include ("verh.php") ?>
... здесь простой html с контентом...
<? include ("niz.php") ?>

здесь verh.php и niz.php - куски кода до и после контента соответственно.

Второй: каждая страница имеет вид:
<?
$title = "Название страницы";
$content = <<<content
... здесь простой html с контентом...
content;
include ("shablon.php");
?>

Первый вариант мне не нравится из-за необходимости разрезать html с шаблоном страницы на две части - при необходимости отредактировать ее в wysiwyg страницу потребуется склеить. Второй мне не нравится из-за того, что в конструкцию <<<content ... content; нельзя (если я правильно понял) вставить теги php (кроме переменных), таким образом, там может быть только голый html. Писать содержимое переменной $content просто в виде кавычек тем более не удобно - потребуется экранировать все кавычки, относящиеся к html.

Это все я изложил в надежде услышать комментарии и замечания, возможно, понять, что правильным считается совсем другой подход.
 

dorfey

Guest
для начала дебе пойдет первый вариант.
второй вообще полный бред.
 

Фанат

oncle terrible
Команда форума
для начала тебе надо научиться не путать контент и скрипты.
зачем тебе в контенте пхп теги?

-~{}~ 24.06.05 14:29:

вот тебе пример для сайта в 20 страниц.
http://phpclub.ru/talk/showthread.php?postid=485260#post485260

а разрезать тебе в любом случае придётся, так что просто привыкни к этому.

-~{}~ 24.06.05 14:32:

точнее, скажем так.
делаешь сайт как раз на основе первого примера.
сайт, допустим, состоит из двух скриптов - скрипт показа 19 хтмл страничек (тот, что привёл я)
и скрипт гостевой книги.
оба скрипта имеют вид из твоего первого примера.
только вместо контента у них пхп код.
который, в свою очередь, работает с контентом.
 

Bully

Новичок
для начала дебе пойдет первый вариант.
второй вообще полный бред.
Что значит "для начала"? Я делал сайты и так и так, и оба варианта мне не кажутся лучшими.

для начала тебе надо научиться не путать контент и скрипты.
зачем тебе в контенте пхп теги?
Часто бывает необходимо вставить на какую-либо страницу вывод из БД например...

вот тебе пример для сайта в 20 страниц.
сейчас поизучаю...

а разрезать тебе в любом случае придётся, так что просто привыкни к этому.
не согласен - я придумал вариант, при котором не нужно резать. сейчас его опробую и приведу здесь пример.
 

Фанат

oncle terrible
Команда форума
если этот варинант - не шаблонный движок, то ты ошибаешься.
 

Bully

Новичок
Итак, вот этот вариант:

Файл шаблона содержит следующий код:
PHP:
<?php
  if ($tmpl_part == "top")
   {
?>
<html>
<title><?=$title ?></title>
<h1>Часть шаблона до вставки контента</h1>
<?php
   }
  else
   {
?>
<h2>Часть шаблона после вставки контента</h2>
<?php
   }
?>
Страница, содержащая контент, оформляется в таком виде:
PHP:
<?php

  $title = "Название страницы";

  $tmpl_part = "top";
  include_once ("template.inc.php"); // Подключаем файл шаблона страницы (вернюю часть)

?>

... здесь может быть html или php 

<?php

  $tmpl_part = "bottom";
  include_once ("template.inc.php"); // Подключаем файл шаблона страницы (нижнюю часть)

?>
То есть, вводится переменная $tmpl_part, которая определяет, какую часть шаблона нужно вывести.
 

SiMM

Новичок
> То есть, вводится переменная $tmpl_part, которая определяет, какую часть шаблона нужно вывести.
А зачем? Когда можно сделать и подключать два разных файла - template.top.php и template.bottom.php, не заморачиваясь со всякими $tmpl_part? А с учётом include_once - приведённый код вообще не будет работать. Ибо и не должен.
 

Bully

Новичок
А зачем? Когда можно сделать и подключать два разных файла - template.top.php и template.bottom.php, не заморачиваясь со всякими $tmpl_part?
Вопрос как раз в том, как сделать именно один файл - прочитайте ветку внимательно.

с учётом include_once - приведённый код вообще не будет работать. Ибо и не должен.
Да, действительно - надо include () писать. Тогда все работает корректно.
 

Фанат

oncle terrible
Команда форума
Забавная идея.
Мне она не кажется жизнеспособной, но если автору она так нравится, то пусть пользуется.
можно, кстати, обойтись и без переменной задания $tmpl_part перед вызовом.
 

Bully

Новичок
Мне она не кажется жизнеспособной, но если автору она так нравится, то пусть пользуется.
Такая реализация удобна для решения моих задач.

кстати, обойтись и без переменной задания $tmpl_part перед вызовом
Как это сделать? Написать include ("template.inc.php?tmpl_part=top") к сожалению не получится.
 
Сверху