Changeset 1948 for branches/release-35/lib/MT/BackupRestore.pm
- Timestamp:
- 04/17/08 12:38:52 (20 months ago)
- Files:
-
- 1 modified
-
branches/release-35/lib/MT/BackupRestore.pm (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-35/lib/MT/BackupRestore.pm
r1902 r1948 178 178 $progress->("$err\n", 'Error'); 179 179 next; 180 } 181 my @metacolumns; 182 if ( exists( $class->properties->{meta} ) 183 && $class->properties->{meta} ) { 184 require MT::Meta; 185 @metacolumns = MT::Meta->metadata_by_class( $class ); 180 186 } 181 187 my $records = 0; … … 215 221 next; 216 222 } 217 $bytes += $printer->($object->to_xml(undef, $args) . "\n");223 $bytes += $printer->($object->to_xml(undef, \@metacolumns) . "\n"); 218 224 $records++; 219 225 if ($size && ($bytes >= $size)) { … … 669 675 sub to_xml { 670 676 my $obj = shift; 671 my ($namespace, $ args) = @_;677 my ($namespace, $metacolumns) = @_; 672 678 673 679 my $coldefs = $obj->column_defs; … … 696 702 } 697 703 } 704 my ( @meta_elements, @meta_blobs ); 705 if ( defined( $metacolumns ) && @$metacolumns ) { 706 foreach my $metacolumn ( @$metacolumns ) { 707 my $name = $metacolumn->{name}; 708 if ($obj->$name || (defined($obj->$name) && ('0' eq $obj->$name))) { 709 if ( 'vclob' eq $metacolumn->{type} ) { 710 push @meta_elements, $name; 711 } 712 elsif ( 'vblob' eq $metacolumn->{type} ) { 713 push @meta_blobs, $name; 714 } 715 else { 716 $xml .= " $name='" . MT::Util::encode_xml($obj->$name, 1) . "'"; 717 } 718 } 719 } 720 } 698 721 $xml .= '>'; 699 722 $xml .= "<$_>" . MT::Util::encode_xml($obj->column($_), 1) . "</$_>" foreach @elements; … … 706 729 "</$meta_col>"; 707 730 } 731 $xml .= "<$_>" . MT::Util::encode_xml($obj->$_, 1) . "</$_>" foreach @meta_elements; 732 $xml .= "<$_>" . MIME::Base64::encode_base64($obj->$_, '') . "</$_>" foreach @meta_blobs; 708 733 $xml .= '</' . $elem . '>'; 709 734 $xml;
