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 (в новом окне)
 
· Пример 6. Организация меню

Сайты, страницы которых содержат разного рода меню (как графические, так и текстовые), - это непосредственные кандидаты для применения VITRAGE. Мы рассмотрим самый общий пример формирования меню с использованием возможностей модуля.

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

<menuitem text="" link="" image="" active="">
<href link="$link$" %noparse%="$active$"><image src="img/$image$" alt="$text$" width=70 height=20></href link="$link$" %noparse%="$active$">
</menuitem>

Мы можем упростить этот тэг, называя каталоги сайта, на которые ссылаются элементы меню, и изображения одинаково. "Флаг" active же будем не передавать, а вычислять исходя из сведений о названии активного пункта меню. Это наименование будет содержаться в глобальной переменной activeitem, а фактом "активности" того или иного элемента меню будет совпадение названия активного пункта с переменной name.

При этом тэг <menuitem> будет выглядеть таким образом (обратим внимание на то, что нам оказалось чуть проще вычислить не "флаг активности", а "флаг неактивности", что для решения задачи непринципиально):

<menuitem text="" name="">
<%vitrage% notactive="$name$">
<%unsetd% notactive="$activeitem$">
<%setifnot% var=notactive>
<href link="$name$/" %parse%="$notactive$"><image src="img/$name$.gif" alt="$text$" width=70 height=20></href link="$link$" %parse%="$notactive$">
</menuitem>

После описания тэга-элемента меню описывается тэг, формирующий меню целиком. Такой тэг будет принимать атрибут, определяющий название активного элемент меню, и будет содержать несколько последовательных вызовов <menuitem>:

<menu activeitem="">
<%vitrage% activeitem="$activeitem$">
<menuitem text="Продукция" name="products">
<menuitem text="Услуги" name="services">
<menuitem text="Ссылки" name="links">
<menuitem text="О компании" name="about">
</menu>

Вызывая теперь тэг <menu> из VHTML-страниц, мы всегда сможем сформировать меню с выделенным отсутствием ссылки активным элементом:

<menu activeitem="products">
<menu activeitem="about">