| | 782 | elsif ( defined $asset_ids ) { |
| | 783 | my %asset_ids = @$asset_ids; |
| | 784 | my %error_assets; |
| | 785 | _restore_non_blog_asset( $app, $dir, $asset_ids, \%error_assets ); |
| | 786 | if (%error_assets) { |
| | 787 | my $data; |
| | 788 | while ( my ( $key, $value ) = each %error_assets ) { |
| | 789 | $data .= |
| | 790 | $app->translate( 'MT::Asset#[_1]: ', $key ) . $value . "\n"; |
| | 791 | } |
| | 792 | my $message = $app->translate( |
| | 793 | 'Some of the actual files for assets could not be restored.'); |
| | 794 | $app->log( |
| | 795 | { |
| | 796 | message => $message, |
| | 797 | level => MT::Log::WARNING(), |
| | 798 | class => 'system', |
| | 799 | category => 'restore', |
| | 800 | metadata => $data, |
| | 801 | } |
| | 802 | ); |
| | 803 | $error .= $message; |
| | 804 | } |
| | 805 | } |
| | 872 | elsif ( defined $asset_ids ) { |
| | 873 | my %asset_ids = @$asset_ids; |
| | 874 | my %error_assets; |
| | 875 | _restore_non_blog_asset( $app, $tmp, \%asset_ids, \%error_assets ); |
| | 876 | if (%error_assets) { |
| | 877 | my $data; |
| | 878 | while ( my ( $key, $value ) = each %error_assets ) { |
| | 879 | $data .= |
| | 880 | $app->translate( 'MT::Asset#[_1]: ', $key ) . $value . "\n"; |
| | 881 | } |
| | 882 | my $message = $app->translate( |
| | 883 | 'Some of the actual files for assets could not be restored.'); |
| | 884 | $app->log( |
| | 885 | { |
| | 886 | message => $message, |
| | 887 | level => MT::Log::WARNING(), |
| | 888 | class => 'system', |
| | 889 | category => 'restore', |
| | 890 | metadata => $data, |
| | 891 | } |
| | 892 | ); |
| | 893 | $error .= $message; |
| | 894 | } |
| | 895 | } |
| | 965 | sub _restore_non_blog_asset { |
| | 966 | my ( $app, $tmp_dir, $asset_ids, $error_assets ) = @_; |
| | 967 | require MT::FileMgr; |
| | 968 | my $fmgr = MT::FileMgr->new('Local'); |
| | 969 | foreach my $new_id ( keys %$asset_ids ) { |
| | 970 | my $asset = $app->model('asset')->load($new_id); |
| | 971 | next unless $asset; |
| | 972 | my $old_id = $asset_ids->{$new_id}; |
| | 973 | my $filename = $old_id . '-' . $asset->file_name; |
| | 974 | my $file = File::Spec->catfile( $tmp_dir, $filename ); |
| | 975 | MT::BackupRestore->restore_asset( $file, $asset, $old_id, $fmgr, |
| | 976 | $error_assets, sub { $app->print(@_); } ); |
| | 977 | } |
| | 978 | } |
| | 979 | |