parser

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

 

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

пример "градусника"

stepan 26.11.2003 11:58

У меня есть небольшой пример дублирующей навигации. Структура файла tab-delimited должны быть примерно следующая:
uri         title
/news/      Новости
/about/     О компанияя
/services/  Услуги
/contacts/  Контакты
Уровень вложенности - любой. Лучше, конечно, работать с XML-структурой.

Теперь, собственно, сам метод:
# определяем URI текущего раздела
$FULL_URI[$request:uri]
$URI[^FULL_URI.match[\?.*][g]{$match.1}]

# загружаем меню сайта и ищем заголовок текущего раздела
$root[^table::load[/root.cfg]]
^if(^root.locate[uri;$URI]){
   $TITLE[$root.title]
}

@navigation[]
# если это главная страница - не выводим навигацию
^if($URI ne "/"){
   <a href="/">На главную страницу</a>
   
   ^rem{### разбиваем URI по "/" ###}
       $spl[^URI.split[/;h]]
       $navigation[^spl.flip[]]
	
   ^rem{### в цикле перебираем строки таблицы меню $root ###}
       $link[/]
       ^for[i](1;^eval(^navigation.count[]-2)){
            $link[${link}$spl.$i/]
            $i($i+1)
            ^if(^root.locate[uri;$link]){
                &nbsp^;/&nbsp^; <a href="$root.uri">$root.title</a>
            }
       }
       ^rem{### в конце добавляем название текущего раздела ###}
       &nbsp^;/&nbsp^; $TITLE
}