Fix passing variables to included files.

This commit is contained in:
andrey
2001-04-28 16:52:27 +00:00
parent 2226ce8751
commit 4f90eee5e2
4 changed files with 20 additions and 14 deletions

View File

@@ -696,10 +696,10 @@ class Smarty
Function: _smarty_include()
Purpose: called for included templates
\*======================================================================*/
function _smarty_include($_smarty_include_tpl_file ,$_smarty_def_vars,
$_smarty_include_vars, &$_smarty_config_parent)
function _smarty_include($_smarty_include_tpl_file, $_smarty_include_vars,
&$_smarty_config_parent)
{
extract($_smarty_def_vars);
$this->_tpl_vars = array_merge($this->_tpl_vars, $_smarty_include_vars);
extract($_smarty_include_vars);
$this->_process_template($_smarty_include_tpl_file, $compile_path);

View File

@@ -363,7 +363,9 @@ class Smarty_Compiler extends Smarty {
foreach ($attrs as $arg_name => $arg_value) {
if ($arg_name == 'file') {
$_smarty_include_tpl_file = $arg_value;
$_smarty_include_tpl_file = $this->_dequote($arg_value);
if ($_smarty_include_tpl_file{0} != '$')
$_smarty_include_tpl_file = '"' . $_smarty_include_tpl_file . '"';
continue;
}
if (is_bool($arg_value))
@@ -372,11 +374,12 @@ class Smarty_Compiler extends Smarty {
}
return "<?php " .
"\$_smarty_defined_vars = get_defined_vars();\n" .
"\$_smarty_tpl_vars = \$this->_tpl_vars;\n" .
"unset(\$_smarty_defined_vars['_smarty_include_tpl_file']);\n" .
"unset(\$_smarty_defined_vars['_smarty_def_vars']);\n" .
"unset(\$_smarty_defined_vars['_smarty_include_vars']);\n" .
"\$this->_smarty_include(".$_smarty_include_tpl_file.", \$_smarty_defined_vars, array(".implode(',', (array)$arg_list)."), \$_smarty_config);\n?>";
"\$this->_smarty_include(".$_smarty_include_tpl_file.", array(".implode(',', (array)$arg_list)."), \$_smarty_config);\n" .
"\$this->_tpl_vars = \$_smarty_defined_vars;\n" .
"unset(\$_smarty_tpl_vars); ?>";
}
/*======================================================================*\

View File

@@ -696,10 +696,10 @@ class Smarty
Function: _smarty_include()
Purpose: called for included templates
\*======================================================================*/
function _smarty_include($_smarty_include_tpl_file ,$_smarty_def_vars,
$_smarty_include_vars, &$_smarty_config_parent)
function _smarty_include($_smarty_include_tpl_file, $_smarty_include_vars,
&$_smarty_config_parent)
{
extract($_smarty_def_vars);
$this->_tpl_vars = array_merge($this->_tpl_vars, $_smarty_include_vars);
extract($_smarty_include_vars);
$this->_process_template($_smarty_include_tpl_file, $compile_path);

View File

@@ -363,7 +363,9 @@ class Smarty_Compiler extends Smarty {
foreach ($attrs as $arg_name => $arg_value) {
if ($arg_name == 'file') {
$_smarty_include_tpl_file = $arg_value;
$_smarty_include_tpl_file = $this->_dequote($arg_value);
if ($_smarty_include_tpl_file{0} != '$')
$_smarty_include_tpl_file = '"' . $_smarty_include_tpl_file . '"';
continue;
}
if (is_bool($arg_value))
@@ -372,11 +374,12 @@ class Smarty_Compiler extends Smarty {
}
return "<?php " .
"\$_smarty_defined_vars = get_defined_vars();\n" .
"\$_smarty_tpl_vars = \$this->_tpl_vars;\n" .
"unset(\$_smarty_defined_vars['_smarty_include_tpl_file']);\n" .
"unset(\$_smarty_defined_vars['_smarty_def_vars']);\n" .
"unset(\$_smarty_defined_vars['_smarty_include_vars']);\n" .
"\$this->_smarty_include(".$_smarty_include_tpl_file.", \$_smarty_defined_vars, array(".implode(',', (array)$arg_list)."), \$_smarty_config);\n?>";
"\$this->_smarty_include(".$_smarty_include_tpl_file.", array(".implode(',', (array)$arg_list)."), \$_smarty_config);\n" .
"\$this->_tpl_vars = \$_smarty_defined_vars;\n" .
"unset(\$_smarty_tpl_vars); ?>";
}
/*======================================================================*\