Show
Ignore:
Timestamp:
05/20/08 00:16:44 (19 months ago)
Author:
bchoate
Message:

Performance fix for refreshing templates. BugId:79805

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-38/lib/MT/TemplateMap.pm

    r1957 r2396  
    7070    $map->remove_children({ key => 'templatemap_id' }); 
    7171    my $result = $map->SUPER::remove(@_); 
    72      
     72 
    7373    if (ref $map) { 
    7474        my $remaining = MT::TemplateMap->load( 
     
    9999    } 
    100100    else { 
     101        my $blog_id; 
     102        if ( $_[0] && $_[0]->{template_id} ) { 
     103            my $tmpl = MT::Template->load( $_[0]->{template_id} ); 
     104            $blog_id = $tmpl->blog_id if $tmpl; 
     105        } 
     106 
    101107        my $maps_iter = MT::TemplateMap->count_group_by( 
    102             undef, 
     108            { ( defined $blog_id ? ( blog_id => $blog_id ) : () ) }, 
    103109            { group => [ 'blog_id', 'archive_type' ] } 
    104110        ); 
     
    109115            $ats{$blog_id} = $ats; 
    110116        } 
    111         my $iter = MT::Blog->load_iter(); 
     117        my $iter; 
     118        if ( $blog_id ) { 
     119            my $blog = MT::Blog->load( $blog_id ); 
     120            $iter = sub { my $ret = $blog; $blog = undef; $ret; } 
     121        } else { 
     122            $iter = MT::Blog->load_iter(); 
     123        } 
    112124        while ( my $blog = $iter->() ) { 
    113125            $blog->archive_type( $ats{ $blog->id } ? join ',', @{ $ats{ $blog->id } } : '' );