Changeset 2396

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

Performance fix for refreshing templates. BugId:79805

Location:
branches/release-38/lib/MT
Files:
2 modified

Legend:

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

    r2361 r2396  
    355355        my @maps = MT::TemplateMap->load({ template_id => $tmpl->id }); 
    356356        foreach my $map (@maps) { 
    357             $map->build_type($tmpl->build_type); 
    358             $map->save or die $map->errstr; 
     357            if ( ($map->build_type || 0) != ($tmpl->build_type || 0) ) { 
     358                $map->build_type($tmpl->build_type); 
     359                $map->save or die $map->errstr; 
     360            } 
    359361        } 
    360362    } 
     
    364366    } 
    365367    $tmpl->{needs_db_sync} = 0; 
    366  
    367     # if ((!$tmpl->id) && (my $blog = $tmpl->blog)) { 
    368     #     my $dcty = $blog->custom_dynamic_templates; 
    369     #     if ($dcty eq 'all') { 
    370     #         if (('index' eq $tmpl->type) || ('archive' eq $tmpl->type) || 
    371     #             ('individual' eq $tmpl->type) || ('page' eq $tmpl->type) || 
    372     #                 ('category' eq $tmpl->type)) { 
    373     #             $tmpl->build_dynamic(1); 
    374     #         } 
    375     #     } elsif ($dcty eq 'archives') { 
    376     #         if (('archive' eq $tmpl->type) || ('page' eq $tmpl->type) || 
    377     #             ('individual' eq $tmpl->type) || ('category' eq $tmpl->type)) { 
    378     #             $tmpl->build_dynamic(1); 
    379     #         } 
    380     #     } 
    381     # } 
    382368 
    383369    $tmpl->SUPER::save; 
  • 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 } } : '' );