Общие элементы для всех страниц сайта

Автор статьи: Кузьмин Илья ©
Сайт Автора: il-89.narod.ru
E-mail Автора: il-89@narod.ru
Дата публикации: 12.11.2005

 Под общими элементами для всех страниц сайта я подразумеваю те элементы, которые присутствуют на всех страницах сайта, такие как меню, таблица с счётчиками, "шапка". Часто с изменением таких элементов могут быть большие проблемы. Например, Вы решили поставить себе новый счётчик, зарегистрировались и... на все страницы сайта нужно установить код счётчика. Вам будет нужно изменить код ВСЕХ страниц сайта, а потом ещё эти ВСЕ страницы залить на сервер. Или, например, Вам нужно переделать систему навигации или просто добавить новый раздел. И опять же надо лезть в код всех страниц.

Ладно, не будем о плохом... Как этого избежать.
Первый, самый популярный вариант решения этой проблемы - воспользоваться SSI (Server Side Includes). При помощи SSI Вы сможете вставить в страницу код из другого файла. Пользоваться SSI очень просто. Покажу Вам на примере:

1. У нас есть index.html, в котором постоянно приходится менять меню навигации. Копируем код этого меню.
2. Создаём html или txt файл, назовём его, например "menu.txt", и вставляем в этот файл скопированный код
3. Открываем index.html и вместо кода меню вставляем такую строчку

<!--#include virtual="menu.txt"-->

где menu.txt - файл, код из которого надо загрузить.
4. Теперь поменяйте расширение файла index.html на .shtml, т. к. по умолчанию (как правило) сервер обрабатывает SSI только в файлах .shtml.

Всё! Теперь, когда Вам надо изменить меню навигации, Вам достаточно изменить файл menu.txt! Примечание: некоторые хостинги, особенно бесплатные, не поддерживают SSI, узнайте всё в службе поддержки.

Вот так всё просто. Но есть люди, которые сидят на бесплатном хостинге и о SSI только мечтают. Как им быть??? Им можно воспользоваться возможностями JavaScript. Допустим у нас такая же проблема с меню, как и в первом случае. Создаём файл menu.js с примерно таким содержанием: document.write('текст кода'), где текст кода - код меню (к примеру). Теперь открываем index.html и вместо кода меню вводим такие строчки:

<;Script language="JavaScript" src="menu.js">
</script>

Всё готово. Наслаждайтесь своим творением. Если захотите изменить что-нибудь в меню, поменяйте текст в файле menu.js

Как вариант можно рассмотреть и использование Flash. Создаёте меню навигации на Macromedia Flash, преобразуете это в swf-файл. Вместо старого меню вводите вот такую строчку:

<embed src="menu.swf" width="$" height="$"></embed>

Где $ - размеры swf-файла. Их надо обязательно указать.

Можно воспользоваться фреймами. Создаём html-файл menu.html и вместо меню (в index.html) вводим такую строчку:

<iframe src="menu.html" width="250" height="500" scrolling="no" frameborder="0"> </iframe>

src - файл, который надо загрузить
width - ширина фрейма
height - высота фрейма
scrolling - настройка полосы прокрутки, no - скрыть полосу прокрутки, yes - показать полосу прокрутки, auto - полоса прокрутки будет появляться автоматически.
frameborder - настройка границы фрейма, 0 - нет границы, 1 - есть

Фреймами лучше не пользоваться т. к. могут появиться всем известные проблемы с поисковыми машинами и старыми версиями браузеров.

Все рассказанные в этой статье приёмы можно применить не только к меню навигации, но и к счётчикам, "шапкам", спискам и т. п.

Успехов!