VITRAGE: Примеры
· 1. "Распорки"
· 2. Изображения
· 3. "Колонтитулы"
· 4. Ссылки
· 5. Многоязычные сайты
· 6. Организация меню
· 7. Однотипные элементы
· 8. Формы и их обработка
· 9. Случайные операции
· 10. Циклы
· 11. "Ленты" данных
· 12. Внешние скрипты
· 13. Работа с файлами
· 14. "Бесконечный копирайт"
 
Практика
· Немного о стилях парсинга
· Примеры использования
· Работающие сайты
· Хостинги
· Вопросы и ответы
· Задать вопрос
· E-mail
 
Теория
· Компиляция и установка
· Идеология VITRAGE
· Оптимизация HTML
· Создание виртуальных хостов
· Создание структуры доменов
· Ваш собственный язык гипертекстовой разметки
 
О модуле
· Что такое VITRAGE
· История модуля
· Загрузить модуль
· Документация целиком
· Загрузить документацию в формате MS Word
· Слово автора
· English version
 
Технология VITRAGE
Один из витражей города Иркутска
Исходный код
· VHTML-код этой страницы (в новом окне)
· VHTML-код файла vitrage (в новом окне)
 
· Пример 3. "Колонтитулы", инициализация и глобальные параметры сайта

Преобразование логической структуры сайта в набор тэгов и переменных - это, пожалуй, наиболее естественное применение модуля VITRAGE.

Большинство сайтов имеет ярко выраженную структуру страниц, в которой чаще всего принципиально неизменными остаются "шапка" и нижняя часть, то есть "колонтитулы" сайта. Именно их имеет смысл описывать отдельными тэгами для последующего легкого и быстрого форматирования страниц.

"Шапку" сайта автор обычно описывает тэгом <header>. "Шапка" HTML-страницы включает в себя блок <head>...</head>, который, в свою очередь включает в себя заголовок и ключевые слова. Поскольку заголовок и ключевые слова изменяются от страницы к странице, имеет смысл передавать их тэгу <header> в виде соответствующих атрибутов:

<header title="" keywords="">
<html>
<head>
<meta name="keywords" content="$keywords$">
<title>$title$</title>
</head>
<body>
</header>

Мы можем усовершенствовать описание "шапки", выделив описание ключевых слов в отдельный тэг. Это стоит сделать для того, чтобы не отображать описание ключевых слов в тех случаях, когда они не заданы (когда переменная keywords имеет значение пустой строки).

Дополнительно стоит задуматься о том, что часто самые большие различия наблюдаются между титульной (главной) страницей и остальными страницами сайта. Для этого опишем в тэге <header> атрибут main, который будет иметь значение по умолчанию "" в том случае, если страница не является титульной, и будет принимать любое непустое значение, если это главная страница.

Итак:

<keywords content="">
<meta name="keywords" content="$content$">
</keywords>

<header title="" keywords="" main="">
<html><%vitrage% main="$main$">
<head>
<keywords content="$keywords$" %parse%="$keywords$">
<title>$title$</title>
</head>
<body>
<%echo% str="Добро пожаловать на сайт нашей компании!" %parse%="$main$">
</header>

Глобальную переменную main, очевидно, теперь можно использовать в любом месте VHTML-файлов и описаний тэгов, например:

<%echo% str="Эта надпись появится только на титульной странице" %parse%="$main$">

Если страницы расположены в разных каталогах и содержат относительные ссылки (на страницы или изображения) имеет смысл также передавать тэгу <header> в качестве параметра ссылку на "корневой каталог" сайта. Назовем этот атрибут root.

На этапе описания "шапки" следует подумать и о том, что многие страницы содержат одни и те же данные - адреса, телефоны - которые теоретически могут поменяться в будущем. Для того чтобы избежать необходимости изменять их при необходимости на всех страницах, опишем все подобные данные в качестве глобальных переменных (глобальных параметров сайта), которые и будем использовать при форматировании страниц. Для определенности удобно делать это в отдельном тэге, вызываемом из тэга <header>. Поскольку можно сказать, что описание глобальных параметров сайта - это его иницализация, назовем соответствующий тэг <init>.

Окончательно имеем:

<init>
<%vitrage%
email="elk@elk.ru"
address="г. Иркутск, ул. Лермонтова, 108"
url="http://vitrage.sibweb.ru">
</init>

<keywords content="">
<meta name="keywords" content="$content$">
</keywords>

<header title="" keywords="" main="" root="">
<html><%vitrage% main="$main$" root="$root$">
<head><init>
<keywords content="$keywords$" %parse%="$keywords$">
<title>$title$</title>
</head>
<body>
<%echo% str="Добро пожаловать на сайт нашей компании!" %parse%="$main$">
<image src="$root$img/logotype.gif" alt="Логотип" width=100 height=65>
</header>

Нижняя часть большинства сайтов неизменна: она обычно содержит сведения об авторах, контактные координаты и счетчик посещений. Автор модуля чаще всего описывает нижнюю часть сайтов тэгом <footer>, и выглядеть это может так:

<footer>
<hr width=100%>
<table width=100% border=0 cellpadding=4 cellspacing=0><tr>
<td align=left valign=top><image src="http://count.elk.ru/" alt="Счетчик" width=90 height=29></td>
<td align=right valign=top>Copyright c <a href="mailto:$email$">Siberian Web</a><br>Создано с использованием технологии VITRAGE</td>
</tr></table>
</body>
</html>
</footer>

В том случае, если нижняя часть страниц изменяется в зависимости от каких-либо условий, эти условия можно задавать тем же способом, что и для тэга <header> - передавая их в качестве значений атрибутов.

В конечном итоге, каждая из VHTML-страниц сайта будет выглядеть так:

<header title="Компания: Продукция" root="../">
<p>Эта страница посвящена предлагаемой продукции.
<p>Список продукции вы сможете получить, отправив нам <a href="mailto:$email$">запрос</a>.
<footer>

В описании титульной страницы присвоим атрибуту main тэга <header> какое-либо значение:

<header title="Компания" keywords="компания, продукция" main="1">
<p>Ознакомьтесь со списком предлагаемой нами <a href="products/">продукции</a>.
<footer>

Если же и внутренние части страниц имеют ярко выраженную структуру, можно подумать об описании ее дополнительными тэгами. Вариант такого рода действий приведен далее в примере 7.