Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #27, ФЕВРАЛЬ 2003 г.

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 и "Неизвестный ИМЯ_БРОУЗЕРА", если еще что-то (например, "Опера").

Назад на стр. 027-036-2  Содержание  Вперед на стр. 027-036-4