parser

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

 

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

Ответ

Misha v.3 09.07.2014 17:08 / 10.07.2014 04:30

скорее всего у вас после @years_1989[] есть пробелы/табы и переводы строк.
вместо разборок почему так можно написать:
@years_1989[]
$result[1989]

сразу в глаза бросается совершенно неправильный подход вида @years_1997[], @visit_1997[].

цифры должны быть параметром, а не частью имени. тогда @years_1997[] + @years_1989[] превратиться в:
@years_title[year][result]
$year
и вызываться будут так:
^year_title[1997] и ^year_title[1989]

а @visit_1997[] и @visit_1989[] превратятся в:
@year_visit[year][result;sections]
$sections[^table::load[../_cfg/visit_${year}.cfg]] 
^sections.menu{^visit_years_cell[$sections]}

@visit_years_cell[sections]
^if(!def $sections.uri){ 
	<span>$sections.name<span class="sign">$sections.sign</span></span>
}($sections.uri eq $request:uri){	
	<span><span class="tr_active_list">$sections.name</span><span class="sign">$sections.sign</span></span>
}{ 
	<span><a href="$sections.uri" class="underline">$sections.name</a><span class="sign">$sections.sign</span></span>
}
глобальные переменные (я про sections) лучше стараться не использовать. ещё обратите внимание на то, как я отформатировал код метода visit_years_cell. разве не удобнее его стало читать?

аналогично с @visit_tab_yaers_1997[] и @visit_tab_yaers_1989[].
т.е. из 6 методов останется 3 (кода станет почти в 2 раза меньше при том-же функционале).