Line # Revision Author
1 205 ahitrov <%once>
2
3 use JSON::XS;
4 my $json = JSON::XS->new;
5
6 </%once>
7 <%args>
8
9 $name => undef
10 $SETS => undef
11
12 </%args>
13 <%init>
14
15 return undef if (! ref($SETS));
16 return undef if (! $name);
17
18 my $FIELDS = {};
19 while (my ($element,$value) = each %{$SETS}) {
20 if ( $element =~ /^${name}_level_(\d+)$/ ) {
21 my $index = $1;
22 $value =~ s/^\s+//s;
23 $value =~ s/\s+$//s;
24 if ( defined $value && $value =~ /^\d+$/ ) {
25 $FIELDS->{$index}{level} = $value;
26 }
27 } elsif ( $element =~ /^${name}_cost_(\d+)$/ ) {
28 my $index = $1;
29 $value =~ s/^\s+//s;
30 $value =~ s/\s+$//s;
31 if ( defined $value && ($value =~ /^\d+$/ || $value =~ /^\d+[\.\,]\d+$/ || $value =~ /^\d+%$/) ) {
32 $value =~ s/\,/\./;
33 $FIELDS->{$index}{cost} = $value;
34 }
35 }
36 }
37 my @FIELDS = sort { int($a->{level}) <=> int($b->{level}) } grep { $_->{level} && defined $_->{cost} } values %$FIELDS;
38 return $json->encode(\@FIELDS);
39
40 </%init>

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

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

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

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

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