Show
Ignore:
Timestamp:
04/16/08 10:50:21 (20 months ago)
Author:
takayama
Message:

Fixed BugId:76389
* Loop tags does not add 'glue', if row in loop tag was empty

  • MTFor
  • MTLoop
  • MTTags
  • MTEntryTags
  • MTEntries
  • MTEntryCategories
  • MTCategories
  • MTEntryAdditionalCategories
  • MTParentCategories
  • MTAssetTags
  • MTPagerBlock
Files:
1 modified

Legend:

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

    r1911 r1926  
    13241324    my $vars = $ctx->{__stash}{vars} ||= {}; 
    13251325    my $glue = $args->{glue}; 
    1326     $glue = '' unless defined $glue; 
    13271326    my $var = $args->{var}; 
    13281327    for (my $i = $start; $i <= $end; $i += $incr) { 
     
    13361335        my $res = $builder->build($ctx, $tokens, $cond); 
    13371336        return $ctx->error($builder->errstr) unless defined $res; 
    1338         if ($res ne '') { 
    1339             $out .= $glue if $cnt > 1; 
    1340             $out .= $res; 
    1341             $cnt++; 
    1342         } 
     1337        $out .= $glue 
     1338            if defined $glue && $cnt > 1 && length($out) && length($res); 
     1339        $out .= $res; 
     1340        $cnt++; 
    13431341    } 
    13441342    return $out; 
     
    15901588    my $vars = $ctx->{__stash}{vars} ||= {}; 
    15911589    my $glue = $args->{glue}; 
    1592     $glue = '' unless defined $glue; 
    15931590    foreach my $item (@$var) { 
    15941591        local $vars->{__first__} = $i == 1; 
     
    16251622        return $ctx->error($builder->errstr) unless defined $res; 
    16261623        if ($res ne '') { 
    1627             $out .= $glue if $i > 1; 
     1624            $out .= $glue if defined $glue && $i > 1 && length($out) && length($res); 
    16281625            $out .= $res; 
    16291626            $i++; 
     
    19161913    my $tokens = $ctx->stash('tokens'); 
    19171914    my $needs_entries = (($ctx->stash('uncompiled') || '') =~ /<MT:?Entries/i) ? 1 : 0; 
    1918     my $glue = $args->{glue} || ''; 
     1915    my $glue = $args->{glue}; 
    19191916    my $res = ''; 
    19201917    local $ctx->{__stash}{all_tag_count} = undef; 
     
    19741971        defined(my $out = $builder->build($ctx, $tokens, $cond)) 
    19751972            or return $ctx->error( $builder->errstr ); 
    1976         $res .= $glue if $res ne ''; 
     1973        $res .= $glue if defined $glue && length($res) && length($out); 
    19771974        $res .= $out; 
    19781975    } 
     
    20972094    my $entry = $ctx->stash('entry'); 
    20982095    return '' unless $entry; 
    2099     my $glue = $args->{glue} || ''; 
     2096    my $glue = $args->{glue}; 
    21002097 
    21012098    local $ctx->{__stash}{tag_max_count} = undef; 
     
    21132110        defined(my $out = $builder->build($ctx, $tokens, $cond)) 
    21142111            or return $ctx->error( $builder->errstr ); 
    2115         $res .= $glue if $res ne ''; 
     2112        $res .= $glue if defined $glue && length($res) && length($out); 
    21162113        $res .= $out; 
    21172114    } 
     
    42294226        return $ctx->error( $builder->errstr ) unless defined $out; 
    42304227        $last_day = $this_day; 
    4231         $res .= $glue if defined $glue && $i; 
     4228        $res .= $glue if defined $glue && $i && length($res) && length($out); 
    42324229        $res .= $out; 
    42334230        $i++; 
     
    47394736    my $builder = $ctx->stash('builder'); 
    47404737    my $tokens = $ctx->stash('tokens'); 
    4741     my @res; 
     4738    my $res; 
     4739    my $glue = $args->{glue}; 
    47424740    for my $cat (@$cats) { 
    47434741        local $ctx->{__stash}->{category} = $cat; 
    47444742        defined(my $out = $builder->build($ctx, $tokens, $cond)) 
    47454743            or return $ctx->error( $builder->errstr ); 
    4746         push @res, $out if $out ne ''; 
    4747     } 
    4748     my $sep = $args->{glue} || ''; 
    4749     join $sep, @res; 
     4744        $res .= $glue if defined $glue && length($res) && length($out); 
     4745        $res .= $out; 
     4746    } 
     4747    $res; 
    47504748} 
    47514749 
     
    63146312    my $builder = $ctx->stash('builder'); 
    63156313    my $tokens = $ctx->stash('tokens'); 
    6316     my $glue = exists $args->{glue} ? $args->{glue} : ''; 
     6314    my $glue = $args->{glue}; 
    63176315    ## In order for this handler to double as the handler for 
    63186316    ## <MTArchiveList archive_type="Category">, it needs to support 
     
    63566354              ArchiveListFooter => $last })) 
    63576355            or return $ctx->error( $builder->errstr ); 
    6358         $res .= $glue if $res ne ''; 
     6356        $res .= $glue if defined $glue && length($res) && length($out); 
    63596357        $res .= $out; 
    63606358        $cat = $next_cat; 
     
    66376635    my $builder = $ctx->stash('builder'); 
    66386636    my $tokens = $ctx->stash('tokens'); 
    6639     my @res; 
     6637    my $res; 
     6638    my $glue = $args->{glue}; 
    66406639    for my $cat (@$cats) { 
    66416640        next if $e->category && ($cat->label eq $e->category->label); 
     
    66436642        defined(my $out = $builder->build($ctx, $tokens, $cond)) 
    66446643            or return $ctx->error( $builder->errstr ); 
    6645         push @res, $out; 
    6646     } 
    6647     my $sep = $args->{glue} || ''; 
    6648     join $sep, @res;  
     6644        $res .= $glue if defined $glue && length($res) && length($out); 
     6645        $res .= $out if length($out); 
     6646    } 
     6647    $res; 
    66496648} 
    66506649 
     
    71897188    # Get the arguments 
    71907189    my $exclude_current = $args->{'exclude_current'}; 
    7191     my $glue = $args->{'glue'} || ''; 
     7190    my $glue = $args->{'glue'}; 
    71927191 
    71937192    # Get the current category 
     
    71967195    return '' if ($cat eq ''); 
    71977196 
    7198     my @res; 
     7197    my $res; 
    71997198 
    72007199    # Put together the list of parent categories 
     
    72117210            $out = 'cat-' . $c->id; 
    72127211        } 
    7213         push @res, $out; 
    7214     } 
    7215  
    7216     # Slap them all together with some glue 
    7217     return join $glue, @res; 
     7212        $res .= $glue if defined $glue && length($res) && length($out); 
     7213        $res .= $out if length($out); 
     7214    } 
     7215    $res; 
    72187216} 
    72197217 
     
    79227920    my $asset = $ctx->stash('asset'); 
    79237921    return '' unless $asset; 
    7924     my $glue = $args->{glue} || ''; 
     7922    my $glue = $args->{glue}; 
    79257923 
    79267924    local $ctx->{__stash}{tag_max_count} = undef; 
     
    79437941        defined(my $out = $builder->build($ctx, $tokens, $cond)) 
    79447942            or return $ctx->error( $builder->errstr ); 
    7945         $res .= $glue if $res ne ''; 
     7943        $res .= $glue if defined $glue && length($res) && length($out); 
    79467944        $res .= $out; 
    79477945    } 
     
    88508848 
    88518849    my $glue = $args->{glue}; 
    8852     $glue = q() unless defined $glue; 
    88538850 
    88548851    my $output = q(); 
     
    88688865            } 
    88698866            )) or return $ctx->error( $build->errstr ); 
    8870         $output .= $glue if $i > 1; 
     8867        $output .= $glue if defined $glue && $i > 1 && length($output) && length($out); 
    88718868        $output .= $out; 
    88728869    }