Changeset 2502

Show
Ignore:
Timestamp:
06/04/08 02:10:09 (21 months ago)
Author:
fumiakiy
Message:

Check if build_type is changed to dynamic from something else and do not rebuild if no map is. BugId:80001

Location:
branches/release-39/lib/MT/CMS
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/release-39/lib/MT/CMS/Common.pm

    r2406 r2502  
    366366            || $obj->type eq 'individual' ) 
    367367        { 
     368            my $static_maps = delete $app->{static_dynamic_maps}; 
    368369            require MT::TemplateMap; 
    369             my @maps = MT::TemplateMap->load( 
    370                 { 
    371                     template_id => $obj->id, 
    372                     build_type  => MT::PublishOption::DYNAMIC() 
    373                 } 
    374             ); 
    375             my @ats = map { $_->archive_type } @maps; 
    376             if ($#ats >= 0) { 
    377                 $q->param( 'type', join( ',', @ats ) ); 
    378                 $q->param( 'with_indexes', 1 ); 
    379                 $q->param( 'no_static', 1 ); 
    380                 $q->param( 'template_id', $obj->id ); 
    381                 $q->param( 'single_template', 1 ); 
    382                 require MT::CMS::Blog; 
    383                 return MT::CMS::Blog::start_rebuild_pages($app); 
     370            my $terms = {}; 
     371            if ( $static_maps && @$static_maps ) { 
     372                $terms->{id} = $static_maps; 
     373            } 
     374            else { 
     375                # all existing maps have been dynamic 
     376                # do nothing 
     377            } 
     378            if ( %$terms ) { 
     379                my @maps = MT::TemplateMap->load($terms); 
     380                my @ats = map { $_->archive_type } @maps; 
     381                if ($#ats >= 0) { 
     382                    $q->param( 'type', join( ',', @ats ) ); 
     383                    $q->param( 'with_indexes', 1 ); 
     384                    $q->param( 'no_static', 1 ); 
     385                    $q->param( 'template_id', $obj->id ); 
     386                    $q->param( 'single_template', 1 ); 
     387                    require MT::CMS::Blog; 
     388                    return MT::CMS::Blog::start_rebuild_pages($app); 
     389                } 
    384390            } 
    385391        } 
  • branches/release-39/lib/MT/CMS/Template.pm

    r2491 r2502  
    13971397        require MT::TemplateMap; 
    13981398        my @p = $q->param; 
     1399        my @static_maps; 
    13991400        for my $p (@p) { 
    14001401            my $map; 
     
    14191420                my $build_type = $q->param($p); 
    14201421                require MT::PublishOption; 
     1422                # Populate maps that are changed from static to dynamic 
     1423                # This should capture new map as well 
     1424                push @static_maps, $map->id 
     1425                    if ( ( $build_type ne $map->build_type ) 
     1426                      && ( MT::PublishOption::DYNAMIC() eq $build_type ) ); 
    14211427                $map->build_type($build_type); 
    14221428                if ( $build_type == MT::PublishOption::SCHEDULED() ) { 
     
    14341440            } 
    14351441        } 
     1442        $app->{static_dynamic_maps} = @static_maps ? \@static_maps : 0; 
    14361443    } 
    14371444