• set_properties.msn

    112 113  
    34 34
    35 35 if ($SETS->{'_delete_image.'.$name} == 1)
    36 36 {
    37 my $IMAGE = eval ('my '.$object->{ $name });
    38 Contenido::File::remove($IMAGE->{'filename'});
    39 Contenido::File::remove($IMAGE->{'mini'}{'filename'});
    40 foreach my $key (keys %{$IMAGE->{'mini'}}) {
    41 if (ref $IMAGE->{'mini'}{$key} && ref $IMAGE->{'mini'}{$key} eq 'HASH' && $IMAGE->{'mini'}{$key}->{'filename'}) {
    42 Contenido::File::remove($IMAGE->{'mini'}{$key}->{'filename'}) if $IMAGE->{'mini'}{$key}->{'filename'} ne $IMAGE->{'mini'}{'filename'};
    43 }
    44 }
    45 $object->{$name} = '';
    37 my $IMAGE = $object->get_image( $name );
    38 $object->_delete_image( $IMAGE );
    39 $object->$name('');
    46 40 } else {
    47 my $IMAGE = undef;
    48 if (length($object->{ $name }) > 8)
    49 {
    50 $IMAGE = eval ('my '.$object->{ $name });
    51 if (ref($IMAGE) ne 'HASH') { $IMAGE = {} };
    41 my $IMAGE = $object->get_image( $name );
    42 $IMAGE = ref $IMAGE ? $IMAGE : {};
    43 $IMAGE = $m->comp('/contenido/components/set_image.msn', default=>$IMAGE, field=>$name, SETS=>$SETS, object=>$object, prop => $prop);
    44 if ( exists $IMAGE->{filename} ) {
    45 local $Data::Dumper::Indent = 0;
    46 $object->$name( Data::Dumper::Dumper($IMAGE) );
    52 47 }
    53 $IMAGE = $m->comp('/contenido/components/set_image.msn', default=>$IMAGE, field=>$name, SETS=>$SETS, object=>$object, prop => $prop);
    54 if (exists($IMAGE->{filename}))
    55 {
    56 local $Data::Dumper::Indent = 0;
    57 $object->{$name} = Data::Dumper::Dumper($IMAGE);
    58 }
    59 48 }
    60 49
    61 50 } elsif ($prop->{type} =~ /^images/) {
    62 51 # --------------------------------------------------------------------------------------
    63 52 # А вот это уже сложнее - составление блока из всех картинок...
    64 53
    65 my $IMAGES = {};
    66 if (length($object->{ $name }) > 10)
    67 {
    68 $IMAGES = eval ('my '.$object->{ $prop->{attr} });
    69 if (ref($IMAGES) ne 'HASH')
    70 {
    71 $IMAGES = {};
    72 $IMAGES->{maxnumber} = 0;
    73 };
    74 }
    54 my $IMAGES = $object->get_image( $name );
    55 if (ref($IMAGES) ne 'HASH') {
    56 $IMAGES = {};
    57 $IMAGES->{maxnumber} = 0;
    58 };
    75 59
    76 my $maxnumber_ = 0;
    77
    78 60 # Теперь надо просмотреть все аргументы - а вдруг это то, что нам нужно...
    79 61 foreach my $arg (keys(%{ $SETS }))
    80 62 {
    81 # Разбиваем все на части, отделяем...
    82 my ($partname,undef) = split(/\./,$arg);
    83 $partname =~ /^(.+)_(\d+)$/;
    84 my ($localname,$number) = ($1, $2);
    85 if ( ($localname eq $prop->{attr}) && ($number > 0) && ( $arg eq $localname.'_'.$number ))
    86 {
    63 # Разбиваем все на части, отделяем...
    64 my ($partname,undef) = split(/\./,$arg);
    65 $partname =~ /^(.+)_(\d+)$/;
    66 my ($localname,$number) = ($1, $2);
    67 if ( ($localname eq $prop->{attr}) && ($number > 0) && ( $arg eq $localname.'_'.$number )) {
    87 68 # Ура! Нашли элемент!
    88 69
    89 70 my $partname = $localname.'_'.$number;
    90 71
    91 if ($SETS->{'_delete_image.'.$partname} == 1)
    92 {
    93 Contenido::File::remove($IMAGES->{'image_'.$number}{"filename"});
    94 Contenido::File::remove($IMAGES->{'image_'.$number}{"mini"}{"filename"});
    95 foreach my $key (keys %{$IMAGES->{'image_'.$number}{'mini'}}) {
    96 if (ref $IMAGES->{'image_'.$number}{'mini'}{$key} && ref $IMAGES->{'image_'.$number}{'mini'}{$key} eq 'HASH' && $IMAGES->{'image_'.$number}{'mini'}{$key}->{'filename'}) {
    97 Contenido::File::remove($IMAGES->{'image_'.$number}{'mini'}{$key}->{'filename'}) if $IMAGES->{'image_'.$number}{'mini'}{$key}->{'filename'} ne $IMAGES->{'image_'.$number}{'mini'}{'filename'};
    98 }
    99 }
    100 delete $IMAGES->{'image_'.$number};
    101 }
    102 else
    103 {
    104 my $IMAGE = undef;
    105 if (exists($IMAGES->{'image_'.$number}))
    106 {
    107 $IMAGE = $IMAGES->{'image_'.$number};
    108 };
    72 if ($SETS->{'_delete_image.'.$partname} == 1) {
    73 $object->_delete_image( $IMAGES->{'image_'.$number} );
    74 delete $IMAGES->{'image_'.$number};
    75 } else {
    76 my $IMAGE = undef;
    77 if (exists($IMAGES->{'image_'.$number})) {
    78 $IMAGE = $IMAGES->{'image_'.$number};
    79 };
    109 80 $IMAGE = $m->comp('/contenido/components/set_image.msn', default=>$IMAGE, field=>$partname, SETS=>$SETS, object=>$object, prop => $prop);
    110 if (exists($IMAGE->{filename}))
    111 {
    112 local $Data::Dumper::Indent = 0;
    113 $IMAGE->{number} = $number;
    114 $IMAGES->{'image_'.$number} = $IMAGE;
    115 $IMAGES->{maxnumber} = $number if ($number > $IMAGES->{maxnumber});
    116 }
    117 }
    118 }
    81 if (exists($IMAGE->{filename})) {
    82 local $Data::Dumper::Indent = 0;
    83 $IMAGE->{number} = $number;
    84 $IMAGES->{'image_'.$number} = $IMAGE;
    85 $IMAGES->{maxnumber} = $number if ($number > $IMAGES->{maxnumber});
    86 }
    87 }
    88 }
    89 }
    119 90
    120 }
    121
    122 if ( scalar(keys(%{ $IMAGES })) > 0)
    123 {
    91 if ( scalar(keys(%{ $IMAGES })) > 0) {
    124 92 my $maxnumber = 0;
    125 93 for ( 1..100 ) {
    126 94 $maxnumber = $_ if exists $IMAGES->{"image_$_"} && $_ > $maxnumber;
    127 95 }
    128 96 $IMAGES->{maxnumber} = $maxnumber;
    129 local $Data::Dumper::Indent = 0;
    130 $object->{$name} = Data::Dumper::Dumper($IMAGES);
    131 }
    97 local $Data::Dumper::Indent = 0;
    98 $object->$name( Data::Dumper::Dumper($IMAGES) );
    99 }
    132 100
    133 101 } elsif ( $prop->{type} eq 'multimedia' ) {
    134 102 # --------------------------------------------------------------------------------------