修正template和taglib类的session标签解析

This commit is contained in:
thinkphp
2015-12-23 10:37:33 +08:00
2 changed files with 13 additions and 10 deletions

View File

@@ -745,7 +745,7 @@ class Template
$parseStr = "date('Y-m-d g:i a',time())"; $parseStr = "date('Y-m-d g:i a',time())";
break; break;
case 'VERSION': case 'VERSION':
$parseStr = 'THINK_TEMPLATE_VERSION'; $parseStr = 'THINK_VERSION';
break; break;
case 'LDELIM': case 'LDELIM':
$parseStr = $this->config['tpl_begin']; $parseStr = $this->config['tpl_begin'];

View File

@@ -97,7 +97,10 @@ class TagLib
} }
$xml = (array) ($xml->tag->attributes()); $xml = (array) ($xml->tag->attributes());
$array = array_change_key_case($xml['@attributes']); $array = array_change_key_case($xml['@attributes']);
if (!is_array($array)) return []; if (!is_array($array)) {
return [];
}
$tag = strtolower($tag); $tag = strtolower($tag);
if (isset($this->tags[$tag]['attr'])) { if (isset($this->tags[$tag]['attr'])) {
$attrs = explode(',', $this->tags[$tag]['attr']); $attrs = explode(',', $this->tags[$tag]['attr']);
@@ -193,14 +196,14 @@ class TagLib
if (isset($vars[3])) { if (isset($vars[3])) {
$parseStr = '$_COOKIE[\'' . $vars[2] . '\'][\'' . $vars[3] . '\']'; $parseStr = '$_COOKIE[\'' . $vars[2] . '\'][\'' . $vars[3] . '\']';
} else { } else {
$parseStr = '$_COOKIE[\'' . $vars[2] . '\']'; $parseStr = '\\think\\cookie::get(\'' . $vars[2] . '\')';
} }
break; break;
case 'SESSION': case 'SESSION':
if (isset($vars[3])) { if (isset($vars[3])) {
$parseStr = '$_SESSION[\'' . $vars[2] . '\'][\'' . $vars[3] . '\']'; $parseStr = '$_SESSION[\'' . $vars[2] . '\'][\'' . $vars[3] . '\']';
} else { } else {
$parseStr = '$_SESSION[\'' . $vars[2] . '\']'; $parseStr = '\\think\\session::get(\'' . $vars[2] . '\')';
} }
break; break;
case 'ENV':$parseStr = '$_ENV[\'' . $vars[2] . '\']'; case 'ENV':$parseStr = '$_ENV[\'' . $vars[2] . '\']';
@@ -210,13 +213,13 @@ class TagLib
case 'CONST':$parseStr = strtoupper($vars[2]); case 'CONST':$parseStr = strtoupper($vars[2]);
break; break;
case 'LANG': case 'LANG':
$parseStr = '\think\Lang::get("' . $vars[2] . '")'; $parseStr = '\\think\\Lang::get("' . $vars[2] . '")';
break; break;
case 'CONFIG': case 'CONFIG':
if (isset($vars[3])) { if (isset($vars[3])) {
$vars[2] .= '.' . $vars[3]; $vars[2] .= '.' . $vars[3];
} }
$parseStr = 'C("' . $vars[2] . '")'; $parseStr = '\\think\\config::get("' . $vars[2] . '")';
break; break;
} }
} else if (count($vars) == 2) { } else if (count($vars) == 2) {