Show
Ignore:
Timestamp:
04/13/08 07:01:19 (20 months ago)
Author:
fumiakiy
Message:

Fixed the issue in which MTElse and MTElseIf did not work correctly when "name" or "tag" argument was omitted both in static and in dynamic. BugId:69678

Also fixed the bug case filed as BugId:79027 in PHP tag handlers.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-34/php/lib/MTViewer.php

    r1861 r1876  
    249249        } 
    250250        if ((count($args) > 0) && (!isset($args['name']) && !isset($args['var']) && !isset($args['tag']))) { 
    251             require_once("function.mtgetvar.php"); 
    252             $var = smarty_function_mtgetvar(array('name' => '__name__'), $ctx); 
    253             if (isset($var) && $var != '') 
    254                 $args['name'] = $var; 
     251            $vars =& $ctx->__stash['vars']; 
     252            if ( array_key_exists('__cond_tag__', $vars) ) { 
     253                $tag = $vars['__cond_tag__']; 
     254                unset($vars['__cond_tag__']); 
     255                if ( isset($tag) && $tag ) 
     256                    $args['tag'] = $tag; 
     257            } 
     258            else if ( array_key_exists('__cond_name__', $vars) ) { 
     259                $name = $vars['__cond_name__']; 
     260                unset($vars['__cond_name__']); 
     261                if ( isset($name) && $name ) 
     262                    $args['name'] = $name; 
     263            } 
     264            if ( array_key_exists('__cond_value__', $vars) ) { 
     265                $value = $vars['__cond_value__']; 
     266                unset($vars['__cond_value__']); 
     267                if ( isset($value) && $value ) 
     268                    $args['value'] = $value; 
     269            } 
     270            $ctx->__stash['vars'] =& $vars; 
    255271        } 
    256272        if (count($args) >= 1) { # else-if case