-
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 # --------------------------------------------------------------------------------------