mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 10:54:27 +02:00
- bugfix {$smarty.template} and {$smarty.current_dir} did not compile correctly within {block} tags
- bugfix corrected error message on missing template files in extends resource - bugfix untility compileAllTemplates() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
17/09/2010
|
||||
- bugfix {$smarty.template} and {$smarty.current_dir} did not compile correctly within {block} tags
|
||||
- bugfix corrected error message on missing template files in extends resource
|
||||
- bugfix untility compileAllTemplates() did not create sha1 code for compiled template file names if template_dir was defined with no trailing DS
|
||||
|
||||
16/09/2010
|
||||
- bugfix when a doublequoted modifier parameter did contain Smarty tags and ':'
|
||||
|
||||
|
@@ -225,6 +225,8 @@ class Smarty extends Smarty_Internal_Data {
|
||||
public $smarty = null;
|
||||
// block tag hierarchy
|
||||
public $_tag_stack = array();
|
||||
// flag if {block} tag is compiled for template inheritance
|
||||
public $inheritance = false;
|
||||
// plugins
|
||||
public $_plugins = array();
|
||||
// generate deprecated function call notices?
|
||||
|
@@ -34,6 +34,8 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
|
||||
$compiler->nocache = true;
|
||||
}
|
||||
}
|
||||
// set flag for {block} tag
|
||||
$compiler->smarty->inheritance = true;
|
||||
// must merge includes
|
||||
$this->compiler->smarty->merge_compiled_includes = true;
|
||||
|
||||
@@ -109,6 +111,8 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase {
|
||||
$compiler->smarty->merge_compiled_includes = $saved_data[2];
|
||||
// $_output content has already nocache code processed
|
||||
$compiler->suppressNocacheProcessing = true;
|
||||
// reset flag
|
||||
$compiler->smarty->inheritance = false;
|
||||
return $_output;
|
||||
}
|
||||
}
|
||||
|
@@ -56,11 +56,21 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
|
||||
break;
|
||||
|
||||
case 'template':
|
||||
$_template_name = $compiler->template->template_resource;
|
||||
if ($compiler->smarty->inheritance) {
|
||||
$ptr = $compiler->template->parent;
|
||||
} else {
|
||||
$ptr = $compiler->template;
|
||||
}
|
||||
$_template_name = $ptr->template_resource;
|
||||
return "'$_template_name'";
|
||||
|
||||
case 'current_dir':
|
||||
$_template_dir_name = dirname($compiler->template->getTemplateFilepath());
|
||||
if ($compiler->smarty->inheritance) {
|
||||
$ptr = $compiler->template->parent;
|
||||
} else {
|
||||
$ptr = $compiler->template;
|
||||
}
|
||||
$_template_dir_name = dirname($ptr->getTemplateFilepath());
|
||||
return "'$_template_dir_name'";
|
||||
|
||||
case 'version':
|
||||
|
@@ -55,6 +55,9 @@ class Smarty_Internal_Resource_Extends {
|
||||
$_files = explode('|', $_template->resource_name);
|
||||
foreach ($_files as $_file) {
|
||||
$_filepath = $_template->buildTemplateFilepath ($_file);
|
||||
if ($_filepath === false) {
|
||||
throw new SmartyException("Unable to load template 'file : {$_file}'");
|
||||
}
|
||||
if ($_filepath !== false) {
|
||||
if ($_template->security) {
|
||||
$_template->smarty->security_handler->isTrustedResourceDir($_filepath);
|
||||
@@ -90,9 +93,6 @@ class Smarty_Internal_Resource_Extends {
|
||||
$_files = array_reverse($this->allFilepaths);
|
||||
foreach ($_files as $_filepath) {
|
||||
// read template file
|
||||
if ($_filepath === false) {
|
||||
throw new SmartyException("Unable to load template 'file : {$_file}'");
|
||||
}
|
||||
if ($_filepath != $_files[0]) {
|
||||
$_template->properties['file_dependency'][sha1($_filepath)] = array($_filepath, filemtime($_filepath));
|
||||
}
|
||||
|
@@ -67,10 +67,10 @@ class Smarty_Internal_Utility {
|
||||
$_file = $_fileinfo->getFilename();
|
||||
if (!substr_compare($_file, $extention, - strlen($extention)) == 0) continue;
|
||||
if ($_fileinfo->getPath() == substr($_dir, 0, -1)) {
|
||||
$_template_file = $_file;
|
||||
$_template_file = $_file;
|
||||
} else {
|
||||
$_template_file = substr($_fileinfo->getPath(), strlen($_dir)) . DS . $_file;
|
||||
}
|
||||
$_template_file = substr(substr($_fileinfo->getPath(), strlen($_dir)) . DS . $_file,1);
|
||||
}
|
||||
echo '<br>', $_dir, '---', $_template_file;
|
||||
flush();
|
||||
$_start_time = microtime(true);
|
||||
|
Reference in New Issue
Block a user