Revision 225

Date:
2012/06/27 17:59:40
Author:
ahitrov
Revision Log:
Serialize

Files:

Legend:

 
Added
 
Removed
 
Modified
  • utf8/core/comps/contenido/components/clone_attachments.msn

     
    14 14 return unless ref $object;
    15 15 return unless ref $source;
    16 16
    17 local $Data::Dumper::Indent = 0;
    18 17 my @properties = $source->structure();
    19 18 for (0..$#properties) {
    20 19 my $prop = $properties[$_];
     
    91 90 }
    92 91 }
    93 92 }
    94 $object->$name(Dumper($img));
    93 $object->$name( $object->_serialize($img) );
    95 94 warn "\nClone img complete: ".Dumper($img)."\n" if $DEBUG;
    96 95 }
    97 96 } elsif ( $prop->{type} eq 'images' ) {
     
    151 150 }
    152 151 if ( $attachment->{maxnumber} ) {
    153 152 $PICTURE->{maxnumber} = $attachment->{maxnumber};
    154 $object->$name(Dumper($PICTURE));
    153 $object->$name( $object->_serialize($PICTURE) );
    155 154 }
    156 155 warn "\nClone pics complete: ".Dumper($PICTURE)."\n" if $DEBUG;
    157 156 } elsif ( $prop->{type} eq 'multimedia_new' ) {
     
    168 167 atext => $attachment->{atext}
    169 168 };
    170 169 }
    171 $object->$name(Dumper($img));
    170 $object->$name( $object->_serialize($img) );
    172 171 warn "\nClone binary complete: ".Dumper($img)."\n" if $DEBUG;
    173 172 }
    174 173 }
  • utf8/core/comps/contenido/components/outputs/checkbox_fields.msn

     
    1 1 <%args>
    2 2
    3 $name => undef
    4 $SETS => undef
    3 $name => undef
    4 $SETS => undef
    5 $object => undef
    5 6
    6 7 </%args>
    7 8 <%init>
     
    18 19 $FIELDS->{$name.'_'.$1}->{rusname} = $m->comp('/contenido/components/filter.msn', str => $SETS->{$element});
    19 20 }
    20 21 }
    21 {
    22 local $Data::Dumper::Indent = 0;
    23 return Data::Dumper::Dumper($FIELDS);
    24 }
    22 return $object->_serialize($FIELDS);
    25 23
    26 24 </%init>
  • utf8/core/comps/contenido/components/outputs/hash.msn

     
    1 1 <%args>
    2 $name => undef
    3 $SETS => undef
    2
    3 $name => undef
    4 $SETS => undef
    5 $object => undef
    6
    4 7 </%args>
    5 8
    6 9 <%init>
    7 return undef if (! ref($SETS));
    8 return undef if (! $name);
    9 10
    10 my $FIELDS = {};
    11 while (my ($element,$value)=each %{$SETS}) {
    12 if ($element =~ /^${name}_key_(\d+)$/ && $SETS->{"${name}_value_$1"}) {
    13 $FIELDS->{$value}=$SETS->{"${name}_value_$1"};
    14 }
    15 }
    16 {
    17 local $Data::Dumper::Indent = 0;
    18 return Data::Dumper::Dumper($FIELDS);
    19 }
    11 return undef if (! ref($SETS));
    12 return undef if (! $name);
    13
    14 my $FIELDS = {};
    15 while (my ($element,$value)=each %{$SETS}) {
    16 if ($element =~ /^${name}_key_(\d+)$/ && $SETS->{"${name}_value_$1"}) {
    17 $FIELDS->{$value}=$SETS->{"${name}_value_$1"};
    18 }
    19 }
    20 return $object->_serialize($FIELDS);
    21
    20 22 </%init>
  • utf8/core/comps/contenido/components/outputs/pickup_multi.msn

     
    30 30 }
    31 31 }
    32 32 }
    33 warn "\n\nPickup form ($name)".Dumper(\%ids)."\n";
    33 warn "\n\nPickup form ($name)".Dumper(\%ids)."\n" if $DEBUG;
    34 34 my @ids = map { $_->{id} } grep { !exists $_->{delete} } values %ids;
    35 warn "What to leave ($name)".Dumper(\@ids)."\n\n";
    35 warn "What to leave ($name)".Dumper(\@ids)."\n\n" if $DEBUG;
    36 36
    37 37 return \@ids;
    38 38
  • utf8/core/comps/contenido/components/outputs/select_fields.msn

     
    1 1 <%args>
    2 2
    3 $name => undef
    4 $SETS => undef
    3 $name => undef
    4 $SETS => undef
    5 $object => undef
    5 6
    6 7 </%args>
    7 8 <%init>
     
    10 11 return undef if (! $name);
    11 12
    12 13 my $FIELDS = {};
    13 for my $element (%{ $SETS })
    14 {
    14 for my $element (%{ $SETS }) {
    15 15 if ($element =~ /^${name}_(\d+)\.selectrusname$/)
    16 16 {
    17 17 $FIELDS->{$name.'_'.$1} = {} if (! exists($FIELDS->{$name.'_'.$1}));
     
    25 25 $FIELDS->{$name.'_'.$1}->{values} = \@values;
    26 26 }
    27 27 }
    28 {
    29 local $Data::Dumper::Indent = 0;
    30 return Data::Dumper::Dumper($FIELDS);
    31 }
    28 return $object->_serialize($FIELDS);
    32 29
    33 30 </%init>
  • utf8/core/comps/contenido/components/set_image.msn

     
    1 <%once>
    2
    3 use IO::File;
    4
    5 </%once>
    1 6 <%args>
    2 7
    3 $SETS => undef
    4 $field => undef
    5 $default => undef
    6 $object => undef
    7 $prop => undef
    8 $SETS => undef
    9 $field => undef
    10 $default=> undef
    11 $object => undef
    12 $prop => undef
    8 13
    9 14 </%args>
    10
    11 15 <%init>
    12 use IO::File;
    13 use Data::Dumper;
    14 16
    15 17 return undef unless defined $SETS and defined $field;
    16 18
  • utf8/core/comps/contenido/components/set_properties.msn

     
    42 42 $IMAGE = ref $IMAGE ? $IMAGE : {};
    43 43 $IMAGE = $m->comp('/contenido/components/set_image.msn', default=>$IMAGE, field=>$name, SETS=>$SETS, object=>$object, prop => $prop);
    44 44 if ( exists $IMAGE->{filename} ) {
    45 local $Data::Dumper::Indent = 0;
    46 $object->$name( Data::Dumper::Dumper($IMAGE) );
    45 $object->$name( $object->_serialize($IMAGE) );
    47 46 }
    48 47 }
    49 48
     
    79 78 };
    80 79 $IMAGE = $m->comp('/contenido/components/set_image.msn', default=>$IMAGE, field=>$partname, SETS=>$SETS, object=>$object, prop => $prop);
    81 80 if (exists($IMAGE->{filename})) {
    82 local $Data::Dumper::Indent = 0;
    83 81 $IMAGE->{number} = $number;
    84 82 $IMAGES->{'image_'.$number} = $IMAGE;
    85 83 $IMAGES->{maxnumber} = $number if ($number > $IMAGES->{maxnumber});
     
    94 92 $maxnumber = $_ if exists $IMAGES->{"image_$_"} && $_ > $maxnumber;
    95 93 }
    96 94 $IMAGES->{maxnumber} = $maxnumber;
    97 local $Data::Dumper::Indent = 0;
    98 $object->$name( Data::Dumper::Dumper($IMAGES) );
    95 $object->$name( $object->_serialize($IMAGES) );
    99 96 }
    100 97
    101 98 } elsif ( $prop->{type} eq 'multimedia' ) {
     
    117 114 $MULTI = $m->comp('/contenido/components/set_multi.msn', default=>$MULTI, field=>$name, SETS=>$SETS, object=>$object);
    118 115 if (exists($MULTI->{filename}))
    119 116 {
    120 local $Data::Dumper::Indent = 0;
    121 $object->{$name} = Data::Dumper::Dumper($MULTI);
    117 $object->$name ( $object->_serialize($MULTI) );
    122 118 }
    123 119 }
    124 120
     
    141 137 $MULTI = $m->comp('/contenido/components/set_multimedia_new.msn', default=>$MULTI, field=>$name, SETS=>$SETS, object=>$object, prop => $prop);
    142 138 if (exists($MULTI->{filename}))
    143 139 {
    144 local $Data::Dumper::Indent = 0;
    145 $object->{$name} = Data::Dumper::Dumper($MULTI);
    140 $object->$name( $object->_serialize($MULTI) );
    146 141 }
    147 142 }
    148 143
     
    169 164 $MULTI = $m->comp('/contenido/components/set_audio.msn', default=>$MULTI, field=>$name, SETS=>$SETS, object=>$object, prop => $prop);
    170 165 if (exists($MULTI->{filename}))
    171 166 {
    172 local $Data::Dumper::Indent = 0;
    173 $object->{$name} = Data::Dumper::Dumper($MULTI);
    167 $object->$name( $object->_serialize($MULTI) );
    174 168 }
    175 169 }
    176 170

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

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

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

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

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