parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Как избежать совпадений?

Артем 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/).

Может кто ссылку знает с примером похожей конструкции?