Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) The CORE
<select name="<% $name %>" class="selects">
%	select_index_tree( $root_sect, 0, $level, $check, $CACHE );
</select>

<%args>

	$name => undef
	$check => undef

	$root => 1
	$level => 15

</%args>
<%init>
	sub select_index_tree
	{
		use locale;
		my ($sect, $offset, $count_offset, $selected, $CACHE) = @_;

		my $spacer = '';
		for(my $c=0; $c<$offset; $c++)
		{
			$spacer = $spacer.(($c == $offset-1) ? '&nbsp;&nbsp;&nbsp;>>&nbsp;&nbsp;&nbsp;' : '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
		}
		if( $sect->id() )
		{
			$m->out('<option value="'.$sect->id.'" '.(($selected == $sect->id) ? ' selected' : '').'>'.$spacer.$sect->name.'</option>');
		}
		elsif( $sect->id() && $sect->id() == 1 )
		{
			
			$m->out('<option style="background-color:#606060;color:#ffffff;" value="'.$sect->id.'" '.(($selected == $sect->id) ? ' selected' : '').'>'.$sect->name.'</option>');
		}
		my @childs = $sect->childs();
		if( @childs && $offset < $count_offset )
		{
			$offset++;
			foreach my $child_id (@childs)
			{
				my $child = $CACHE->{$child_id};
				select_index_tree( $child, $offset, $count_offset, $selected, $CACHE);
			}
			$offset--;
		}
	}


	my $CACHE = {};
	my @cacher = $keeper->get_sections( light => 1 );
	for my $c (@cacher)
	{
		$CACHE->{$c->id()} = $c;
	}

	my $root_sect = $CACHE->{$root} || $CACHE->{1};

</%init>

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.