Changeset 4937

Show
Ignore:
Timestamp:
10/30/09 03:42:09 (4 weeks ago)
Author:
takayama
Message:

* When it was not possible to load as Blog, try to load as Website. bugid: 102939

Location:
branches/greyhound
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/greyhound/lib/MT/BackupRestore.pm

    r4930 r4937  
    11551155    if ($data->{key} =~ /^configuration:blog:(\d+)$/i) { 
    11561156        my $new_blog = $objects->{'MT::Blog#' . $1}; 
     1157        $new_blog = $objects->{'MT::Website#' . $1} 
     1158            unless $new_blog; 
     1159 
    11571160        if ($new_blog) { 
    11581161            $data->{key} = 'configuration:blog:' . $new_blog->id; 
  • branches/greyhound/plugins/MultiBlog/lib/MultiBlog.pm

    r4922 r4937  
    430430        my $pd = $objects->{$key}; 
    431431        my $data = $pd->data; 
    432         my $rebuild_triggers = $data->{rebuild_triggers} 
    433             or next; 
    434         my @restored; 
    435         foreach my $trg_str ( split ( '\|', $rebuild_triggers ) ) { 
    436             my ( $action, $id, $trigger ) = split ( ':', $trg_str ); 
    437             if ( $id eq '_all' ) { 
    438                 push @restored, "$action:$id:$trigger"; 
    439             } 
    440             elsif ( my $new_obj = $objects->{'MT::Blog#' . $id} ) { 
    441                 push @restored, "$action:" . $new_obj->id . ":$trigger"; 
    442                 $callback->( 
    443                     $plugin->translate('Restoring MultiBlog rebuild trigger for blog #[_1]...', $id) 
    444                 ); 
    445             } 
    446         } 
    447         if ( @restored ) { 
    448             $data->{rebuild_triggers} = join ( '|', @restored ); 
     432        if ( my $rebuild_triggers = $data->{rebuild_triggers} ) { 
     433            my @restored; 
     434            foreach my $trg_str ( split ( '\|', $rebuild_triggers ) ) { 
     435                my ( $action, $id, $trigger ) = split ( ':', $trg_str ); 
     436                if ( $id eq '_all' ) { 
     437                    push @restored, "$action:$id:$trigger"; 
     438               } elsif ( $id eq '_blogs_in_website' ) { 
     439                   my @keys = keys %{ $data->{blogs_in_website_triggers} }; 
     440                   foreach my $act ( @keys ) { 
     441                       my @old_ids = keys %{ $data->{blogs_in_website_triggers}{$act} }; 
     442                       foreach my $old_id ( @old_ids ) { 
     443                           my $new_obj = $objects->{'MT::Blog#' . $old_id}; 
     444                           $new_obj = $objects->{'MT::Website#' . $old_id} 
     445                               unless $new_obj; 
     446                           if ( $new_obj ) { 
     447                               $data->{blogs_in_website_triggers}{$act}{$new_obj->id} =  
     448                                   delete $data->{blogs_in_website_triggers}{$act}{$old_id}; 
     449                               $callback->( 
     450                                   $plugin->translate('Restoring MultiBlog rebuild trigger for blog #[_1]...', $old_id)); 
     451                           } 
     452                       } 
     453                   } 
     454                   push @restored, "$action:$id:$trigger"; 
     455               } else { 
     456                    my $new_obj = $objects->{'MT::Blog#' . $id}; 
     457                    $new_obj = $objects->{'MT::Website#' . $id} 
     458                        unless $new_obj; 
     459                    if ( $new_obj ) { 
     460                        push @restored, "$action:" . $new_obj->id . ":$trigger"; 
     461                        $callback->( 
     462                            $plugin->translate('Restoring MultiBlog rebuild trigger for blog #[_1]...', $id) 
     463                        ); 
     464                    } 
     465                } 
     466            } 
     467 
     468            if ( @restored ) { 
     469                $data->{rebuild_triggers} = join ( '|', @restored ); 
     470                $pd->data($data); 
     471                $pd->save; 
     472            } 
     473        } elsif ( my $other_triggers = $data->{other_triggers} ) { 
     474            my @keys = keys %{ $other_triggers }; 
     475            foreach my $act ( @keys ) { 
     476                my @old_ids = keys %{ $other_triggers->{$act} }; 
     477                foreach my $old_id ( @old_ids ) { 
     478                    my $new_obj = $objects->{'MT::Blog#' . $old_id}; 
     479                    $new_obj = $objects->{'MT::Website#' . $old_id} 
     480                        unless $new_obj; 
     481                    if ( $new_obj ) { 
     482                        $data->{other_triggers}{$act}{$new_obj->id} =  
     483                            delete $data->{other_triggers}{$act}{$old_id}; 
     484                        $callback->( 
     485                            $plugin->translate('Restoring MultiBlog rebuild trigger for blog #[_1]...', $old_id)); 
     486                    } 
     487                } 
     488            } 
    449489            $pd->data($data); 
    450490            $pd->save;