Преамбула
Суть и простейшие приемы в SSI уже были описаны на данном сайте. Как правило, на развалах статей по мастерингу редко встречается что-то кроме описание единственной функции "include" в самом простом варианте.
Однако SSI смело можно назвать языком программирования, пусть не полноценным, но языком. SSI позволяет определять условия и переменные, а также умеет работать с так называемыми переменными окружения, одной из которых является $QUERY_STRING, активно использующаяся при программировании на Perl, PHP, и других языках создания серверных скриптов. Здесь-то и начинается самое интересное.
Суть явления или результат который имеет Webmaster.
По большому счету речь сейчас пойдет о шаблонах. При очередном обновлении человеку обслуживающему сайт будет достаточно добавить ссылку на новую страницу в оглавлении и создать файл с обычным форматированным текстом без какой бы то ни было разметки. Согласитесь, что это весьма удобно :)
Технология: Условные директивы и переменная окружения $QUERY_STRING.
Вобщем, есть какой-то шаблон index.shtml, который представляет из себя следующее:
<html> <head> <title> :: Титул, блин :: </title> </head> <body> <!-- здесь хедер, т.е. шапка, то что идет прежде контента --> ... Крутые теги и крутая графика ... <!-- конец хедера --> |
Тут, в принципе, проблем с пониманием не должно возникать, а вот далее — самое интересное. Поясню, что значение переменной $QUERY_STRING определяется содержимым строки запроса после знака "?", т.е. http://maste.ru/razdel/index.shtml?page1.
вторая и ключевая часть:
<!--#if expr="$QUERY_STRING" --> <!--#include virtual="$QUERY_STRING.txt" --> <!--#else --> <!--#include virtual="default.txt" --> <!--#endif --> |
Я думаю, что нужна расшифровка. Мы имеем пять директив, из которых три относятся к условным, а две — обычные инклюдсы:
- Проверяется содержимое строки запроса на предмет наличия конструкции "?something" и в случае положительного результата выполняется вторая директива.
- Подключается файл с именем, идентичным содержимому строки, допустим, если строка запроса выглядит так: "http://maste.ru/razdel/index.shtml?page1", то подключается файл "page1.txt", лежащий в одной директории с индексным файлом.
- Исполняется в том случае, если содержимого вида "?something" в строке нет, а URL выглядит так: "http://maste.ru/razdel/index.shtml" или так: "http://maste.ru/razdel/", и преходит к исполнению четвертой директивы.
- Подключается файл по умолчанию, содержащий, как правило, оглавление раздела, т.е. ссылки на файлы раздела, которые должны выглядеть так: <a href="http://maste.ru/razdel/index.shtml?page1">ссылка на страницу №1</a> и т.д.
- Завершение условия.
<!-- здесь футер, т.е.
подвал, то что идет после контента --> ... еще немного Крутых тегов и крутой графики ... <!-- конец футера --> </body> </html> |
Как это будет работать?
В папку сваливаются файлы:
- index.shtml (типа терминал);
- default.txt (список ссылок <a href="http://maste.ru/razdel/index.html?page1">страница 1</a> и тэ дэ и тэ пэ и хэтэтэпэ :);
- файлы page1.txt, ..., page571756.txt пока не надоест, (в принципе название может быть любым, главное чтобы оно совпадало с содержимым после "?" в соответствующей ссылке).
Вот! Юзайте на здоровье :)
Автор: Александр Александров (Alkeeper), mweb.ru
<< НАЗАД