Line # Revision Author
1 3 ahitrov@rambler.ru %# vim:syn=mason
2 <%args>
3 $object
4 $name => undef
5 $SETS => undef
6 </%args>
7 <%init>
8 return undef unless ref $SETS;
9 return undef unless $name;
10
11 # ���� ��� �������� � ���� ���� integer[] �� ��� �������� ������, ���� � data, �� ������ �� ������.
12 # ��������� �����
13 my @ids = ref($object->$name) eq 'ARRAY' ? @{ $object->$name } : $object->$name;
14
15 my %ids;
16 $ids{$_} = 1 foreach @ids;
17
18 while (my ($k, $v) = each(%$SETS)) {
19 next unless $k =~ /^${name}_(add|delete)$/;
20 next unless $v;
21
22 if ($1 eq 'add') {
23 $ids{$v} = 1;
24 } elsif ($1 eq 'delete') {
25 delete $ids{$v};
26 }
27 }
28
29 return [keys %ids];
30 </%init>

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

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

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

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

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