. Код подключаемого файла, описывающего «шапку» страниц и меню навигации (/_includes/header.shtml)

<style TYPE="text/css"> <!-- @import url(/_styles/style.css); --> </style>
<p ID="carrier"><!--#if expr="$DOCUMENT_URI=/^\/index.html/" -->
<h1 ID="header">Сайт о сайтах</h1>
<!--#else -->
<h1 ID="header"><a HREF="/index.html">Сайт о сайтах</a></h1>
<!--#endif -->
<p ID="menucarrier">
<p ID="menu"><!--#if expr="$DOCUMENT_URI=/^\/concept\/index.html/" --><span>Концепции</span>

<!--#elif expr="$DOCUMENT_URI=/^\/concept\//" --><a CLASS="current" HREF="/concept/index.html">Концепции</a>

<!--#else --><a HREF="/concept/index.html">Концепции</a>

<!--#endif --><!--#if expr="$DOCUMENT_URI=/^\/tech\/index.html/" --><span>Технологии</span>

<!--#elif expr="$DOCUMENT_URI=/^\/tech\//" --><a CLASS="current" HREF="/tech/index.html">Технологии</a>

<!--#else --><a HREF="/tech/index.html">Технологии</a>

<!--#endif --><!--#if expr="$DOCUMENT_URI=/^\/nuances\/index.html/" --><span>Нюансы</span>

<!--#elif expr="$DOCUMENT_URI=/^\/nuances\//" --><a CLASS="current" HREF="/nuances/index.html">Нюансы</a>

<!--#else --><a HREF="/nuances/index.html">Нюансы</a>

<!--#endif --><!--#if expr="$DOCUMENT_URI=/^\/about\/index.html/" --><span>О проекте</span>

<!--#elif expr="$DOCUMENT_URI=/^\/about\//" --><a CLASS="current" HREF="/about/index.html">О проекте</a>

<!--#else --><a HREF="/about/index.html">О проекте</a>

<!--#endif --><!--#if expr="$DOCUMENT_URI=/^\/map\/index.html/" --><span>Карта сайта</span>

<!--#elif expr="$DOCUMENT_URI=/^\/map\//" --><a CLASS="current" HREF="/map/index.html">Карта сайта</a>

<!--#else --><a HREF="/map/index.html">Карта сайта</a>

<!--#endif -->

<p ID="text"> Рассмотрим более подробно два фрагмента этого листинга. Заголовок с названием сайта не снабжается ссылкой на главную страницу, если запрошенным документом является файл /index.html (т. е. сама главная страница) и снабжается такой ссылкой во всех остальных случаях: <!--#if expr="$DOCUMENT_URI=/^\/index.html/" -->
<h1 ID="header">Сайт о сайтах</h1>
<!--#else -->
<h1 ID="header"><a HREF="/index.html">Сайт о сайтах</a></h1>
<!--#endif --> (Знак косой черты, употребляемый внутри регулярного выражения, необходимо предварять символом обратной косой черты.) В дальнейшем условные директивы используются при описании кнопок меню навигации. Фрагменты кода для каждой из кнопок аналогичны друг другу, поэтому рассмотрим лишь один такой фрагмент, описывающий различные состояния кнопки с надписью «Технологии»: <!--#if expr="$DOCUMENT_URI=/^\/tech\/index.html/" --><span>Технологии</span>

<!--#elif expr="$DOCUMENT_URI=/^\/tech\//" --><a CLASS="current" HREF="/tech/index.html">Технологии</a>

<!--#else --><a HREF="/tech/index.html">Технологии</a>

<!--#endif --> Если запрошенным документом является страница оглавления раздела «Технологии» (файл /tech/index.html), то кнопка, соответствующая названию этого раздела, будет неактивной:<span>Технологии</span>

Если же запрошенный документ не является страницей оглавления раздела «Технологии», но находится в каталоге /tech, т. е. является внутренней страницей раздела «Технологии» третьего (или более глубокого) уровня вложенности, код кнопки с названием этого раздела будет следующим:<a CLASS="current" HREF="/tech/index.html">Технологии</a>

В случае же, когда запрошенный пользователем документ не имеет никакого отношения к разделу «Технологии», кнопка меню навигации с названием этого раздела будет описываться следующим кодом:<a HREF="/tech/index.html">Технологии</a>

Таким образом, функциональность динамически генерируемого меню навигации, описываемого единственным файлом, полностью идентична принципу работы навигационного блока исходного статического сайта. При переходе от «статики» к «динамике» мы сохранили прежние имена файлов веб-страниц с расширением html, тогда как используемый нами сервер настроен на обработку директив SSI только в файлах с расширением shtml. Для того, чтобы разрешить обработку SSI-директив в файлах с обоими расширениями, создадим в корневом каталоге дерева документов сервера файл .htaccess следующего содержания.


© 2008-2018 ОптимизацияВебСайтов.ру


Любое использование текстового и графического контента сайта без активной ссылки на источник не доскается.