mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-07 11:54:26 +02:00
- fixed preg_qoute on delimiters
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
11/10/2009
|
||||||
|
- fixed preg_qoute on delimiters
|
||||||
|
|
||||||
11/09/2009
|
11/09/2009
|
||||||
- lexer/parser bugfix
|
- lexer/parser bugfix
|
||||||
- new SMARTY_SPL_AUTOLOAD constant to control the autoloader option
|
- new SMARTY_SPL_AUTOLOAD constant to control the autoloader option
|
||||||
|
@@ -34,45 +34,49 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase {
|
|||||||
// check if compiled code can be merged (contains no variable part)
|
// check if compiled code can be merged (contains no variable part)
|
||||||
if (!$compiler->has_variable_string && (substr_count($include_file, '"') == 2 or substr_count($include_file, "'") == 2) and substr_count($include_file, '(') == 0) {
|
if (!$compiler->has_variable_string && (substr_count($include_file, '"') == 2 or substr_count($include_file, "'") == 2) and substr_count($include_file, '(') == 0) {
|
||||||
eval("\$tmp = $include_file;");
|
eval("\$tmp = $include_file;");
|
||||||
if ($this->compiler->template->template_resource != $tmp) {
|
if ($this->compiler->template->template_resource != $tmp) {
|
||||||
$tpl = $compiler->smarty->createTemplate ($tmp, $compiler->template->cache_id, $compiler->template->compile_id, $compiler->template);
|
$tpl = $compiler->smarty->createTemplate ($tmp, $compiler->template->cache_id, $compiler->template->compile_id, $compiler->template);
|
||||||
if ($tpl->usesCompiler() && $tpl->isExisting()) {
|
if ($tpl->usesCompiler() && $tpl->isExisting()) {
|
||||||
do {
|
do {
|
||||||
$must_compile = false;
|
$must_compile = false;
|
||||||
$prop = array();
|
$prop = array();
|
||||||
$compiled_tpl = $tpl->getCompiledTemplate();
|
$compiled_tpl = $tpl->getCompiledTemplate();
|
||||||
preg_match('/(\<\?php \$_smarty_tpl-\>decodeProperties\(\')(.*)(\'.*\?\>)/', $compiled_tpl, $matches);
|
preg_match('/(\<\?php \$_smarty_tpl-\>decodeProperties\(\')(.*)(\'.*\?\>)/', $compiled_tpl, $matches);
|
||||||
$compiled_tpl = preg_replace(array('/(\<\?php \$_smarty_tpl-\>decodeProperties\(\')(.*)(\'.*\?\>.*\n)/', '/(\<\?php if\(\!defined\(\'SMARTY_DIR\'\)\))(.*)(\?\>.*\n)/'), '', $compiled_tpl);
|
$compiled_tpl = preg_replace(array('/(\<\?php \$_smarty_tpl-\>decodeProperties\(\')(.*)(\'.*\?\>.*\n)/', '/(\<\?php if\(\!defined\(\'SMARTY_DIR\'\)\))(.*)(\?\>.*\n)/'), '', $compiled_tpl);
|
||||||
// var_dump($matches, $compiled_tpl);
|
// var_dump($matches, $compiled_tpl);
|
||||||
if (isset($matches[2])) {
|
if (isset($matches[2])) {
|
||||||
$prop = unserialize($matches[2]);
|
$prop = unserialize($matches[2]);
|
||||||
foreach ($prop['file_dependency'] as $_file_to_check) {
|
foreach ($prop['file_dependency'] as $_file_to_check) {
|
||||||
If (is_file($_file_to_check[0])) {
|
If (is_file($_file_to_check[0])) {
|
||||||
$mtime = filemtime($_file_to_check[0]);
|
$mtime = filemtime($_file_to_check[0]);
|
||||||
} else {
|
} else {
|
||||||
$tpl->parseResourceName($_file_to_check[0], $resource_type, $resource_name, $resource_handler);
|
$tpl->parseResourceName($_file_to_check[0], $resource_type, $resource_name, $resource_handler);
|
||||||
$mtime = $resource_handler->getTemplateTimestampTypeName($resource_type, $resource_name);
|
$mtime = $resource_handler->getTemplateTimestampTypeName($resource_type, $resource_name);
|
||||||
|
}
|
||||||
|
If ($mtime != $_file_to_check[1]) {
|
||||||
|
$must_compile = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
If ($mtime != $_file_to_check[1]) {
|
if ($must_compile) {
|
||||||
$must_compile = true;
|
// recompile
|
||||||
break;
|
$tpl->compileTemplateSource();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($must_compile) {
|
} while ($must_compile);
|
||||||
// recompile
|
if (isset($prop['file_dependency'])) {
|
||||||
$tpl->compileTemplateSource();
|
$compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $prop['file_dependency']);
|
||||||
|
}
|
||||||
|
if (isset($prop['function'])) {
|
||||||
|
if (isset($compiler->template->properties['function'])) {
|
||||||
|
$compiler->template->properties['function'] = array_merge((array)$compiler->template->properties['function'], $prop['function']);
|
||||||
|
} else {
|
||||||
|
$compiler->template->properties['function'] = $prop['function'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while ($must_compile);
|
$has_compiled_template = true;
|
||||||
if (isset($prop['file_dependency'])) {
|
|
||||||
$compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $prop['file_dependency']);
|
|
||||||
}
|
}
|
||||||
if (isset($prop['function'])) {
|
}
|
||||||
$compiler->template->properties['function'] = array_merge((array)$compiler->template->properties['function'], $prop['function']);
|
|
||||||
}
|
|
||||||
$has_compiled_template = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -79,8 +79,8 @@ class Smarty_Internal_Templatelexer
|
|||||||
$this->counter = 0;
|
$this->counter = 0;
|
||||||
$this->line = 1;
|
$this->line = 1;
|
||||||
$this->smarty = $smarty;
|
$this->smarty = $smarty;
|
||||||
$this->ldel = preg_quote($this->smarty->left_delimiter);
|
$this->ldel = preg_quote($this->smarty->left_delimiter,'/');
|
||||||
$this->rdel = preg_quote($this->smarty->right_delimiter);
|
$this->rdel = preg_quote($this->smarty->right_delimiter,'/');
|
||||||
$this->smarty_token_names['LDEL'] = $this->smarty->left_delimiter;
|
$this->smarty_token_names['LDEL'] = $this->smarty->left_delimiter;
|
||||||
$this->smarty_token_names['RDEL'] = $this->smarty->right_delimiter;
|
$this->smarty_token_names['RDEL'] = $this->smarty->right_delimiter;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user