mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-04 10:24:26 +02:00
added support for extracting params to include_php
This commit is contained in:
2
NEWS
2
NEWS
@@ -1,3 +1,5 @@
|
|||||||
|
- added support for passing params to include_php
|
||||||
|
(Tim Riley, Monte)
|
||||||
- added support for math operators in if statements (Monte)
|
- added support for math operators in if statements (Monte)
|
||||||
- added support for $foo->bar[$x].blah syntax (Monte)
|
- added support for $foo->bar[$x].blah syntax (Monte)
|
||||||
|
|
||||||
|
@@ -1722,11 +1722,13 @@ class Smarty
|
|||||||
* @param $_smarty_assign
|
* @param $_smarty_assign
|
||||||
* @param $_smarty_once
|
* @param $_smarty_once
|
||||||
*/
|
*/
|
||||||
function _smarty_include_php($_smarty_include_php_file, $_smarty_assign, $_smarty_once)
|
function _smarty_include_php($_smarty_include_php_file, $_smarty_assign, $_smarty_once, $_smarty_include_vars)
|
||||||
{
|
{
|
||||||
$this->_get_php_resource($_smarty_include_php_file, $_smarty_resource_type,
|
$this->_get_php_resource($_smarty_include_php_file, $_smarty_resource_type,
|
||||||
$_smarty_php_resource);
|
$_smarty_php_resource);
|
||||||
|
|
||||||
|
extract($_smarty_include_vars, EXTR_PREFIX_SAME, 'include_php_');
|
||||||
|
|
||||||
if (!empty($_smarty_assign)) {
|
if (!empty($_smarty_assign)) {
|
||||||
ob_start();
|
ob_start();
|
||||||
if ($_smarty_resource_type == 'file') {
|
if ($_smarty_resource_type == 'file') {
|
||||||
|
@@ -857,8 +857,20 @@ class Smarty_Compiler extends Smarty {
|
|||||||
$assign_var = $this->_dequote($attrs['assign']);
|
$assign_var = $this->_dequote($attrs['assign']);
|
||||||
|
|
||||||
$once_var = ( $attrs['once'] === false ) ? 'false' : 'true';
|
$once_var = ( $attrs['once'] === false ) ? 'false' : 'true';
|
||||||
|
|
||||||
|
foreach($attrs as $arg_name => $arg_value) {
|
||||||
|
if($arg_name != 'file' AND $arg_name != 'once' AND $arg_name != 'assign') {
|
||||||
|
if(is_bool($arg_value))
|
||||||
|
$arg_value = $arg_value ? 'true' : 'false';
|
||||||
|
$arg_list[] = "'$arg_name' => $arg_value";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$output =
|
||||||
|
"<?php \$this->_smarty_include_php($attrs[file], '$assign_var', $once_var, " .
|
||||||
|
"array(".implode(',', (array)$arg_list).")); ?>";
|
||||||
|
|
||||||
return "<?php \$this->_smarty_include_php($attrs[file], '$assign_var', $once_var); ?>";
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1109,6 +1121,10 @@ class Smarty_Compiler extends Smarty {
|
|||||||
case '~':
|
case '~':
|
||||||
case ')':
|
case ')':
|
||||||
case ',':
|
case ',':
|
||||||
|
case '+':
|
||||||
|
case '-':
|
||||||
|
case '*':
|
||||||
|
case '/':
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'eq':
|
case 'eq':
|
||||||
|
@@ -167,14 +167,14 @@ $smarty = new Smarty;</screen>
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Be sure you know the location of your web server document root. In our
|
Be sure you know the location of your web server document root. In our
|
||||||
example, the document root is "/web/www.domain.com/docs/".
|
example, the document root is "/web/www.mydomain.com/docs/".
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The Smarty directories are defined in the class variables $template_dir,
|
The Smarty directories are defined in the class variables $template_dir,
|
||||||
$compile_dir, $config_dir and $cache_dir, which default to the values
|
$compile_dir, $config_dir and $cache_dir, which default to the values
|
||||||
"templates", "templates_c", "configs" and "cache" respectively. In our
|
"templates", "templates_c", "configs" and "cache" respectively. In our
|
||||||
example, we'll place all of these directories under
|
example, we'll place all of these directories under
|
||||||
"/web/www.domain.com/smarty/guestbook/".
|
"/web/www.mydomain.com/smarty/guestbook/".
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
@@ -197,7 +197,7 @@ $smarty = new Smarty;</screen>
|
|||||||
<para>
|
<para>
|
||||||
It is convenient to setup the web server so that "index.php" can be
|
It is convenient to setup the web server so that "index.php" can be
|
||||||
identified as the default directory index, so if you access
|
identified as the default directory index, so if you access
|
||||||
"http://www.domain.com/guestbook/", the index.php script will be executed
|
"http://www.mydomain.com/guestbook/", the index.php script will be executed
|
||||||
without "index.php" in the URL. In Apache you can set this up by adding
|
without "index.php" in the URL. In Apache you can set this up by adding
|
||||||
"index.php" onto the end of your DirectoryIndex setting (separate each
|
"index.php" onto the end of your DirectoryIndex setting (separate each
|
||||||
entry with a space.)
|
entry with a space.)
|
||||||
|
@@ -1722,11 +1722,13 @@ class Smarty
|
|||||||
* @param $_smarty_assign
|
* @param $_smarty_assign
|
||||||
* @param $_smarty_once
|
* @param $_smarty_once
|
||||||
*/
|
*/
|
||||||
function _smarty_include_php($_smarty_include_php_file, $_smarty_assign, $_smarty_once)
|
function _smarty_include_php($_smarty_include_php_file, $_smarty_assign, $_smarty_once, $_smarty_include_vars)
|
||||||
{
|
{
|
||||||
$this->_get_php_resource($_smarty_include_php_file, $_smarty_resource_type,
|
$this->_get_php_resource($_smarty_include_php_file, $_smarty_resource_type,
|
||||||
$_smarty_php_resource);
|
$_smarty_php_resource);
|
||||||
|
|
||||||
|
extract($_smarty_include_vars, EXTR_PREFIX_SAME, 'include_php_');
|
||||||
|
|
||||||
if (!empty($_smarty_assign)) {
|
if (!empty($_smarty_assign)) {
|
||||||
ob_start();
|
ob_start();
|
||||||
if ($_smarty_resource_type == 'file') {
|
if ($_smarty_resource_type == 'file') {
|
||||||
|
@@ -857,8 +857,20 @@ class Smarty_Compiler extends Smarty {
|
|||||||
$assign_var = $this->_dequote($attrs['assign']);
|
$assign_var = $this->_dequote($attrs['assign']);
|
||||||
|
|
||||||
$once_var = ( $attrs['once'] === false ) ? 'false' : 'true';
|
$once_var = ( $attrs['once'] === false ) ? 'false' : 'true';
|
||||||
|
|
||||||
|
foreach($attrs as $arg_name => $arg_value) {
|
||||||
|
if($arg_name != 'file' AND $arg_name != 'once' AND $arg_name != 'assign') {
|
||||||
|
if(is_bool($arg_value))
|
||||||
|
$arg_value = $arg_value ? 'true' : 'false';
|
||||||
|
$arg_list[] = "'$arg_name' => $arg_value";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$output =
|
||||||
|
"<?php \$this->_smarty_include_php($attrs[file], '$assign_var', $once_var, " .
|
||||||
|
"array(".implode(',', (array)$arg_list).")); ?>";
|
||||||
|
|
||||||
return "<?php \$this->_smarty_include_php($attrs[file], '$assign_var', $once_var); ?>";
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1109,6 +1121,10 @@ class Smarty_Compiler extends Smarty {
|
|||||||
case '~':
|
case '~':
|
||||||
case ')':
|
case ')':
|
||||||
case ',':
|
case ',':
|
||||||
|
case '+':
|
||||||
|
case '-':
|
||||||
|
case '*':
|
||||||
|
case '/':
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'eq':
|
case 'eq':
|
||||||
|
Reference in New Issue
Block a user