Использование SSI в построении сайта

В этой статье я приблизительно расскажу о том как практически использовать технологию SSI.
Естественно это не 100% вариант, вариации возможны, одна из главных задач - понять "а зачем это нужно". Нужно учесть:
Прежде всего поддерживает ли Ваш сервер технологию SSI
Что дочерними файлами являются SHTML странички, которые в свою очередь тоже обрабатываются на наличие SSI.
Что "переменных окружения" ("environment variables") типа: DO*****ENT_NAME в дочерних документах показывает родительские параметры
Что переменные передаются дочерним и следующим по выполнению документам кроме - указания ошибок
Что пути к скриптам в дочерних документах идут относительно дочерних документов
Что пути к графике при выводе идут относительно родительского документа.

Структура странички выглядит приблизительно вот так:
Родитель news.shtml

Переменные SSI
Имя страницы
Мэтатеги
Стили
JavaScript

Верх сайта
Табличка - структура сайта, для примера разбита на 3 частей.

SSI path/left.shtml SSI path/start.shtml SSI path/right.shtml
Низ сайта

Нужно учесть:
Что и верх и низ сайта (include virtual) не находятся в общей таблице.
Так быстрее будет отображаться информация на экране.

  • Переменные SSI
    В этой части создаются переменные которые используются по всему сайту;
      одни для удобства,
      другие для удобного и быстрого изменения дизайна,
      третие для возможности демонстрации навигации и ведения статистики
      .
    Грамматика: #set var=*** value=***
    Присваивает новое значение переменной. Например:

    Переменные:
    Название странички -
    SSI-команда - Выводится при какой то ошибке SSI
    URL странички - Обычно это полезно для длинных путей
    Цвет бекграунда - Значок # желательно не ставить
    Цвет заливки 1 -
    Цвет заливки 2 -
    Цвет заливки 3 -
    Цвет титров 1 -
    Цвет титров 2 -
    Цвет титров 3 -
    Заменив один из параметров "цвета" у вас поменяется его значение во всех дочерних документах
    Для большей наглядности мы перенесем наши переменные на несколько страниц, чтобы у каждой страницы был свой стиль.
    На родителе мы оставляем: SSI-команду ошибки и URL странички, но это после такого скрипта


    ...


    В каждом из файлов: varssi.shtml, varnew.shtml и var.shtml вписаны переменные "цвета" с различными параметрами
    Как это работает: Если в строке после названия файла будет часть слова с символами "ssi" то считыватся будет страничка varssi.shtml с своими параметрами "цвета"
    Соответственно при символах "new" страничка - varnew.shtml. Если ничего подобного не находится - то страничка var.shtml.
    Те переменные которые должны быть разными для разных страничек - лучше вписывать в файлы var***.shtml, а те которые раз и на всегда в var.shtml


  • Имя страницы
    Проще написать
    Но можно и так
    Переменная NamePage будет использоваться еще много раз, поэтому поменяв переменную в установках "set var=" она меняется автоматически везде.

  • Мэтатеги
    Создав один раз страничку mt.shtml со всеми метатэгами Вы избавляетесь от их написания для каждой странички, а также их редактирования в каждой страничке в отдельности.
    Нужно учесть что в страничку вы пишете только метатэги без например :

    Некоторые сразу возмутятся что мой FrontPage перегенерирует (создаст заново) все странички с моими изменениями. Да но после этого вам нежно закачать все странички на сервер, а если их 200, а закачав Вы поняли что не все дописали или что не так, и что все сначала. А здесь одну страничку поменяли и для все одинаково.
    Теперь другие возмутятся, что не бывает так что у всех страничках одинаковые метатэги должны быть. Да я соглашусь, что некоторые странички должны иметь другие мэтатеги. Как это решить - например:
    Содержимое форума не надо кэшировать :


    Как это работает: Если в имени файла будет строка "forum", то впишется строка с параметром "no-cache", для всех остальных строка с параметром "Public".


  • Стили
    Как и в предыдущем варианте создается файл styles.shtml без html, head, body.
    Внутри может быть:
    Простая ссылка -
    Или выбор в зависимости от браузера


    Как это работает: В зависимости от того что находится в переменной ("environment variables") $HTTP_USER_AGENT какой тип браузера у Вас и выводится от сервера к Вам только та часть, которая соответствует браузеру. Ну и если браузер не опредияется то выводится опредиленный набор стиля что после строки .
    Это все конечно размером в байты, но нужно учесть что это все находится в отдельном файле styles.shtml который легко редактировать и работает для всех страниц сайта.


  • JavaScript
    Как и в предыдущих вариантах создается файл js.shtml без html, head, body.
    Внутри может быть:
    Простая ссылка -
    Или выбор в зависимости от страницы

    То есть скрипт будет присутствовать на всех страницах кроме тех в которых в имени будет присутствовать слово forum


  • Верх сайта
    Как и в предыдущих вариантах создается файл top.shtml без html, head, body.
    Внутри может быть целый комплекс дизайнерского решения, поэтому мы ограничимся большим названием и выводом банера :

    " style="font-size: 22px;text-align: center;">

    То есть на место color (цвет фонта) будет вписана переменная COLORtitrA которую мы определили еще в родительском файле news.shtml и var.shtml там же и переменная NamePage с названием страницы.
    Вернемся обратно к файлу top.shtml, и сделаем вывод банера

    Вот оно чудо, как часто Вы меняете банерщиков например по обмену, плохой CTR - меняйте. Естественно в одном файле - baners.shtml
    хотите свою банерную систему - пожалуйста:

    Можно что ни буть и по сложнее

    9" -->



    То есть понятно после 9 часов дня показываем банера с сайта по JavaScript, а с 0 часов свой внутрений скрипт "рандомайзе показ"


  • HTML Таблицы

     
     
     
     

     

     

     

    left.shtml
    Левая часть сайта здесь мы выводим табличку, с линками по всему сайту. На страничке используются заготовленные переменные цветов и что важно полный адрес линков с переменной WWW

      Цвет бекграунда - COLORBCG
      Цвет заливки 1 - COLORfonA
      Цвет заливки 1 - COLORfonB
      Цвет титров 1 - COLORtitrA
      Цвет титров 2 - COLORtitrB


    ">
    /news.shtml">
    ">news

    А в конце не помешает SSI линк на страничку left_baner.shtml, в которой Ваш набор счетчиков.

    start.shtml
    Здесь может быть большой набор скриптов но мы ограничимся новостийными выводами с вариациями.
    По умолчанию стартует скрипт новостийных заглавий, а при нажатии на заглавие вы попадаете на вывод новостийного блока или конкретной старой новости


    В первом "инклюде" если Вы заметили мы передаем наши переменные среды SSI в среду CGI, то есть наши цветовые переменные передаются в CGI скрипт.
    Вот здесь как раз важно чтобы в переменной не было знака # а то ничего не получится

    right.shtml
    Здесь тоже может быть большой набор скриптов, меню, линков в зависимости от различных "переменных окружения" ("environment variables").
    Например HTTP_COOKIE


    То есть в данном случае только лично у Вас будет выводится скрипт admin.cgi с широкими возможностями по администрированию странички.
    И только по тому что у Вас в COOKIE прописано святое слово Administrator
    Хотя Вы понимаете что для таких случаев лучше, что-то типа такого kmWmtfSWNlFnLM
    Как закодировать и записать в ПЕЧЕНЬЕ такой пароль, это разговор не для этой темы


  • Низ сайта
    Как и в предыдущих вариантах создается файл botom.shtml без html, head, body.
    Внутри может быть тэги копирайтов , банеров, элементы своей статистики типа:

    Хороший совет:
    Не забывайте в дочерних файлах дописывать SSI-команду -

    А то надпись "[an error occurred while processing this directive]" очень уж не красива
    Я желаю что бы у Вас никогда не появлялось таких надписей!
    Вот и все.  

  • 2008 © Computer repair