Ошибка: Failed to parse the Currency Converter XML document.
$21 880.86
|
Ошибка: Failed to parse the Currency Converter XML document.
$997.63
|
Ошибка: Failed to parse the Currency Converter XML document.
$16 931.13
|
SSI - что, когда, как?
Основным, простейшим, но в то же время чрезвычайно мощным инструментом поддержки больших наборов документов является SSI (Server-Side Includes включения на стороне сервера). Если кто-то из вас знает Си, то он быстро поймет, что SSI чрезвычайно похож на макроязык. С помощью SSI можно не только в зависимости от некоторых условий выводить определенные части документа, не только формировать документ из заранее определенных кусочков, но и вставлять результат работы некоторого CGI сценария или программы прямо в документ.
Только используя SSI вы можете в считанные минуты полностью изменить внешний вид или обновить систему навигации на узле, имеющем сотни или тысячи документов, и так, что это пройдет безболезненно для пользователей узла, т.к. вам только потребуется заменить несколько файлов, а остальное за вас сделает сервер.
В связи со всем вышесказанным рождается одно правило: желательно смысловую часть документа строить так, чтобы она никак не полагалась на содержимое шапок и концевиков. В этом случае вы легко сможете перейти с табличной организации страниц на последовательную или на слоевую.
Теперь приведем пример файла, вставляемого в начало каждого документа сервера http://www.citforum.ru/. Особенностью сервера является то, что каждый раздел имеет свой базовый цвет, и все это создается этим единственным файлом:
<!--#if expr=«$DOCUMENT_URI=/\/internet\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/database\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/ofis\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/abtec\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/programming\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/operating_systems\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/abtec\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/ftp\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/news\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/finnews\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/events\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/lists\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/hardware\//» -->
<!--#elif expr=«$DOCUMENT_URI=/\/nets\//» -->
<!--#else -->
<!--#endif -->
<!--#include virtual=«/cgi-bin/Look_new.cgi»-->
Сервер содержит море(!) аналитической информации
Рубрикатор всех документов CIT Forum
Данный пример иллюстрирует работу с условными операторами, с шаблонами, а также возможность использования вложенных SSI.
Следующий пример иллюстрирует, как с помощью SSI собираются страницы в Кладовой WebClub.ru. Их особенность заключается в наличии повторяющихся блоков одинаково оформленного текста. Достигается это использованием трех шаблонов:
_head.html
Web Club Repository. <!--#echo var=«TITLE» -->
«>
»>
<h>КЛАДОВАЯ</h>
<!--#echo var=«TITLE» -->
_item.html
<!--#echo var=«I_TITLE» -->
<!--#if expr=«$I_PIC» -->
« width=»<!--#echo var=«I_PIC_W» -->«
height=»<!--#echo var=«I_PIC_H» -->« border=0>
<!--#endif -->
<!--#if expr=»$I_SITE« -->
Узел поддержки:»><!--#echo var=«I_SITE» -->
<!--#endif -->
<!--#if expr=«$I_PAGE» -->
Домашняя страница:«><!--#echo var=»I_PAGE« -->
<!--#endif -->
<!--#if expr=»$I_ARCHIVE« -->
Она сама:»><!--#echo var=«I_ARCHIVE» -->
<!--#endif -->
<!--#if expr=«$I_LOCALARCHIVE» -->
Она сама у нас: «><!--#echo var=»I_LOCALARCHIVE« -->
<!--#endif -->
<!--#if expr=»$I_PLATFORM« -->
Платформа: <!--#echo var=»I_PLATFORM« -->
<!--#endif -->
<!--#if expr=»$I_STATUS« -->
Статус: <!--#echo var=»I_STATUS« -->
<!--#endif -->
<!--#if expr=»$I_DESCRIPTION« -->
<!--#echo var=»I_DESCRIPTION« -->
<!--#else -->
No description.
<!--#endif -->
_foot.html
<!--#include virtual=»/materials/banfooter.html«-->
А вот как выглядит на самом деле файл, который вы воспринимаете, как обычный HTML документ (он сокращен для удобства восприятия):
<!--#set var=»TITLE« value=»HTML редакторы и утилиты« -->
<!--#set var=»KEYWORDS« value=»HTML,editor,редактор,утилита,utilities,freeware,shareware,free« -->
<!--#set var=»DESCRIPTION« value=»HTML редакторы и утилиты« -->
<!--#include virtual=»_head.html« -->
<!--#set var=»I_TITLE« value=»Prime Style 1.2« -->
<!--#set var=»I_RATING« value=»1« -->
<!--#set var=»I_PIC« value=»ps.gif« -->
<!--#set var=»I_PIC_W« value=»300« -->
<!--#set var=»I_PIC_H« value=»225« -->
<!--#set var=»I_SITE« value=»« -->
<!--#set var=»I_PAGE« value=»http://www.northnet.com.au/~hardy/prime/« -->
<!--#set var=»I_ARCHIVE« value=»« -->
<!--#set var=»I_LOCALARCHIVE« value=»« -->
<!--#set var=»I_PLATFORM« value=»Windows 95/NT« -->
<!--#set var=»I_STATUS« value=»Free« -->
<!--#set var=»I_DESCRIPTION« value=»Простой и наглядный редактор каскадных
стилей. Простой и понятный интерфейс.« -->
<!--#include virtual=»_item.html« -->
<!--#set var=»I_TITLE« value=»Web-O-Rama v.4.00« -->
<!--#set var=»I_RATING« value=»« -->
<!--#set var=»I_PIC« value=»weborama.gif« -->
<!--#set var=»I_PIC_W« value=»300« -->
<!--#set var=»I_PIC_H« value=»225« -->
<!--#set var=»I_SITE« value=»« -->
<!--#set var=»I_PAGE« value=»« -->
<!--#set var=»I_ARCHIVE« value=»« -->
<!--#set var=»I_LOCALARCHIVE« value=»« -->
<!--#set var=»I_PLATFORM« value=»Windows 95/NT« -->
<!--#set var=»I_STATUS« value=»Free« -->
<!--#set var=»I_DESCRIPTION« value=»Весьма удобный интерфейс, возможность
внешнего просмотра файлов через браузер, открывает сразу много файлов.
Есть встроенный индикатор контроля системных ресурсов.« -->
<!--#include virtual=»_item.html« -->
<!--#set var=»I_TITLE« value=»HTML Font Colorizer« -->
<!--#set var=»I_RATING« value=»3« -->
<!--#set var=»I_PIC« value=»« -->
<!--#set var=»I_PIC_W« value=»100« -->
<!--#set var=»I_PIC_H« value=»100« -->
<!--#set var=»I_SITE« value=»« -->
<!--#set var=»I_PAGE« value=»http://home1.inet.tele.dk/theill/hfc.htm« -->
<!--#set var=»I_ARCHIVE« value=»« -->
<!--#set var=»I_LOCALARCHIVE« value=»« -->
<!--#set var=»I_PLATFORM« value=»Windows 95/NT« -->
<!--#set var=»I_STATUS« value=»Freeware« -->
<!--#set var=»I_DESCRIPTION« value=»Эта великолепная утилита, котороя
позволит вам создать цветовое перетекание в тексте любым цветом. Достаточно
нажать несколько кнопок.« -->
<!--#include virtual=»_item.html« -->
<!--#include virtual=»_foot.html" -->
Данный пример замечательно иллюстрирует передачу параметров вставляемым файлам, возможность использования вложенного SSI, а также работу с условными операторами. В случае, если потребуется изменить внешний вид этих страниц, достаточно поменять всего три файла. Тут же весь раздел приобретет новый вид. Или можно, отредактировав один единственный файл отключить показ всех картинок в разделе.