- bugfix on nocache code in {block} tags if child template was included by {include}

This commit is contained in:
Uwe.Tews
2010-03-01 16:46:30 +00:00
parent 7300133dc6
commit 5d9f7ab65b
2 changed files with 32 additions and 26 deletions

View File

@@ -1,3 +1,6 @@
01/03/2010
- bugfix on nocache code in {block} tags if child template was included by {include}
27/02/2010 27/02/2010
- allow block tags inside double quoted string - allow block tags inside double quoted string

View File

@@ -1,29 +1,29 @@
<?php <?php
/** /**
* Smarty Internal Plugin Compile Block * Smarty Internal Plugin Compile Block
* *
* Compiles the {block}{/block} tags * Compiles the {block}{/block} tags
* *
* @package Smarty * @package Smarty
* @subpackage Compiler * @subpackage Compiler
* @author Uwe Tews * @author Uwe Tews
*/ */
/** /**
* Smarty Internal Plugin Compile Block Class * Smarty Internal Plugin Compile Block Class
*/ */
class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase { class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
/** /**
* Compiles code for the {block} tag * Compiles code for the {block} tag
* *
* @param array $args array with attributes from parser * @param array $args array with attributes from parser
* @param object $compiler compiler object * @param object $compiler compiler object
* @return boolean true * @return boolean true
*/ */
public function compile($args, $compiler) public function compile($args, $compiler)
{ {
$this->compiler = $compiler; $this->compiler = $compiler;
$this->required_attributes = array('name'); $this->required_attributes = array('name');
$this->optional_attributes = array('assign','nocache'); $this->optional_attributes = array('assign', 'nocache');
// check and get attributes // check and get attributes
$_attr = $this->_get_attributes($args); $_attr = $this->_get_attributes($args);
$save = array($_attr, $compiler->template->extracted_compiled_code, $compiler->template->extract_code, $this->compiler->nocache); $save = array($_attr, $compiler->template->extracted_compiled_code, $compiler->template->extract_code, $this->compiler->nocache);
@@ -42,16 +42,16 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
} }
/** /**
* Smarty Internal Plugin Compile BlockClose Class * Smarty Internal Plugin Compile BlockClose Class
*/ */
class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase { class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase {
/** /**
* Compiles code for the {/block} tag * Compiles code for the {/block} tag
* *
* @param array $args array with attributes from parser * @param array $args array with attributes from parser
* @param object $compiler compiler object * @param object $compiler compiler object
* @return string compiled code * @return string compiled code
*/ */
public function compile($args, $compiler) public function compile($args, $compiler)
{ {
$this->compiler = $compiler; $this->compiler = $compiler;
@@ -90,6 +90,9 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase {
} }
$compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $_tpl->properties['file_dependency']); $compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $_tpl->properties['file_dependency']);
$compiler->template->properties['function'] = array_merge($compiler->template->properties['function'], $_tpl->properties['function']); $compiler->template->properties['function'] = array_merge($compiler->template->properties['function'], $_tpl->properties['function']);
if ($_tpl->has_nocache_code) {
$compiler->template->has_nocache_code = true;
}
foreach($_tpl->required_plugins as $code => $tmp1) { foreach($_tpl->required_plugins as $code => $tmp1) {
foreach($tmp1 as $name => $tmp) { foreach($tmp1 as $name => $tmp) {
foreach($tmp as $type => $data) { foreach($tmp as $type => $data) {
@@ -110,4 +113,4 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase {
} }
} }
?> ?>