mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-07 03:44:26 +02:00
- {block} tags can be nested now
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
03/28/2009
|
||||
- {block} tags can be nested now
|
||||
- md5 hash function replace with crc32 for speed optimization
|
||||
- file order for exted resource inverted
|
||||
- clear_compiled_tpl and clear_cache_all will not touch .svn folder any longer
|
||||
|
@@ -26,7 +26,8 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
|
||||
$this->optional_attributes = array('assign');
|
||||
// check and get attributes
|
||||
$_attr = $this->_get_attributes($args);
|
||||
$this->_open_tag('block', $_attr);
|
||||
$save = array($_attr, $compiler->template->extracted_compiled_code, $compiler->template->extract_code);
|
||||
$this->_open_tag('block', $save);
|
||||
$compiler->template->extract_code = true;
|
||||
$compiler->template->extracted_compiled_code = '';
|
||||
$compiler->template->has_code = false;
|
||||
|
@@ -28,18 +28,19 @@ class Smarty_Internal_Compile_BlockClose extends Smarty_Internal_CompileBase {
|
||||
// check and get attributes
|
||||
$this->optional_attributes = array('name');
|
||||
$_attr = $this->_get_attributes($args);
|
||||
$saved_attr = $this->_close_tag(array('block'));
|
||||
$saved_data = $this->_close_tag(array('block'));
|
||||
// if name does match to opening tag
|
||||
if (isset($_attr['name']) && $saved_attr['name'] != $_attr['name']) {
|
||||
$this->compiler->trigger_template_error('mismatching name attributes "' . $saved_attr['name'] . '" and "' . $_attr['name'] . '"');
|
||||
if (isset($_attr['name']) && $saved_data[0]['name'] != $_attr['name']) {
|
||||
$this->compiler->trigger_template_error('mismatching name attributes "' . $saved_data[0]['name'] . '" and "' . $_attr['name'] . '"');
|
||||
}
|
||||
$_name = trim($saved_attr['name'], "'");
|
||||
$_name = trim($saved_data[0]['name'], "'");
|
||||
if (!empty($compiler->template->block_data[$_name])) {
|
||||
$_output = $compiler->template->block_data[$_name]['compiled'];
|
||||
} else {
|
||||
$_output = $compiler->template->extracted_compiled_code;
|
||||
}
|
||||
$compiler->template->extracted_compiled_code = '';
|
||||
$compiler->template->extracted_compiled_code = $saved_data[1];
|
||||
$compiler->template->extract_code = $saved_data[2];
|
||||
return $_output;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user