@@ -1109,7 +1109,7 @@ function _arrayBuild ($arr) {
11091109 * @access private
11101110 * @return string used for eval'ing
11111111 */
1112- function _parseIf ($ varname , $ value =null , $ op =null , $ namespace =null ) {
1112+ function _parseIf ($ varname , $ value =null , $ op =null , $ namespace =null , $ format = null ) {
11131113 if (isset ($ namespace )) $ namespace = substr ($ namespace , 0 , -1 );
11141114 $ comp_str = '' ; // used for extended if statements
11151115
@@ -1151,10 +1151,19 @@ function _parseIf ($varname, $value=null, $op=null, $namespace=null) {
11511151 }
11521152 }
11531153 if ($ this ->OPTIONS ['GLOBAL_VARS ' ] && empty ($ namespace )) {
1154- return '(( ' .$ retstr .'[ \'' .$ varname .'\'] !== null) ? ' .$ retstr .'[ \'' .$ varname .'\'] : $this->_vars[ \'' .$ varname .'\']) ' .$ comp_str ;
1154+ $ retstr = '(( ' .$ retstr .'[ \'' .$ varname .'\'] !== null) ? ' .$ retstr .'[ \'' .$ varname .'\'] : $this->_vars[ \'' .$ varname .'\']) ' ;
1155+ if (isset ($ format ) && isset ($ value ) && $ format == 'version ' ) {
1156+ return 'version_compare( ' . $ retstr . ', \'' . $ value . '\', ' . (!empty ($ op ) ? $ op : '== ' ) . ') ' ;
1157+ } else {
1158+ return $ retstr .$ comp_str ;
1159+ }
11551160 }
11561161 else {
1157- return $ retstr ."[' " .$ varname ."'] " .$ comp_str ;
1162+ if (isset ($ format ) && isset ($ value ) && $ format == 'version ' ) {
1163+ return 'version_compare( ' . $ retstr ."[' " .$ varname ."'] " . ', \'' . $ value . '\', ' . (!empty ($ op ) ? $ op : '== ' ) . ') ' ;
1164+ } else {
1165+ return $ retstr ."[' " .$ varname ."'] " .$ comp_str ;
1166+ }
11581167 }
11591168 }
11601169
@@ -1330,15 +1339,15 @@ function _parseTag ($args) {
13301339 break ;
13311340
13321341 case 'if ' :
1333- return '<?php if ( ' . $ this ->_parseIf ($ var , @$ value , @$ op , @$ namespace ) .') { ?> ' .$ newline ;
1342+ return '<?php if ( ' . $ this ->_parseIf ($ var , @$ value , @$ op , @$ namespace, @ $ format ) .') { ?> ' .$ newline ;
13341343 break ;
13351344
13361345 case 'unless ' :
1337- return '<?php if (! ' . $ this ->_parseIf ($ var , @$ value , @$ op , @$ namespace ) .') { ?> ' .$ newline ;
1346+ return '<?php if (! ' . $ this ->_parseIf ($ var , @$ value , @$ op , @$ namespace, @ $ format ) .') { ?> ' .$ newline ;
13381347 break ;
13391348
13401349 case 'elseif ' :
1341- return '<?php } elseif ( ' . $ this ->_parseIf ($ var , @$ value , @$ op , @$ namespace ) .') { ?> ' .$ newline ;
1350+ return '<?php } elseif ( ' . $ this ->_parseIf ($ var , @$ value , @$ op , @$ namespace, @ $ format ) .') { ?> ' .$ newline ;
13421351 break ;
13431352
13441353 case 'loop ' :
0 commit comments