update Smarty to official version 3.1.28

This commit is contained in:
plegall
2015-12-15 15:24:01 +01:00
parent acbdd756cd
commit 3282ddbe2e
9 changed files with 46 additions and 37 deletions
+5 -5
View File
@@ -9,23 +9,23 @@ This does enable some new features:
Any code outside root {block} tags in child templates is now executed but any output will be ignored.
{extends 'foo.tpl}
{extends 'foo.tpl'}
{$bar = 'on'} // assigns variable $bar seen in parent templates
{block 'buh'}{/block}
{extends 'foo.tpl}
{extends 'foo.tpl'}
{$bar} // the output of variable bar is ignored
{block 'buh'}{/block}
{block} tags can be dynamically en/disabled by conditions.
{block 'root}
{block 'root'}
{if $foo}
{block 'v1}
{block 'v1'}
....
{/block}
{else}
{block 'v1}
{block 'v1'}
....
{/block}
{/if}
+10 -5
View File
@@ -21,13 +21,18 @@ Smarty 3.1.28
fetch() and display()
=====================
The fetch() and display() methods of the template object accept now optionally the same parameter
as the corresponding Smarty methods the get tne content of another template.
as the corresponding Smarty methods to get tne content of another template.
Example:
$template->display(); Does display template of template object
$template->dispaly('foo.tpl'); Does display template 'foo.bar'
File: resource
==============
Multiple template_dir entries can now be selected by a comma separated list of indices.
The template_dir array is searched in the order of the indices. (could be used to change the default search order)
The template_dir array is searched in the order of the indices. (Could be used to change the default search order)
Example:
$smarty->display([1],[0]foo.bar');
Filter support
==============
Optional filter names
@@ -40,8 +45,8 @@ Smarty 3.1.28
- $smarty->registerFilter('pre', function($source) {return $source;});
If no optional filter name was specified it gets the default name 'closure'.
If you register multiple closures register each with a unique filter name.
- $smarty->registerFilter('pre', function($source) {return $source;}, 'clousre_1');
- $smarty->registerFilter('pre', function($source) {return $source;}, 'clousre_2');
- $smarty->registerFilter('pre', function($source) {return $source;}, 'closure_1');
- $smarty->registerFilter('pre', function($source) {return $source;}, 'closure_2');
Smarty 3.1.22
+6 -1
View File
@@ -1,4 +1,9 @@
===== 3.1.28-dev===== (xx.xx.2015)
===== 3.1.28 ===== (13.12.2015)
13.12.2015
- bugfix {foreach} and {section} with uppercase characters in name attribute did not work (forum topic 25819)
- bugfix $smarty->debugging_ctrl = 'URL' did not work (forum topic 25811)
- bugfix Debug Console could display incorrect data when using subtemplates
09.12.2015
- bugix Smarty did fail under PHP 7.0.0 with use_include_path = true;
+7 -3
View File
@@ -27,7 +27,7 @@
* @author Uwe Tews
* @author Rodney Rehm
* @package Smarty
* @version 3.1.28-dev
* @version 3.1.28
*/
/**
@@ -118,7 +118,7 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* smarty version
*/
const SMARTY_VERSION = '3.1.28-dev/79';
const SMARTY_VERSION = '3.1.28';
/**
* define variable scopes
@@ -1094,8 +1094,12 @@ class Smarty extends Smarty_Internal_TemplateBase
$tpl->tpl_vars[$_key] = new Smarty_Variable($_val);
}
}
if ($this->debugging) {
if ($this->debugging || $this->debugging_ctrl == 'URL') {
$tpl->smarty->_debug = new Smarty_Internal_Debug();
// check URL debugging control
if (!$this->debugging && $this->debugging_ctrl == 'URL') {
$tpl->smarty->_debug->debugUrl($tpl->smarty);
}
}
return $tpl;
}
@@ -12,7 +12,7 @@
* Name: strip_tags<br>
* Purpose: strip html tags from text
*
* @link http://www.smarty.net/manual/en/language.modifier.strip.tags.php strip_tags (Smarty online manual)
* @link http://www.smarty.net/docs/en/language.modifier.strip.tags.tpl strip_tags (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
@@ -206,16 +206,15 @@ class Smarty_Internal_Compile_Private_ForeachSection extends Smarty_Internal_Com
*/
public static function compileSpecialVariable($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
{
// make all lower case
$parameter = array_map('strtolower', $parameter);
$tag = trim($parameter[0], '"\'');
if (!isset($parameter[1]) || false === $name = $compiler->getId($parameter[1])) {
$tag = strtolower(trim($parameter[ 0 ], '"\''));
$name = isset($parameter[ 1 ]) ? $compiler->getId($parameter[ 1 ]) : false;
if (!$name) {
$compiler->trigger_template_error("missing or illegal \$smarty.{$tag} name attribute", null, true);
}
/* @var Smarty_Internal_Compile_Foreach|Smarty_Internal_Compile_Section $className */
$className = 'Smarty_Internal_Compile_' . ucfirst($tag);
if ((!isset($parameter[2]) || false === $property = $compiler->getId($parameter[2])) ||
!in_array($property, $className::$nameProperties)
) {
$property = isset($parameter[ 2 ]) ? strtolower($compiler->getId($parameter[ 2 ])) : false;
if (!$property || !in_array($property, $className::$nameProperties)) {
$compiler->trigger_template_error("missing or illegal \$smarty.{$tag} property attribute", null, true);
}
$tagVar = "'__smarty_{$tag}_{$name}'";
@@ -79,7 +79,7 @@ class Smarty_Internal_Compile_Private_Php extends Smarty_Internal_CompileBase
} else {
$compiler->has_code = true;
if (!($compiler->smarty instanceof SmartyBC)) {
$compiler->trigger_template_error('{php}[/php} tags not allowed. Use SmartyBC to enable them', null, true);
$compiler->trigger_template_error('{php}{/php} tags not allowed. Use SmartyBC to enable them', null, true);
}
$ldel = preg_quote($compiler->smarty->left_delimiter, '#');
$rdel = preg_quote($compiler->smarty->right_delimiter, '#');
@@ -399,31 +399,31 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data
/**
* handle 'URL' debugging mode
*
* @param Smarty_Internal_Template $_template
* @param Smarty $smarty
*/
public function debugUrl(Smarty_Internal_Template $_template)
public function debugUrl(Smarty $smarty)
{
if (isset($_SERVER['QUERY_STRING'])) {
$_query_string = $_SERVER['QUERY_STRING'];
} else {
$_query_string = '';
}
if (false !== strpos($_query_string, $_template->smarty->smarty_debug_id)) {
if (false !== strpos($_query_string, $_template->smarty->smarty_debug_id . '=on')) {
if (false !== strpos($_query_string, $smarty->smarty_debug_id)) {
if (false !== strpos($_query_string, $smarty->smarty_debug_id . '=on')) {
// enable debugging for this browser session
setcookie('SMARTY_DEBUG', true);
$_template->smarty->debugging = true;
} elseif (false !== strpos($_query_string, $_template->smarty->smarty_debug_id . '=off')) {
$smarty->debugging = true;
} elseif (false !== strpos($_query_string, $smarty->smarty_debug_id . '=off')) {
// disable debugging for this browser session
setcookie('SMARTY_DEBUG', false);
$_template->smarty->debugging = false;
$smarty->debugging = false;
} else {
// enable debugging for this page
$_template->smarty->debugging = true;
$smarty->debugging = true;
}
} else {
if (isset($_COOKIE['SMARTY_DEBUG'])) {
$_template->smarty->debugging = true;
$smarty->debugging = true;
}
}
}
@@ -138,10 +138,6 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
}
throw new SmartyException("Unable to load template {$this->source->type} '{$this->source->name}'{$parent_resource}");
}
// check URL debugging control
if (!$this->smarty->debugging && $this->smarty->debugging_ctrl == 'URL') {
$this->smarty->_debug->debugUrl($this);
}
// disable caching for evaluated code
if ($this->source->handler->recompiled) {
$this->caching = false;
@@ -188,7 +184,7 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
} else {
if ($this->smarty->debugging) {
$this->smarty->_debug->end_template($this);
if ($this->smarty->debugging == 2 and !$display) {
if ($this->smarty->debugging === 2 && $display === false) {
$this->smarty->_debug->display_debug($this, true);
}
}