| | |
| | | $regex.= '[^\"\']*|[a-z0-9_\.]*)'; |
| | | $regex.= '[\"\']?'; |
| | | $regex.= ')?\s*'; |
| | | $regex.= '(?:'; |
| | | $regex.= '(?:'; |
| | | $regex.= '(name|format|escape|op|value)'; |
| | | $regex.= '\s*=\s*'; |
| | | $regex.= ')'; |
| | | $regex.= '(?:[\"\'])?'; |
| | | $regex.= '((?<=[\"\'])'; |
| | | $regex.= '[^\"\']*|[a-z0-9_\.]*)'; |
| | | $regex.= '[\"\']?'; |
| | | $regex.= ')?\s*'; |
| | | $regex.= '(?:>|\/>|}|-->){1}'; |
| | | $regex.= '/i'; |
| | | //$regex.= '([\r\n|\n|\r])?/ie'; |
| | |
| | | * @access private |
| | | * @return string used for eval'ing |
| | | */ |
| | | function _parseIf ($varname, $value=null, $op=null, $namespace=null) { |
| | | function _parseIf ($varname, $value=null, $op=null, $namespace=null, $format=null) { |
| | | if (isset($namespace)) $namespace = substr($namespace, 0, -1); |
| | | $comp_str = ''; // used for extended if statements |
| | | |
| | |
| | | } |
| | | } |
| | | if ($this->OPTIONS['GLOBAL_VARS'] && empty($namespace)) { |
| | | return '(('.$retstr.'[\''.$varname.'\'] !== null) ? '.$retstr.'[\''.$varname.'\'] : $this->_vars[\''.$varname.'\'])'.$comp_str; |
| | | $retstr = '(('.$retstr.'[\''.$varname.'\'] !== null) ? '.$retstr.'[\''.$varname.'\'] : $this->_vars[\''.$varname.'\'])'; |
| | | if(isset($format) && isset($value) && $format == 'version') { |
| | | return 'version_compare(' . $retstr . ', \'' . $value . '\', ' . (!empty($op) ? $op : '==') . ')'; |
| | | } else { |
| | | return $retstr.$comp_str; |
| | | } |
| | | } |
| | | else { |
| | | return $retstr."['".$varname."']".$comp_str; |
| | | if(isset($format) && isset($value) && $format == 'version') { |
| | | return 'version_compare(' . $retstr."['".$varname."']" . ', \'' . $value . '\', ' . (!empty($op) ? $op : '==') . ')'; |
| | | } else { |
| | | return $retstr."['".$varname."']".$comp_str; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | $wholetag = $args[0]; |
| | | $openclose = $args[1]; |
| | | $tag = strtolower($args[2]); |
| | | $newline = $args[9]; |
| | | $newline = $args[11]; |
| | | //echo "1#$newline#2"; |
| | | |
| | | if ($tag == 'else') return '<?php } else { ?>'.$newline; |
| | |
| | | } |
| | | |
| | | // arrange attributes |
| | | for ($i=3; $i < 8; $i=($i+2)) { |
| | | for ($i=3; $i < 10; $i=($i+2)) { |
| | | if (empty($args[$i]) && empty($args[($i+1)])) break; |
| | | $key = (empty($args[$i])) ? 'name' : strtolower($args[$i]); |
| | | if ($key == 'name' && preg_match('/^(php)?include$/', $tag)) $key = 'file'; |
| | |
| | | break; |
| | | |
| | | case 'if': |
| | | return '<?php if ('. $this->_parseIf($var, @$value, @$op, @$namespace) .') { ?>'.$newline; |
| | | return '<?php if ('. $this->_parseIf($var, @$value, @$op, @$namespace, @$format) .') { ?>'.$newline; |
| | | break; |
| | | |
| | | case 'unless': |
| | | return '<?php if (!'. $this->_parseIf($var, @$value, @$op, @$namespace) .') { ?>'.$newline; |
| | | return '<?php if (!'. $this->_parseIf($var, @$value, @$op, @$namespace, @$format) .') { ?>'.$newline; |
| | | break; |
| | | |
| | | case 'elseif': |
| | | return '<?php } elseif ('. $this->_parseIf($var, @$value, @$op, @$namespace) .') { ?>'.$newline; |
| | | return '<?php } elseif ('. $this->_parseIf($var, @$value, @$op, @$namespace, @$format) .') { ?>'.$newline; |
| | | break; |
| | | |
| | | case 'loop': |