<!-- carcas.html -->
<table>
<tr>
<td>{HEADER}</td>
</tr>
<tr>
<td>{NAVIGATION}</td>
<td>{CONTENT} <!-- Здесь текст, контент --></td>
</tr>
<tr>
<td>{BOTTOM}</td>
</tr>
</table>
Несколько страничек с одинаковой навигационной частью
Подскажите, пожалуйста, идеологию создания сайта (написания страничек), когда на разных страницах есть повторяющиеся элементы: тутульная часть, подвал и навигационная панель.
Допустим после клика в меню на навигационной панели, мы переходим на новую страничку, на которой присутствует такая же навигация как и на предыдущей. О фреймах многие говорят забыть, т.к. не соответсвуют идеологии, сложности сохранения и индексации страничек целиком, ну и как мне кажется меньше баннеров покажешь, т.к. меняется только лишь часть странички.
Если не использовать фреймы, то страничка загружается полностью. Но разве нет способа облегчить сохранения повторяющейся части допустим в кэше (как это происходит с "css")? Чтобы при открытии новой странички не тянуть лишний траффик.
А как должен поступать верстальщик страничек? Просто копировать старую страничку и заменять часть информации?
Заранее спасибо!
PS: Совсем новичок.
Имеем дизайн странички, потом разбиваем его на куски. Например будут файлы:
0) carcas.html (содержит каркас страницы)
1) header.html
2) navigation.html
3) bottom.html
Код:
Далее пишем простенько на php
Код:
$content="Some text";
$tpl=array(); // содержит шаблоны
$tpl["header"]=file_get_contents("header.html");
$tpl["navigation"]=file_get_contents("navigation.html");
$tpl["bottom"]=file_get_contents("bottom.html");
$tpl["carcas"]=file_get_contents("carcas.html");
$tpl["carcas"]=str_replace("{HEADER}",$tpl["header"],$tpl["carcas"]);
$tpl["carcas"]=str_replace("{NAVIGATION}",$tpl["navigation"],$tpl["carcas"]);
$tpl["carcas"]=str_replace("{BOTTOM}",$tpl["bottom"],$tpl["carcas"]);
$tpl["carcas"]=str_replace("{CONTENT}",$content,$tpl["carcas"]);
die($tpl["carcas"]); // выводим на экран
$tpl=array(); // содержит шаблоны
$tpl["header"]=file_get_contents("header.html");
$tpl["navigation"]=file_get_contents("navigation.html");
$tpl["bottom"]=file_get_contents("bottom.html");
$tpl["carcas"]=file_get_contents("carcas.html");
$tpl["carcas"]=str_replace("{HEADER}",$tpl["header"],$tpl["carcas"]);
$tpl["carcas"]=str_replace("{NAVIGATION}",$tpl["navigation"],$tpl["carcas"]);
$tpl["carcas"]=str_replace("{BOTTOM}",$tpl["bottom"],$tpl["carcas"]);
$tpl["carcas"]=str_replace("{CONTENT}",$content,$tpl["carcas"]);
die($tpl["carcas"]); // выводим на экран
Вот тебе простенький, написанный на скорую руку, шаблонизатор))
Цитата: Шмель
Здравствуйте!
Подскажите, пожалуйста, идеологию создания сайта (написания страничек), когда на разных страницах есть повторяющиеся элементы: тутульная часть, подвал и навигационная панель.
Подскажите, пожалуйста, идеологию создания сайта (написания страничек), когда на разных страницах есть повторяющиеся элементы: тутульная часть, подвал и навигационная панель.
Такое можно сделать на Ajax. Теория такая: создаешь какой-нибудь div в котором у тебя будет изменяющаяся информация. Меню делаешь не ссылками, а вешаешь на каждый пункт меню JavaScript обработчик. В самой функции обработки с помощью Ajax подгружаешь с сервера информацию и засовываешь ее в div с контентом. В этом случае у тебя будет обновлятся только контент, а шапка, меню и подвал будут оставаться старыми.
Сразу должен предупредить, что сайты сделаные таким образом очень не любят поисковики.
Конечно не любят, т.к. глобально AJAX это JavaScript, который в свою очередь поисковики не понимают.
напиши во внешнем js-файле ф-и для генерирования
на ходу html основных обрамляющих панелей или чего-то подобного
(меню, подвал...). И просто вызывай эти ф-и там где надо в обычных
скрипт-вставках. Этот js будет закеширован, сэкономиться хороший
процент.
Я так раньше делал, но теперь все-таки Ajax юзаю.
Рекомендую начинать с http://www.webscript.ru/stories/37 ну и дальше мозг включаем (а он ещё не включён?)
В любом случае только не фреймы. На самом деле новички правильно пытаются прийти к какой-то структуре, отделить одно от другого, но не понимают, что вместо фреймоф и прочей дребедени им нужен простой шаблонный движок (см. ссылку).
Прошу прощения за эмоции.
Использвание шаблонизаторов и Ajax - это просто разные методики. Каждая из них имеет как достоинства так и недостатки. Чем лучше человек будет знаком с этоми особенностями каждого подхода, тем легче ему будет понять что и где лучше использовать.
Цитата: shine
foxweb, не понимаю причин твоего возмущения.
Всё хорошо, полностью согласен! Люди учатся - хорошо. Возмущают - фреймы ;)