| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Артем 29.04.2005 02:08
Хочу реализовать меню с тремя уровнями:# Подключение в БД, где храянтся все разделы первого уровня
^connect[$connect_string]{
$menua[^table::sql{SELECT id, name, url FROM sect
ORDER by name}]
}
^menua.menu{
<li id="$menua.id"><a href="$href/$menua.url/">$menua.name</a> $menua.id</li>
# Проверяем, если URI соответствует URL раздела первого уровня, то выводим данные для меню 2 уровня, ТОЛЬКО из нужной таблицы
^if(^uri.match[$href/$menua.url/]){
^connect[$connect_string]{
$menub[^table::sql{
SELECT id, name, url, sid
FROM $menua.url
WHERE sid = '0'
ORDER by name
}]
}
# Выводим второй уровень
^menub.menu{
<li class="2"><a href="$href/$menua.url/$menub.url/">$menub.name</a> $menub.id - $menub.sid</li>
# Третий уровень пошел...
^connect[$connect_string]{
$menuc[^table::sql{
SELECT id, name, url, sid
FROM $menua.url
WHERE sid = '$menub.id'
ORDER by name
}]
}
^menuc.menu{
^if(^uri.match[$href/$menua.url/$menub.url/]){
<li class="3"><a href="$href/$menua.url/$menub.url/$menuc.url/">$menuc.name</a> $menuc.id - $menuc.sid</li>
}
}
}
}
}Обнаружил, что если URL первого уровня совпадает с URL второго уровня другого раздела, то выводится и третий уровень нужного раздела (правильно), и второй уровень другого раздела, чей URL совпадает (например: запрашиваю Новости спорта /news/sport/, показыватся плюс к нужному Спортивная команда /sport/).