SSI - НЕ ТОЛЬКО КИРПИЧИКИ ДЛЯ САЙТА Pony (pony@xakep.ru) Спецвыпуск Xakep, номер #027, стр. 027-036-3 КИРПИЧИ И, наконец, инструкция include поможет тебе собрать свой сайт по кусочкам. Вставив во все файлы конструкцию <!--#include virtual = "inc/menu.shtml" --> ты сможешь менять, например, ссылки в меню на всех страницах сайта, изменяя всего лишь один файл. И это правильно. Синтаксис: <!--#include PathType = FileName -->. PathType может быть virtual (указывается виртуальный путь к файлу) или file (указывается относительный путь к файлу, то есть файл должен находиться или в текущем каталоге, или во вложенном каталоге). Virtual работает немного медленнее, но обладает более крутыми возможностями. ЮЗАЙ ИНКЛУДЫ ПРАВИЛЬНО! Вот тебе пара советов: 1) Используй в инклудах только законченные куски кода, то есть открывающий и закрывающий теги должны совпадать. Если код начинается с <table>, он должен заканчиваться </table> и никак иначе. 2) Если все же возникла необходимость разделить код на неравнозначные куски, например, нужно везде вставить оформление до и после твоего контента, используй похожие имена инклудов с разными окончаниями (blablabla_start.shtml и blablabla_end.shtml - подойдут идеально, но ты всегда можешь использовать что-то свое). А в середине используй blablabla_middle[n].shtml. И опять же следи, чтобы твои инклуды составляли законченный кусок кода. 3) Смело используй вложенные инклуды. ЧЕГО НЕТ В ВИНДАХ Apache позволяет использовать инструкцию set var для установки переменных сервера (!). Йоу, можно гнать лажу! Например, <!--#set var="SERVER_NAME" value="www.dhls.ru" --> позволит вместо настоящего имени сервера вывести www.dhls.ru. Синтаксис: <!--#set var = VariableName value = Value -->. И еще одной важной инструкции лишены поклонники MS: конструкция с использованием if/else. Наличие такой команды не может не радовать... Применяется для управления выводом страницы по условию. Синтаксис такой: <!--#if expr=" Condition " --> HTML-код, который будет выводиться, если Condition1 истинно <--#elif expr=" Condition2" --> HTML-код, который будет выводиться, если Condition1 ложно, а Condition2 истинно <--#else --> HTML-код, который будет выводиться, если все условия ложны <--#endif --> Condition - это либо строка, которая является истинной, если не пустая, или набор операторов сравнения строк. Операторы стандартны для логических операций: =,!=,<,<=,> и >. Если вторая строка заключена в "/"(слэши), то условие истинно, если в первой строке встречается хоть одно вхождение второй строки. Можно объединять несколько операторов сравнения с помощью операторов &&(И) и ||(ИЛИ). Для группирования условий используются "()"(скобки). Например, код: <!--#if expr="$HTTP_USER_AGENT=/Nav/ || $HTTP_USER_AGENT=/Mozilla/" --> Netscape Navigator <!--#elif expr="$HTTP_USER_AGENT=/MSIE/" --> Internet Explorer <!--#else --> Неизвестный (<!--#echo var="HTTP_USER_AGENT" -->) <!--#endif --> выведет "Netscape Navigator", если у тебя стоит "Навигатор" или "Мозилла", "Internet Explorer" - если у тебя IE и "Неизвестный ИМЯ_БРОУЗЕРА", если еще что-то (например, "Опера"). |