П2: Формирование списка всех разделов сайта в базе


П2: Формирование списка всех разделов сайта в базеМорда: СтандартнаяСераяЗеленая Главная / Портфель / П2: Формирование списка всех разделов сайта в базе Запомнить № 6:
 П2: Формирование списка всех разделов сайта в базеОпубликовано:
 12 апреля 2002 |
В одном из прошлых примеров обещалось рассказать о формировании в базе данных списка всех разделов (это нужно для формирования навигации «хлебные крошки»). Обещания надо выполнять, поэтому ниже приведу текст макроса, которым я это делаю.
@sections.list[]
^eq[^tolower[^name[^env[PATH_INFO]]];index;
^var[length;^length[^env[PATH_INFO]]]
^var[length;-;10]
^var[dir;^left[^env[PATH_INFO];^var[length]]]
^context[sections;
^sql[
select dir, title
from sections
where dir = '^var[dir]'
]
^empty[
^sql[
insert into sections (dir, title)
values ('^var[dir]', '^var[page.title]')
]
;]
]
;]
Пояснения:
Список всех разделов сайта хранится в таблице sections, которая имеет два столбца dir и title. Создать её можно, например, так:
create table sections (
dir varchar(200) not null,
title char(50) not null,
primary key (dir)
)
^var[page.title] — это название страницы и я его определяю в макросе autoexec на каждой странице, можно и по-другому, но до вызова этого макроса (формирующего список разделов сайта в базе).
^var[dir] — это фактически каталог, где находится раздел. Причина, по которой эта переменная формируется так заумно, — это то что вызов ^uri[] работает по разному на разных веб серверах.
У меня документ по умолчанию index.html, если у вас другой, то переделайте второй аргумент в операторе ^eq[] и поставьте другую цифру в конструкции ^var[length;-;10] (10 — это длина строки index.html).
Вставьте макрос sections.list в блок SQL операторов на каждой заглавной странице раздела, либо если страницы имеют один и тот же шаблон, сделайте это в этом шаблоне.
<< № 5 | Содержание | № 7 >>Из последнего№ 24 Работаем с .htpasswd 08.11.2003 (Изменено: 10.01.2004)№ 23 Самодокументирование парсерного кода 14.09.2003№ 22 Работаем с RSS 21.02.2003№ 21 Топологическая сортировка 16.02.2003№ 20 Установка 3-го парсера на хостинге 350mb.ru 12.02.2003ПолезноеParser 2Parser 2Главная / Портфель / П2: Формирование списка всех разделов сайта в базе Запомнить Информация о сервереАвторРегистрация/настройки
содержание | 2 | Каталог моделей судов
Используются технологии uCoz