Line # Revision Author
1 8 ahitrov@rambler.ru <%DOC>
2
3 Компонента получает объект и возвращает хэш с картинками.
4
5 </%DOC>
6 <%ARGS>
7
8 $doc
9
10 </%ARGS>
11 <%INIT>
12
13 return unless ref($doc);
14
15 my @properties = $doc->structure();
16 my $images = {};
17 for (0..$#properties)
18 {
19 my $prop = $properties[$_];
20 my $name = $prop->{attr};
21 if ($prop->{type} eq 'image')
22 {
23 my $IMAGE = undef;
24 if (length($doc->{ $name }) > 8)
25 {
26 $IMAGE = eval ('use vars qw($VAR1); '.$doc->{ $name });
27 if (ref($IMAGE) ne 'HASH') { $IMAGE = {} };
28 }
29 $images->{$name} = $IMAGE;
30 }
31 elsif ( $prop->{type} =~ /^images/ )
32 {
33 my $IMAGES = {};
34 if (length($doc->{ $name }) > 10)
35 {
36 $IMAGES = eval ('use vars qw($VAR1); '.$doc->{ $prop->{attr} });
37 if (ref($IMAGES) ne 'HASH')
38 {
39 $IMAGES = {};
40 $IMAGES->{maxnumber} = 0;
41 };
42 }
43 foreach my $li (keys(%{ $IMAGES }))
44 {
45 if ($li =~ /^image_(\d+)/)
46 {
47 $images->{$name.'_'.$1} = $IMAGES->{$li};
48 }
49 }
50 }
51 }
52 return $images;
53
54 </%INIT>
55

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

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

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

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

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