Update to Smarty 3.1.15
This commit is contained in:
parent
bea18b03e2
commit
1c9cd9208f
119 changed files with 5232 additions and 4641 deletions
|
|
@ -31,19 +31,18 @@
|
|||
* @version 3-SVN$Rev: 3286 $
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Utility class
|
||||
*
|
||||
* @package Smarty
|
||||
* @subpackage Security
|
||||
*/
|
||||
class Smarty_Internal_Utility {
|
||||
|
||||
class Smarty_Internal_Utility
|
||||
{
|
||||
/**
|
||||
* private constructor to prevent calls creation of new instances
|
||||
*/
|
||||
private final function __construct()
|
||||
final private function __construct()
|
||||
{
|
||||
// intentionally left blank
|
||||
}
|
||||
|
|
@ -51,14 +50,14 @@ class Smarty_Internal_Utility {
|
|||
/**
|
||||
* Compile all template files
|
||||
*
|
||||
* @param string $extension template file name extension
|
||||
* @param bool $force_compile force all to recompile
|
||||
* @param int $time_limit set maximum execution time
|
||||
* @param int $max_errors set maximum allowed errors
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @param string $extension template file name extension
|
||||
* @param bool $force_compile force all to recompile
|
||||
* @param int $time_limit set maximum execution time
|
||||
* @param int $max_errors set maximum allowed errors
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @return integer number of template files compiled
|
||||
*/
|
||||
public static function compileAllTemplates($extention, $force_compile, $time_limit, $max_errors, Smarty $smarty)
|
||||
public static function compileAllTemplates($extension, $force_compile, $time_limit, $max_errors, Smarty $smarty)
|
||||
{
|
||||
// switch off time limit
|
||||
if (function_exists('set_time_limit')) {
|
||||
|
|
@ -68,13 +67,13 @@ class Smarty_Internal_Utility {
|
|||
$_count = 0;
|
||||
$_error_count = 0;
|
||||
// loop over array of template directories
|
||||
foreach($smarty->getTemplateDir() as $_dir) {
|
||||
foreach ($smarty->getTemplateDir() as $_dir) {
|
||||
$_compileDirs = new RecursiveDirectoryIterator($_dir);
|
||||
$_compile = new RecursiveIteratorIterator($_compileDirs);
|
||||
foreach ($_compile as $_fileinfo) {
|
||||
if (substr(basename($_file->getPathname()),0,1) == '.' || strpos($_fileinfo, '.svn') !== false) continue;
|
||||
$_file = $_fileinfo->getFilename();
|
||||
if (!substr_compare($_file, $extention, - strlen($extention)) == 0) continue;
|
||||
if (substr(basename($_fileinfo->getPathname()),0,1) == '.' || strpos($_file, '.svn') !== false) continue;
|
||||
if (!substr_compare($_file, $extension, - strlen($extension)) == 0) continue;
|
||||
if ($_fileinfo->getPath() == substr($_dir, 0, -1)) {
|
||||
$_template_file = $_file;
|
||||
} else {
|
||||
|
|
@ -94,8 +93,7 @@ class Smarty_Internal_Utility {
|
|||
echo ' is up to date';
|
||||
flush();
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
echo 'Error: ', $e->getMessage(), "<br><br>";
|
||||
$_error_count++;
|
||||
}
|
||||
|
|
@ -109,20 +107,21 @@ class Smarty_Internal_Utility {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compile all config files
|
||||
*
|
||||
* @param string $extension config file name extension
|
||||
* @param bool $force_compile force all to recompile
|
||||
* @param int $time_limit set maximum execution time
|
||||
* @param int $max_errors set maximum allowed errors
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @param string $extension config file name extension
|
||||
* @param bool $force_compile force all to recompile
|
||||
* @param int $time_limit set maximum execution time
|
||||
* @param int $max_errors set maximum allowed errors
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @return integer number of config files compiled
|
||||
*/
|
||||
public static function compileAllConfig($extention, $force_compile, $time_limit, $max_errors, Smarty $smarty)
|
||||
public static function compileAllConfig($extension, $force_compile, $time_limit, $max_errors, Smarty $smarty)
|
||||
{
|
||||
// switch off time limit
|
||||
if (function_exists('set_time_limit')) {
|
||||
|
|
@ -132,13 +131,13 @@ class Smarty_Internal_Utility {
|
|||
$_count = 0;
|
||||
$_error_count = 0;
|
||||
// loop over array of template directories
|
||||
foreach($smarty->getConfigDir() as $_dir) {
|
||||
foreach ($smarty->getConfigDir() as $_dir) {
|
||||
$_compileDirs = new RecursiveDirectoryIterator($_dir);
|
||||
$_compile = new RecursiveIteratorIterator($_compileDirs);
|
||||
foreach ($_compile as $_fileinfo) {
|
||||
if (substr(basename($_fileinfo->getPathname()),0,1) == '.' || strpos($_fileinfo, '.svn') !== false) continue;
|
||||
$_file = $_fileinfo->getFilename();
|
||||
if (!substr_compare($_file, $extention, - strlen($extention)) == 0) continue;
|
||||
if (substr(basename($_fileinfo->getPathname()),0,1) == '.' || strpos($_file, '.svn') !== false) continue;
|
||||
if (!substr_compare($_file, $extension, - strlen($extension)) == 0) continue;
|
||||
if ($_fileinfo->getPath() == substr($_dir, 0, -1)) {
|
||||
$_config_file = $_file;
|
||||
} else {
|
||||
|
|
@ -158,8 +157,7 @@ class Smarty_Internal_Utility {
|
|||
echo ' is up to date';
|
||||
flush();
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
echo 'Error: ', $e->getMessage(), "<br><br>";
|
||||
$_error_count++;
|
||||
}
|
||||
|
|
@ -169,16 +167,17 @@ class Smarty_Internal_Utility {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete compiled template file
|
||||
*
|
||||
* @param string $resource_name template name
|
||||
* @param string $compile_id compile id
|
||||
* @param integer $exp_time expiration time
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @param string $resource_name template name
|
||||
* @param string $compile_id compile id
|
||||
* @param integer $exp_time expiration time
|
||||
* @param Smarty $smarty Smarty instance
|
||||
* @return integer number of template files deleted
|
||||
*/
|
||||
public static function clearCompiledTemplate($resource_name, $compile_id, $exp_time, Smarty $smarty)
|
||||
|
|
@ -266,31 +265,32 @@ class Smarty_Internal_Utility {
|
|||
// clear compiled cache
|
||||
Smarty_Resource::$sources = array();
|
||||
Smarty_Resource::$compileds = array();
|
||||
|
||||
return $_count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return array of tag/attributes of all tags used by an template
|
||||
*
|
||||
* @param Smarty_Internal_Template $templae template object
|
||||
* @return array of tag/attributes
|
||||
* @param Smarty_Internal_Template $templae template object
|
||||
* @return array of tag/attributes
|
||||
*/
|
||||
public static function getTags(Smarty_Internal_Template $template)
|
||||
{
|
||||
$template->smarty->get_used_tags = true;
|
||||
$template->compileTemplateSource();
|
||||
|
||||
return $template->used_tags;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* diagnose Smarty setup
|
||||
*
|
||||
* If $errors is secified, the diagnostic report will be appended to the array, rather than being output.
|
||||
*
|
||||
* @param Smarty $smarty Smarty instance to test
|
||||
* @param array $errors array to push results into rather than outputting them
|
||||
* @return bool status, true if everything is fine, false else
|
||||
* @param Smarty $smarty Smarty instance to test
|
||||
* @param array $errors array to push results into rather than outputting them
|
||||
* @return bool status, true if everything is fine, false else
|
||||
*/
|
||||
public static function testInstall(Smarty $smarty, &$errors=null)
|
||||
{
|
||||
|
|
@ -305,10 +305,10 @@ class Smarty_Internal_Utility {
|
|||
$_stream_resolve_include_path = function_exists('stream_resolve_include_path');
|
||||
|
||||
// test if all registered template_dir are accessible
|
||||
foreach($smarty->getTemplateDir() as $template_dir) {
|
||||
foreach ($smarty->getTemplateDir() as $template_dir) {
|
||||
$_template_dir = $template_dir;
|
||||
$template_dir = realpath($template_dir);
|
||||
// resolve include_path or fail existance
|
||||
// resolve include_path or fail existence
|
||||
if (!$template_dir) {
|
||||
if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_template_dir)) {
|
||||
// try PHP include_path
|
||||
|
|
@ -371,7 +371,6 @@ class Smarty_Internal_Utility {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if ($errors === null) {
|
||||
echo "Testing compile directory...\n";
|
||||
}
|
||||
|
|
@ -417,7 +416,6 @@ class Smarty_Internal_Utility {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if ($errors === null) {
|
||||
echo "Testing plugins directory...\n";
|
||||
}
|
||||
|
|
@ -426,10 +424,10 @@ class Smarty_Internal_Utility {
|
|||
// and if core plugins directory is still registered
|
||||
$_core_plugins_dir = realpath(dirname(__FILE__) .'/../plugins');
|
||||
$_core_plugins_available = false;
|
||||
foreach($smarty->getPluginsDir() as $plugin_dir) {
|
||||
foreach ($smarty->getPluginsDir() as $plugin_dir) {
|
||||
$_plugin_dir = $plugin_dir;
|
||||
$plugin_dir = realpath($plugin_dir);
|
||||
// resolve include_path or fail existance
|
||||
// resolve include_path or fail existence
|
||||
if (!$plugin_dir) {
|
||||
if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_plugin_dir)) {
|
||||
// try PHP include_path
|
||||
|
|
@ -510,7 +508,6 @@ class Smarty_Internal_Utility {
|
|||
echo "Testing cache directory...\n";
|
||||
}
|
||||
|
||||
|
||||
// test if all registered cache_dir is accessible
|
||||
$__cache_dir = $smarty->getCacheDir();
|
||||
$_cache_dir = realpath($__cache_dir);
|
||||
|
|
@ -552,16 +549,15 @@ class Smarty_Internal_Utility {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if ($errors === null) {
|
||||
echo "Testing configs directory...\n";
|
||||
}
|
||||
|
||||
// test if all registered config_dir are accessible
|
||||
foreach($smarty->getConfigDir() as $config_dir) {
|
||||
foreach ($smarty->getConfigDir() as $config_dir) {
|
||||
$_config_dir = $config_dir;
|
||||
$config_dir = realpath($config_dir);
|
||||
// resolve include_path or fail existance
|
||||
// resolve include_path or fail existence
|
||||
if (!$config_dir) {
|
||||
if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_config_dir)) {
|
||||
// try PHP include_path
|
||||
|
|
@ -624,7 +620,6 @@ class Smarty_Internal_Utility {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if ($errors === null) {
|
||||
echo "Testing sysplugin files...\n";
|
||||
}
|
||||
|
|
@ -826,5 +821,3 @@ class Smarty_Internal_Utility {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in a new issue