Changeset 1392

Show
Ignore:
Timestamp:
02/21/08 19:58:16 (21 months ago)
Author:
bchoate
Message:

Fix for call to populate_archive_loop

Location:
branches/release-30/lib/MT
Files:
3 modified

Legend:

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

    r1389 r1392  
    29972997} 
    29982998 
    2999 sub _generate_map_table { 
    3000     my $app = shift; 
    3001     my ( $blog_id, $template_id ) = @_; 
    3002  
    3003     require MT::Template; 
    3004     require MT::Blog; 
    3005     my $blog     = MT::Blog->load($blog_id); 
    3006     my $template = MT::Template->load($template_id); 
    3007     my $tmpl     = $app->load_tmpl('include/archive_maps.tmpl'); 
    3008     my $maps     = $app->_populate_archive_loop( $blog, $template ); 
    3009     $tmpl->param( { object_type => 'templatemap' } ); 
    3010     $tmpl->param( { object_loop => $maps } ) if @$maps; 
    3011     my $html = $tmpl->output(); 
    3012  
    3013     if ( $html =~ m/<__trans / ) { 
    3014         $html = $app->translate_templatized($html); 
    3015     } 
    3016     $html; 
    3017 } 
    3018  
    30192999# rebuild_set is a hash whose keys are entry IDs 
    30203000# the value can be the entry itself, for efficiency, 
  • branches/release-30/lib/MT/CMS/Blog.pm

    r1387 r1392  
    11081108} 
    11091109 
    1110 sub _populate_archive_loop { 
    1111     my $app = shift; 
    1112     my ( $blog, $obj ) = @_; 
    1113  
    1114     my $index = $app->config('IndexBasename'); 
    1115     my $ext = $blog->file_extension || ''; 
    1116     $ext = '.' . $ext if $ext ne ''; 
    1117  
    1118     require MT::TemplateMap; 
    1119     my @tmpl_maps = MT::TemplateMap->load( { template_id => $obj->id } ); 
    1120     my @maps; 
    1121     my %types; 
    1122     foreach my $map_obj (@tmpl_maps) { 
    1123         my $map = {}; 
    1124         $map->{map_id}           = $map_obj->id; 
    1125         $map->{map_is_preferred} = $map_obj->is_preferred; 
    1126         my $at = $map->{archive_type} = $map_obj->archive_type; 
    1127         $types{$at}++; 
    1128         $map->{ 'archive_type_preferred_' . $blog->archive_type_preferred } = 1 
    1129           if $blog->archive_type_preferred; 
    1130         $map->{file_template} = $map_obj->file_template 
    1131           if $map_obj->file_template; 
    1132  
    1133         my $archiver = $app->publisher->archiver($at); 
    1134         next unless $archiver; 
    1135         $map->{archive_label} = $archiver->archive_label; 
    1136         my $tmpls     = $archiver->default_archive_templates; 
    1137         my $tmpl_loop = []; 
    1138         foreach (@$tmpls) { 
    1139             my $name = $_->{label}; 
    1140             $name =~ s/\.html$/$ext/; 
    1141             $name =~ s/index$ext$/$index$ext/; 
    1142             push @$tmpl_loop, 
    1143               { 
    1144                 name    => $name, 
    1145                 value   => $_->{template}, 
    1146                 default => ( $_->{default} || 0 ) 
    1147               }; 
    1148         } 
    1149  
    1150         my $custom = 1; 
    1151  
    1152         foreach (@$tmpl_loop) { 
    1153             if (   ( !$map->{file_template} && $_->{default} ) 
    1154                 || ( $map->{file_template} eq $_->{value} ) ) 
    1155             { 
    1156                 $_->{selected}        = 1; 
    1157                 $custom               = 0; 
    1158                 $map->{file_template} = $_->{value} 
    1159                   if !$map->{file_template}; 
    1160             } 
    1161         } 
    1162         if ($custom) { 
    1163             unshift @$tmpl_loop, 
    1164               { 
    1165                 name     => $map->{file_template}, 
    1166                 value    => $map->{file_template}, 
    1167                 selected => 1, 
    1168               }; 
    1169         } 
    1170  
    1171         $map->{archive_tmpl_loop} = $tmpl_loop; 
    1172         if ( 
    1173             1 < MT::TemplateMap->count( 
    1174                 { archive_type => $at, blog_id => $obj->blog_id } 
    1175             ) 
    1176           ) 
    1177         { 
    1178             $map->{has_multiple_archives} = 1; 
    1179         } 
    1180  
    1181         push @maps, $map; 
    1182     } 
    1183     @maps = sort { MT::App::CMS::archive_type_sorter( $a, $b ) } @maps; 
    1184     return \@maps; 
    1185 } 
    1186  
    11871110sub can_view { 
    11881111    my ( $eh, $app, $id ) = @_; 
  • branches/release-30/lib/MT/CMS/Template.pm

    r1385 r1392  
    226226 
    227227            # Populate template maps for this template 
    228             require MT::CMS::Blog; 
    229             my $maps = MT::CMS::Blog::_populate_archive_loop( $app, $blog, $obj ); 
     228            my $maps = _populate_archive_loop( $app, $blog, $obj ); 
    230229            $param->{object_loop} = $param->{template_map_loop} = $maps 
    231230              if @$maps; 
     
    614613} 
    615614 
     615sub _generate_map_table { 
     616    my $app = shift; 
     617    my ( $blog_id, $template_id ) = @_; 
     618 
     619    require MT::Template; 
     620    require MT::Blog; 
     621    my $blog     = MT::Blog->load($blog_id); 
     622    my $template = MT::Template->load($template_id); 
     623    my $tmpl     = $app->load_tmpl('include/archive_maps.tmpl'); 
     624    my $maps     = _populate_archive_loop( $app, $blog, $template ); 
     625    $tmpl->param( { object_type => 'templatemap' } ); 
     626    $tmpl->param( { object_loop => $maps } ) if @$maps; 
     627    my $html = $tmpl->output(); 
     628 
     629    if ( $html =~ m/<__trans / ) { 
     630        $html = $app->translate_templatized($html); 
     631    } 
     632    $html; 
     633} 
     634 
     635sub _populate_archive_loop { 
     636    my $app = shift; 
     637    my ( $blog, $obj ) = @_; 
     638 
     639    my $index = $app->config('IndexBasename'); 
     640    my $ext = $blog->file_extension || ''; 
     641    $ext = '.' . $ext if $ext ne ''; 
     642 
     643    require MT::TemplateMap; 
     644    my @tmpl_maps = MT::TemplateMap->load( { template_id => $obj->id } ); 
     645    my @maps; 
     646    my %types; 
     647    foreach my $map_obj (@tmpl_maps) { 
     648        my $map = {}; 
     649        $map->{map_id}           = $map_obj->id; 
     650        $map->{map_is_preferred} = $map_obj->is_preferred; 
     651        my $at = $map->{archive_type} = $map_obj->archive_type; 
     652        $types{$at}++; 
     653        $map->{ 'archive_type_preferred_' . $blog->archive_type_preferred } = 1 
     654          if $blog->archive_type_preferred; 
     655        $map->{file_template} = $map_obj->file_template 
     656          if $map_obj->file_template; 
     657 
     658        my $archiver = $app->publisher->archiver($at); 
     659        next unless $archiver; 
     660        $map->{archive_label} = $archiver->archive_label; 
     661        my $tmpls     = $archiver->default_archive_templates; 
     662        my $tmpl_loop = []; 
     663        foreach (@$tmpls) { 
     664            my $name = $_->{label}; 
     665            $name =~ s/\.html$/$ext/; 
     666            $name =~ s/index$ext$/$index$ext/; 
     667            push @$tmpl_loop, 
     668              { 
     669                name    => $name, 
     670                value   => $_->{template}, 
     671                default => ( $_->{default} || 0 ) 
     672              }; 
     673        } 
     674 
     675        my $custom = 1; 
     676 
     677        foreach (@$tmpl_loop) { 
     678            if (   ( !$map->{file_template} && $_->{default} ) 
     679                || ( $map->{file_template} eq $_->{value} ) ) 
     680            { 
     681                $_->{selected}        = 1; 
     682                $custom               = 0; 
     683                $map->{file_template} = $_->{value} 
     684                  if !$map->{file_template}; 
     685            } 
     686        } 
     687        if ($custom) { 
     688            unshift @$tmpl_loop, 
     689              { 
     690                name     => $map->{file_template}, 
     691                value    => $map->{file_template}, 
     692                selected => 1, 
     693              }; 
     694        } 
     695 
     696        $map->{archive_tmpl_loop} = $tmpl_loop; 
     697        if ( 
     698            1 < MT::TemplateMap->count( 
     699                { archive_type => $at, blog_id => $obj->blog_id } 
     700            ) 
     701          ) 
     702        { 
     703            $map->{has_multiple_archives} = 1; 
     704        } 
     705 
     706        push @maps, $map; 
     707    } 
     708    @maps = sort { MT::App::CMS::archive_type_sorter( $a, $b ) } @maps; 
     709    return \@maps; 
     710} 
     711 
    616712sub delete_map { 
    617713    my $app = shift; 
     
    625721    MT::TemplateMap->remove( { id => $id } ); 
    626722    my $html = 
    627       $app->_generate_map_table( $q->param('blog_id'), 
     723      _generate_map_table( $app, $q->param('blog_id'), 
    628724        $q->param('template_id') ); 
    629725    $app->{no_print_body} = 1; 
     
    658754        $app->translate( "Saving map failed: [_1]", $map->errstr ) ); 
    659755    my $html = 
    660       $app->_generate_map_table( $blog_id, scalar $q->param('template_id') ); 
     756      _generate_map_table( $app, $blog_id, scalar $q->param('template_id') ); 
    661757    $app->rebuild( 
    662758        BlogID      => $blog_id, 
     
    682778    MT::TemplateMap->remove( { id => $id } ); 
    683779    my $html = 
    684       $app->_generate_map_table( $q->param('blog_id'), 
     780      _generate_map_table( $app, $q->param('blog_id'), 
    685781        $q->param('template_id') ); 
    686782    $app->{no_print_body} = 1; 
     
    715811        $app->translate( "Saving map failed: [_1]", $map->errstr ) ); 
    716812    my $html = 
    717       $app->_generate_map_table( $blog_id, scalar $q->param('template_id') ); 
     813      _generate_map_table( $app, $blog_id, scalar $q->param('template_id') ); 
    718814    $app->rebuild( 
    719815        BlogID      => $blog_id,