Changeset 1862
- Timestamp:
- 04/11/08 15:09:30 (5 months ago)
- Files:
-
- branches/release-34/lib/MT/Builder.pm (modified) (1 diff)
- branches/release-34/lib/MT/Template/ContextHandlers.pm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/release-34/lib/MT/Builder.pm
r1859 r1862 401 401 local $vars->{__value__} = delete $vars->{__cond_value__}; 402 402 local $vars->{__name__} = delete $vars->{__cond_name__}; 403 delete $vars->{__cond_tag__}; 403 404 $out = $out ? $ctx->slurp(\%args, $cond) : $ctx->else(\%args, $cond); 404 405 return $build->error(MT->translate("Error in <mt[_1]> tag: [_2]", $t->[0], $ctx->errstr)) branches/release-34/lib/MT/Template/ContextHandlers.pm
r1859 r1862 1349 1349 local $args->{'@'}; 1350 1350 delete $args->{'@'}; 1351 if ((keys %$args) == 1) { 1352 my $name = $args->{name} || $args->{var} || $args->{tag} || undef; 1353 $name = ($ctx->var('__name__') || undef) unless $name; 1354 $args->{name} = $name if $name; 1351 if ((keys %$args) >= 1) { 1352 unless ($args->{name} || $args->{var} || $args->{tag}) { 1353 if ( my $t = $ctx->var('__cond_tag__') ) { 1354 $args->{tag} = $t; 1355 } 1356 elsif ( my $n = $ctx->var('__cond_name__') ) { 1357 $args->{name} = $n; 1358 } 1359 } 1355 1360 } 1356 1361 if (%$args) { … … 1363 1368 sub _hdlr_elseif { 1364 1369 my ($ctx, $args, $cond) = @_; 1365 $args->{name} = $ctx->var('__name__') 1366 unless ($args->{name} || $args->{var} || $args->{tag} || undef); 1370 unless ($args->{name} || $args->{var} || $args->{tag}) { 1371 if ( my $t = $ctx->var('__cond_tag__') ) { 1372 $args->{tag} = $t; 1373 } 1374 elsif ( my $n = $ctx->var('__cond_name__') ) { 1375 $args->{name} = $n; 1376 } 1377 } 1367 1378 return _hdlr_else($ctx, $args, $cond); 1368 1379 } … … 1412 1423 $value = $ph->($ctx, $args, $value); 1413 1424 } 1425 $ctx->{__stash}{vars}{__cond_tag__} = $args->{tag}; 1414 1426 } 1415 1427 else { … … 1418 1430 } 1419 1431 1420 local$ctx->{__stash}{vars}{__cond_value__} = $value;1421 local$ctx->{__stash}{vars}{__cond_name__} = $var;1432 $ctx->{__stash}{vars}{__cond_value__} = $value; 1433 $ctx->{__stash}{vars}{__cond_name__} = $var; 1422 1434 1423 1435 if ( my $op = $args->{op} ) {
