Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) The CORE
<%DOC>

	���������� �������� ������ � ���������� ��� � ����������.

</%DOC>
<%ARGS>

	$doc

</%ARGS>
<%INIT>

	return  unless ref($doc);

	my @properties = $doc->structure();
	my $images = {};
        for (0..$#properties)
	{
		my $prop = $properties[$_];
		my $name = $prop->{attr};
		if ($prop->{type} eq 'image')
		{
			my $IMAGE = undef;
			if (length($doc->{ $name }) > 8)
			{
				$IMAGE = eval ('use vars qw($VAR1); '.$doc->{ $name });
				if (ref($IMAGE) ne 'HASH') {  $IMAGE = {} };
			}
			$images->{$name} = $IMAGE;
		}
		elsif ( $prop->{type} =~ /^images/ )
		{
			my $IMAGES = {};
			if (length($doc->{ $name }) > 10)
			{
				$IMAGES = eval ('use vars qw($VAR1); '.$doc->{ $prop->{attr} });
				if (ref($IMAGES) ne 'HASH')
				{
					$IMAGES = {};
					$IMAGES->{maxnumber} = 0;
				};
			}
			foreach my $li (keys(%{ $IMAGES }))
			{
				if ($li =~ /^image_(\d+)/)
				{
					$images->{$name.'_'.$1} = $IMAGES->{$li};
				}
			}
		}
	}
        return $images;

</%INIT>

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

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

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

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

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