parser

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

 

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

тело try{...} при этом не будет выведено. Re: Использовать ^throw в блоке c ^try...

Demolution 03.01.2004 01:25

Довольно интресно, но "тело try{...} при этом не будет выведено."

Я пытаюсь добиться, чтобы меню из второго урока стало понимать подразделы, т.е.
uri и uri?par1&par2 были оформлены одинаково. Сделал так:
@links_cell[]
$sections[^table::load[/sections.cfg]]
^sections.menu{
$uri[$sections.uri]
$lenght[^uri.length[]]
$uri2[$request:uri?] #вопрос стоит специально!
$uri2[^uri2.mid(0;$lenght)] #сравниваем ТОЛЬКО первые части, т.е. до параметров.
^if($uri eq $uri2){
$bgcolor[$sections.color]
<TABLE id="logo" WIDTH="100%" ALIGN="Center" BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TBODY>
<TR>
<TD WIDTH="100%" HEIGHT="60px" BGCOLOR="$sections.color">
<img title="Союз-А" vspace="0" hspase="0" src="${img_path}${sections.logo}" height="60" width="250" alt="" border="0">
</td>
</tr>
</tbody>
</table>
}
}
<TABLE id="Links" WIDTH="100%" ALIGN="Center" BORDER="0" CELLSPACING="1" CELLPADDING="3"
style="color: #FFFFFF^; font-family: Tahoma">
<TBODY>
<TR>
<nobr>
^sections.menu{
$cell_width[^eval(100\$sections)%]
$uri[$sections.uri]
^if($uri eq $request:uri){
<TD ALIGN="middle" WIDTH="$cell_width" BGCOLOR="$sections.color">
<b>$sections.name</b></TD>
}{
<TD ALIGN="middle" WIDTH="$cell_width" BGCOLOR="$sections.color">
<b><a STYLE="COLOR: #FFFFFF^; TEXT-DECORATION: none" target="_top"
HREF="$sections.uri">$sections.name</a></b></td>
}
}
</nobr>
</TR>
</TBODY>
</TABLE>

А в sections.cfg добавил после каждого uri знак вопроса. Это пришлось сделать потому что все разделы начинаются со знака / и соответственно на всех НЕ главных страницах заголовок выводится дважды - один раз для / eq / а другой раз для /object/ eq /object/ (Это происходит при переборе sections.menu) Добавление вопроса позволило обойти проблему, но решение не универсально. Если будет использоваться uri/object/dir/dir ,то именно это вопросик не даст работать. Если вначале перебора проверить $request:uri ne '/' и только при этом продолжить перебор, а в противном случае вывести заголовок для / (главная страница) и прервать перебор, то получится довольно интересно. Работает это все на http://www.union-a.ru

sections.cfg
section_id name uri color logo
1 Главная /? #FF0000 logored.gif
2 Объекты /object/? #4676CC logoblue.gif
3 Документы /docs/? #15938D logoseawave.gif
4 Объявления /desk/? #763BEA logoviolet.gif
5 Новости /news/? #0EAF1E logogreen.gif
6 Ссылки /links/? #FF7300 logoorange.gif
7 Пользователи /users/? #8AAF04 logosalat.gif
8 О компании /about/? #9B072A logobordo.gif