Show
Ignore:
Timestamp:
04/05/08 01:31:43 (20 months ago)
Author:
bchoate
Message:

Changes to update type-based touches prior to any rebuilding. Added 'pre_build', 'post_build' callbacks that wrap entire build process (pre_build is called at start of multi-request build process; post_build is called at the end). Added a total publish time message at end of build process. BugId:74814

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-33/lib/MT/App/CMS.pm

    r1770 r1778  
    30763076        # now, rebuild indexes for affected blogs 
    30773077        my @blogs = $app->param('blog_ids'); 
    3078         foreach my $blog_id (@blogs) { 
    3079             my $blog = MT::Blog->load($blog_id) or next; 
    3080             $app->rebuild_indexes( Blog => $blog ) 
    3081                 or return $app->publish_error(); 
    3082         } 
    3083         my $this_blog = MT::Blog->load( $app->param('blog_id') ); 
    3084         $app->run_callbacks( 'rebuild', $this_blog ); 
     3078        if (@blogs) { 
     3079            $app->run_callbacks( 'pre_build' ) if @blogs; 
     3080            foreach my $blog_id (@blogs) { 
     3081                my $blog = MT::Blog->load($blog_id) or next; 
     3082                $app->rebuild_indexes( Blog => $blog ) 
     3083                    or return $app->publish_error(); 
     3084            } 
     3085            my $blog_id = int($app->param('blog_id')); 
     3086            my $this_blog = MT::Blog->load( $blog_id ) if $blog_id; 
     3087            $app->run_callbacks( 'rebuild', $this_blog ); 
     3088            $app->run_callbacks( 'post_build' ); 
     3089        } 
    30853090        return $app->call_return; 
    30863091    } 
    30873092 
    30883093    if ( exists $options{how} && ( $options{how} eq NEW_PHASE ) ) { 
     3094        my $start_time = time; 
     3095        $app->run_callbacks( 'pre_build' ); 
    30893096        my $params = { 
    30903097            return_args => $app->return_args, 
    30913098            blog_id     => $app->param('blog_id') || 0, 
    3092             id          => [ keys %$rebuild_set ] 
     3099            id          => [ keys %$rebuild_set ], 
     3100            start_time  => $start_time, 
    30933101        }; 
    30943102        my %param = ( 
     
    31033111    else { 
    31043112        my @blogs = $app->param('blog_ids'); 
     3113        my $start_time = $app->param('start_time'); 
    31053114        my %blogs = map { $_ => () } @blogs; 
    31063115        my @set   = keys %$rebuild_set; 
     
    31183127            # Rebuilding something that isn't an entry, rebless as required 
    31193128            if ( $type ne MT::Entry->class_type ) { 
     3129                die "had to rebless? $e"; 
    31203130                my $pkg = MT->model($type) or next; 
    31213131                bless $e, $pkg; 
     
    31393149            blog_ids        => [ keys %blogs ], 
    31403150            id              => \@rest, 
     3151            start_time      => $start_time, 
    31413152        }; 
    31423153        my %param = (