This commit is contained in:
redmatrix 2015-12-18 13:46:38 -08:00
commit b816a575eb
14 changed files with 173 additions and 197 deletions

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

View File

@ -1,4 +1,18 @@
 ===== 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;
09.12.2015
-bugfix {strip} should exclude some html tags from stripping, related to fix for https://github.com/smarty-php/smarty/issues/111
08.12.2015
- bugfix internal template function data got stored in wrong compiled file https://github.com/smarty-php/smarty/issues/114
05.12.2015
-bugfix {strip} should insert a single space https://github.com/smarty-php/smarty/issues/111

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/77';
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;
}

View File

@ -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

View File

@ -62,7 +62,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
}
unset($_attr['nocache']);
$_name = trim($_attr['name'], "'\"");
$compiler->parent_compiler->template->tpl_function[$_name] = array();
$compiler->parent_compiler->tpl_function[$_name] = $compiler->parent_compiler->template->tpl_function[$_name] = array();
$save = array($_attr, $compiler->parser->current_buffer, $compiler->template->compiled->has_nocache_code,
$compiler->template->caching);
$this->openTag($compiler, 'function', $save);
@ -105,9 +105,9 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
$saved_data = $this->closeTag($compiler, array('function'));
$_attr = $saved_data[0];
$_name = trim($_attr['name'], "'\"");
$compiler->parent_compiler->template->tpl_function[$_name]['called_functions'] = $compiler->called_functions;
$compiler->parent_compiler->template->tpl_function[$_name]['compiled_filepath'] = $compiler->parent_compiler->template->compiled->filepath;
$compiler->parent_compiler->template->tpl_function[$_name]['uid'] = $compiler->template->source->uid;
$compiler->parent_compiler->tpl_function[$_name]['called_functions'] = $compiler->parent_compiler->template->tpl_function[$_name]['called_functions'] = $compiler->called_functions;
$compiler->parent_compiler->tpl_function[$_name]['compiled_filepath'] = $compiler->parent_compiler->template->tpl_function[$_name]['compiled_filepath'] = $compiler->parent_compiler->template->compiled->filepath;
$compiler->parent_compiler->tpl_function[$_name]['uid'] = $compiler->parent_compiler->template->tpl_function[$_name]['uid'] = $compiler->template->source->uid;
$compiler->called_functions = array();
$_parameter = $_attr;
unset($_parameter['name']);
@ -133,7 +133,7 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
$_funcName = "smarty_template_function_{$_name}_{$compiler->template->compiled->nocache_hash}";
$_funcNameCaching = $_funcName . '_nocache';
if ($compiler->template->compiled->has_nocache_code) {
$compiler->parent_compiler->template->tpl_function[$_name]['call_name_caching'] = $_funcNameCaching;
$compiler->parent_compiler->tpl_function[$_name]['call_name_caching'] = $compiler->parent_compiler->template->tpl_function[$_name]['call_name_caching'] = $_funcNameCaching;
$output = "<?php\n";
$output .= "/* {$_funcNameCaching} */\n";
$output .= "if (!function_exists('{$_funcNameCaching}')) {\n";
@ -162,7 +162,7 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
$_functionCode = new Smarty_Internal_ParseTree_Tag($compiler->parser, preg_replace_callback("/((<\?php )?echo '\/\*%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%\*\/([\S\s]*?)\/\*\/%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%\*\/';(\?>\n)?)/", array($this,
'removeNocache'), $_functionCode->to_smarty_php($compiler->parser)));
}
$compiler->parent_compiler->template->tpl_function[$_name]['call_name'] = $_funcName;
$compiler->parent_compiler->tpl_function[$_name]['call_name'] = $compiler->parent_compiler->template->tpl_function[$_name]['call_name'] = $_funcName;
$output = "<?php\n";
$output .= "/* {$_funcName} */\n";
$output .= "if (!function_exists('{$_funcName}')) {\n";

View File

@ -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}'";

View File

@ -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, '#');

View File

@ -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;
}
}
}

View File

@ -17,43 +17,49 @@ class Smarty_Internal_Runtime_CodeFrame
/**
* Create code frame for compiled and cached templates
*
* @param Smarty_Internal_Template $_template
* @param string $content optional template content
* @param bool $cache flag for cache file
* @param Smarty_Internal_Template $_template
* @param string $content optional template content
* @param string $functions compiled template function and block code
* @param bool $cache flag for cache file
* @param \Smarty_Internal_TemplateCompilerBase $compiler
*
* @return string
*/
public function create(Smarty_Internal_Template $_template, $content = '', $functions = '', $cache = false)
public function create(Smarty_Internal_Template $_template, $content = '', $functions = '', $cache = false,
Smarty_Internal_TemplateCompilerBase $compiler = null)
{
// build property code
$properties['has_nocache_code'] = $_template->compiled->has_nocache_code;
$properties['version'] = Smarty::SMARTY_VERSION;
$properties['unifunc'] = 'content_' . str_replace(array('.', ','), '_', uniqid('', true));
if (!empty($_template->tpl_function)) {
$properties['tpl_function'] = $_template->tpl_function;
}
$properties[ 'has_nocache_code' ] = $_template->compiled->has_nocache_code;
$properties[ 'version' ] = Smarty::SMARTY_VERSION;
$properties[ 'unifunc' ] = 'content_' . str_replace(array('.', ','), '_', uniqid('', true));
if (!$cache) {
$properties['file_dependency'] = $_template->compiled->file_dependency;
$properties['includes'] = $_template->compiled->includes;
$properties[ 'file_dependency' ] = $_template->compiled->file_dependency;
$properties[ 'includes' ] = $_template->compiled->includes;
if (!empty($compiler->tpl_function)) {
$properties[ 'tpl_function' ] = $compiler->tpl_function;
}
} else {
$properties['file_dependency'] = $_template->cached->file_dependency;
$properties['cache_lifetime'] = $_template->cache_lifetime;
$properties[ 'file_dependency' ] = $_template->cached->file_dependency;
$properties[ 'cache_lifetime' ] = $_template->cache_lifetime;
if (!empty($_template->tpl_function)) {
$properties[ 'tpl_function' ] = $_template->tpl_function;
}
}
$output = "<?php\n";
$output .= "/* Smarty version " . Smarty::SMARTY_VERSION . ", created on " . strftime("%Y-%m-%d %H:%M:%S") .
"\n from \"" . $_template->source->filepath . "\" */\n\n";
$dec = "\$_smarty_tpl->smarty->ext->_validateCompiled->decodeProperties(\$_smarty_tpl, " . var_export($properties, true) . ',' .
($cache ? 'true' : 'false') . ")";
$dec = "\$_smarty_tpl->smarty->ext->_validateCompiled->decodeProperties(\$_smarty_tpl, " .
var_export($properties, true) . ',' . ($cache ? 'true' : 'false') . ")";
$output .= "if ({$dec}) {\n";
$output .= "function {$properties['unifunc']} (\$_smarty_tpl) {\n";
// include code for plugins
if (!$cache) {
if (!empty($_template->compiled->required_plugins['compiled'])) {
foreach ($_template->compiled->required_plugins['compiled'] as $tmp) {
if (!empty($_template->compiled->required_plugins[ 'compiled' ])) {
foreach ($_template->compiled->required_plugins[ 'compiled' ] as $tmp) {
foreach ($tmp as $data) {
$file = addslashes($data['file']);
if (is_array($data['function'])) {
$file = addslashes($data[ 'file' ]);
if (is_array($data[ 'function' ])) {
$output .= "if (!is_callable(array('{$data['function'][0]}','{$data['function'][1]}'))) require_once '{$file}';\n";
} else {
$output .= "if (!is_callable('{$data['function']}')) require_once '{$file}';\n";
@ -61,13 +67,13 @@ class Smarty_Internal_Runtime_CodeFrame
}
}
}
if ($_template->caching && !empty($_template->compiled->required_plugins['nocache'])) {
if ($_template->caching && !empty($_template->compiled->required_plugins[ 'nocache' ])) {
$_template->compiled->has_nocache_code = true;
$output .= "echo '/*%%SmartyNocache:{$_template->compiled->nocache_hash}%%*/<?php \$_smarty = \$_smarty_tpl->smarty; ";
foreach ($_template->compiled->required_plugins['nocache'] as $tmp) {
foreach ($_template->compiled->required_plugins[ 'nocache' ] as $tmp) {
foreach ($tmp as $data) {
$file = addslashes($data['file']);
if (is_Array($data['function'])) {
$file = addslashes($data[ 'file' ]);
if (is_Array($data[ 'function' ])) {
$output .= addslashes("if (!is_callable(array('{$data['function'][0]}','{$data['function'][1]}'))) require_once '{$file}';\n");
} else {
$output .= addslashes("if (!is_callable('{$data['function']}')) require_once '{$file}';\n");

View File

@ -86,9 +86,6 @@ class Smarty_Internal_Runtime_GetIncludePath
$this->_include_path = $_i_path;
$_dirs = (array) explode(PATH_SEPARATOR, $_i_path);
foreach ($_dirs as $_path) {
if ($_path[0] != '/' && isset($dir[1]) && $dir[1] != ':') {
$_path = $smarty->_realpath($_path . DS, true);
}
if (is_dir($_path)) {
$this->_include_dirs[] = $smarty->_realpath($_path . DS, true);
}

View File

@ -1,97 +0,0 @@
<?php
/**
* Tplfunc Runtime Methods callTemplateFunction
*
* @package Smarty
* @subpackage PluginsInternal
* @author Uwe Tews
*
**/
class Smarty_Internal_Runtime_Tplfunc
{
/**
* Call template function
*
* @param \Smarty_Internal_Template $tpl template object
* @param string $name template function name
* @param array $params parameter array
* @param bool $nocache true if called nocache
*
* @throws \SmartyException
*/
public function callTemplateFunction(\Smarty_Internal_Template $tpl, $name, $params, $nocache)
{
if (isset($tpl->tpl_function[$name])) {
if (!$tpl->caching || ($tpl->caching && $nocache)) {
$function = $tpl->tpl_function[$name]['call_name'];
} else {
if (isset($tpl->tpl_function[$name]['call_name_caching'])) {
$function = $tpl->tpl_function[$name]['call_name_caching'];
} else {
$function = $tpl->tpl_function[$name]['call_name'];
}
}
if (function_exists($function)) {
$function ($tpl, $params);
return;
}
// try to load template function dynamically
if ($this->addTplFuncToCache($tpl, $name, $function)) {
$function ($tpl, $params);
return;
}
}
throw new SmartyException("Unable to find template function '{$name}'");
}
/**
*
* Add template function to cache file for nocache calls
*
* @param Smarty_Internal_Template $tpl
* @param string $_name template function name
* @param string $_function PHP function name
*
* @return bool
*/
public function addTplFuncToCache(Smarty_Internal_Template $tpl, $_name, $_function)
{
$funcParam = $tpl->tpl_function[$_name];
if (is_file($funcParam['compiled_filepath'])) {
// read compiled file
$code = file_get_contents($funcParam['compiled_filepath']);
// grab template function
if (preg_match("/\/\* {$_function} \*\/([\S\s]*?)\/\*\/ {$_function} \*\//", $code, $match)) {
// grab source info from file dependency
preg_match("/\s*'{$funcParam['uid']}'([\S\s]*?)\),/", $code, $match1);
unset($code);
// make PHP function known
eval($match[0]);
if (function_exists($_function)) {
// search cache file template
$tplPtr = $tpl;
while (!isset($tplPtr->cached) && isset($tplPtr->parent)) {
$tplPtr = $tplPtr->parent;
}
// add template function code to cache file
if (isset($tplPtr->cached)) {
$cache = $tplPtr->cached;
$content = $cache->read($tplPtr);
if ($content) {
// check if we must update file dependency
if (!preg_match("/'{$funcParam['uid']}'(.*?)'nocache_hash'/", $content, $match2)) {
$content = preg_replace("/('file_dependency'(.*?)\()/", "\\1{$match1[0]}", $content);
}
$cache->write($tplPtr, preg_replace('/\s*\?>\s*$/', "\n", $content) . "\n" .
preg_replace(array('/^\s*<\?php\s+/', '/\s*\?>\s*$/'), "\n",
$match[0]));
}
}
return true;
}
}
}
return false;
}
}

View File

@ -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);
}
}

View File

@ -149,6 +149,13 @@ abstract class Smarty_Internal_TemplateCompilerBase
*/
public $write_compiled_code = true;
/**
* Template functions
*
* @var array
*/
public $tpl_function = array();
/**
* called sub functions from template function
*
@ -321,7 +328,7 @@ abstract class Smarty_Internal_TemplateCompilerBase
$this->compileTemplateSource($template, $nocache,
$parent_compiler),
$this->postFilter($this->blockOrFunctionCode) .
join('', $this->mergedSubTemplatesCode));
join('', $this->mergedSubTemplatesCode), false, $this);
return $_compiled_code;
}
@ -776,12 +783,58 @@ abstract class Smarty_Internal_TemplateCompilerBase
*/
public function processText($text)
{
$store = array();
$_store = 0;
$_offset = 0;
if ($this->parser->strip) {
return new Smarty_Internal_ParseTree_Text(preg_replace($this->stripRegEx, ' ', $text));
} else {
if (strpos($text, '<') !== false) {
// capture html elements not to be messed with
$_offset = 0;
if (preg_match_all('#(<script[^>]*>.*?</script[^>]*>)|(<textarea[^>]*>.*?</textarea[^>]*>)|(<pre[^>]*>.*?</pre[^>]*>)#is',
$text, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) {
foreach ($matches as $match) {
$store[] = $match[ 0 ][ 0 ];
$_length = strlen($match[ 0 ][ 0 ]);
$replace = '@!@SMARTY:' . $_store . ':SMARTY@!@';
$text = substr_replace($text, $replace, $match[ 0 ][ 1 ] - $_offset, $_length);
$_offset += $_length - strlen($replace);
$_store ++;
}
}
$expressions = array(// replace multiple spaces between tags by a single space
// can't remove them entirely, becaue that might break poorly implemented CSS display:inline-block elements
'#(:SMARTY@!@|>)\s+(?=@!@SMARTY:|<)#s' => '\1 \2',
// remove spaces between attributes (but not in attribute values!)
'#(([a-z0-9]\s*=\s*("[^"]*?")|(\'[^\']*?\'))|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \5',
'#^\s+<#Ss' => '<',
'#>\s+$#Ss' => '>',
$this->stripRegEx => ''
);
$text = preg_replace(array_keys($expressions), array_values($expressions), $text);
$_offset = 0;
if (preg_match_all('#@!@SMARTY:([0-9]+):SMARTY@!@#is', $text, $matches,
PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) {
foreach ($matches as $match) {
$_length = strlen($match[ 0 ][ 0 ]);
$replace = $store[ $match[ 1 ][ 0 ] ];
$text = substr_replace($text, $replace, $match[ 0 ][ 1 ] + $_offset, $_length);
$_offset += strlen($replace) - $_length;
$_store ++;
}
}
} else {
$text = preg_replace($this->stripRegEx, '', $text);
}
}
if ($text) {
return new Smarty_Internal_ParseTree_Text($text);
}
}
return null;
}
/**
* lazy loads internal compile plugin for tag and calls the compile method

View File

@ -63,7 +63,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['template_dir'] = $message;
$errors[ 'template_dir' ] = $message;
}
continue;
@ -74,7 +74,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['template_dir'] = $message;
$errors[ 'template_dir' ] = $message;
}
continue;
@ -87,7 +87,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['template_dir'] = $message;
$errors[ 'template_dir' ] = $message;
}
} elseif (!is_readable($template_dir)) {
$status = false;
@ -95,7 +95,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['template_dir'] = $message;
$errors[ 'template_dir' ] = $message;
}
} else {
if ($errors === null) {
@ -117,7 +117,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['compile_dir'] = $message;
$errors[ 'compile_dir' ] = $message;
}
} elseif (!is_dir($_compile_dir)) {
$status = false;
@ -125,7 +125,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['compile_dir'] = $message;
$errors[ 'compile_dir' ] = $message;
}
} elseif (!is_readable($_compile_dir)) {
$status = false;
@ -133,7 +133,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['compile_dir'] = $message;
$errors[ 'compile_dir' ] = $message;
}
} elseif (!is_writable($_compile_dir)) {
$status = false;
@ -141,7 +141,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['compile_dir'] = $message;
$errors[ 'compile_dir' ] = $message;
}
} else {
if ($errors === null) {
@ -182,7 +182,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['plugins_dir'] = $message;
$errors[ 'plugins_dir' ] = $message;
}
continue;
@ -193,7 +193,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['plugins_dir'] = $message;
$errors[ 'plugins_dir' ] = $message;
}
continue;
@ -206,7 +206,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['plugins_dir'] = $message;
$errors[ 'plugins_dir' ] = $message;
}
} elseif (!is_readable($plugin_dir)) {
$status = false;
@ -214,7 +214,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['plugins_dir'] = $message;
$errors[ 'plugins_dir' ] = $message;
}
} elseif ($_core_plugins_dir && $_core_plugins_dir == realpath($plugin_dir)) {
$_core_plugins_available = true;
@ -232,8 +232,8 @@ class Smarty_Internal_TestInstall
$message = "WARNING: Smarty's own libs/plugins is not available";
if ($errors === null) {
echo $message . ".\n";
} elseif (!isset($errors['plugins_dir'])) {
$errors['plugins_dir'] = $message;
} elseif (!isset($errors[ 'plugins_dir' ])) {
$errors[ 'plugins_dir' ] = $message;
}
}
@ -250,7 +250,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['cache_dir'] = $message;
$errors[ 'cache_dir' ] = $message;
}
} elseif (!is_dir($_cache_dir)) {
$status = false;
@ -258,7 +258,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['cache_dir'] = $message;
$errors[ 'cache_dir' ] = $message;
}
} elseif (!is_readable($_cache_dir)) {
$status = false;
@ -266,7 +266,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['cache_dir'] = $message;
$errors[ 'cache_dir' ] = $message;
}
} elseif (!is_writable($_cache_dir)) {
$status = false;
@ -274,7 +274,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['cache_dir'] = $message;
$errors[ 'cache_dir' ] = $message;
}
} else {
if ($errors === null) {
@ -311,7 +311,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['config_dir'] = $message;
$errors[ 'config_dir' ] = $message;
}
continue;
@ -322,7 +322,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['config_dir'] = $message;
$errors[ 'config_dir' ] = $message;
}
continue;
@ -335,7 +335,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['config_dir'] = $message;
$errors[ 'config_dir' ] = $message;
}
} elseif (!is_readable($config_dir)) {
$status = false;
@ -343,7 +343,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['config_dir'] = $message;
$errors[ 'config_dir' ] = $message;
}
} else {
if ($errors === null) {
@ -476,7 +476,6 @@ class Smarty_Internal_TestInstall
'smarty_internal_runtime_getincludepath.php' => true,
'smarty_internal_runtime_hhvm.php' => true,
'smarty_internal_runtime_inheritance.php' => true,
'smarty_internal_runtime_iscached.php' => true,
'smarty_internal_runtime_subtemplate.php' => true,
'smarty_internal_runtime_tplfunction.php' => true,
'smarty_internal_runtime_updatecache.php' => true,
@ -508,8 +507,8 @@ class Smarty_Internal_TestInstall
foreach ($iterator as $file) {
if (!$file->isDot()) {
$filename = $file->getFilename();
if (isset($expectedSysplugins[$filename])) {
unset($expectedSysplugins[$filename]);
if (isset($expectedSysplugins[ $filename ])) {
unset($expectedSysplugins[ $filename ]);
}
}
}
@ -519,7 +518,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['sysplugins'] = $message;
$errors[ 'sysplugins' ] = $message;
}
} elseif ($errors === null) {
echo "... OK\n";
@ -530,7 +529,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['sysplugins_dir_constant'] = $message;
$errors[ 'sysplugins_dir_constant' ] = $message;
}
}
@ -569,8 +568,8 @@ class Smarty_Internal_TestInstall
foreach ($iterator as $file) {
if (!$file->isDot()) {
$filename = $file->getFilename();
if (isset($expectedPlugins[$filename])) {
unset($expectedPlugins[$filename]);
if (isset($expectedPlugins[ $filename ])) {
unset($expectedPlugins[ $filename ]);
}
}
}
@ -580,7 +579,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['plugins'] = $message;
$errors[ 'plugins' ] = $message;
}
} elseif ($errors === null) {
echo "... OK\n";
@ -591,7 +590,7 @@ class Smarty_Internal_TestInstall
if ($errors === null) {
echo $message . ".\n";
} else {
$errors['plugins_dir_constant'] = $message;
$errors[ 'plugins_dir_constant' ] = $message;
}
}