SSI для начинающихДля кого и зачем?Итак, у тебя есть сайт на http://by.ru. Или на любом другом хостинге, в возможностях которого числится поддержка SSI. Зачем же эта штука нужна? А затем, что придает страницам некоторую динамичность. SSI значит Server Side Includes. Имеется ввиду, что при отсылке страницы сервер находит в её тексте некоторые директивы и заменяет некоторым текстом. Это дает возможность, например, использовать одну и ту же шапку для всех страниц (и никакой мороки с переписываением кода по 100 раз), скрывать или показывать фрагмент страницы по опреденному условию, параметризовывать страницы, и многое другое. ОсновыДирективы SSI пишутся в комментариях особого вида: <--#название {параметр="значение"}--> Все корректные директивы при загрузке страницы будут заменяться на данные. Например: <--#include virtual="file.txt"--> будет заменена на содержимое файла file.txt. Важно! На многих хостингах (тот же by.ru) SSI включен только для файлов с расширением .shtml Разновидности директив будут рассмотрены по мере применения... Применение 1. Шапка и подвал.Цель: сделать так, чтобы у всех страниц была одинаковая шапка (меню и т.п.), и не нужно было её указывать в коде каждой страницы. Решение: используем include header.shtml<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> </head> <body> footer.shtml</body> </html> page.shtml<!--#include virtual="header.shtml"--> Текст страницы! <!--#include virtual="footer.shtml"--> Результатом, полученным при запросе page.shtml ,будет такая страница: page.shml, полученная клиентом<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> </head> <body> Текст страницы! </body> </html> Применение 2. Переменные.Цель: у каждой страницы должнен быть собственный заголовок. Заголовок должен располагаться в шапке, а не до и не после нее. Решение: используем set и echo header.shtml<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title><!--#echo var="title"--></title> </head> <body> page.shtml<!--#set var="title" value="Заголовок страницы!"--><!--#include virtual="header.shtml"--> Текст страницы! <!--#include virtual="footer.shtml"--> page.shml, полученная клиентом<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Заголовок страницы!</title> </head> <body> Текст страницы! </body> </html> Важно! Если Вы хотите сохранить корректность тэга DOCTYPE, который должен располагаться в первой строчке документа, пишите все директивы, стоящие до подключения шапки, в одну строчку. Иначе перед содержимым шапки будут идти переводы строк, которые, конечно, игнорируются при обработке директив. [unfinished: todo]Возможно, в будущем добавлю другие разделы... |
© 2007 coldFlame aka Леонид Шевцов |