From c24dce9ed4dbfccccf78b89c2f09361f7542f233 Mon Sep 17 00:00:00 2001 From: "Uwe.Tews" Date: Thu, 25 Mar 2010 20:43:56 +0000 Subject: [PATCH] - change of utility->compileAllTemplates() log messages - bugfix on nocache code in {function} tags --- change_log.txt | 4 + .../smarty_internal_compile_function.php | 8 +- libs/sysplugins/smarty_internal_utility.php | 145 +++++++++--------- 3 files changed, 83 insertions(+), 74 deletions(-) diff --git a/change_log.txt b/change_log.txt index 032010a9..d2177267 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,3 +1,7 @@ +25/03/2010 +- change of utility->compileAllTemplates() log messages +- bugfix on nocache code in {function} tags + 24/03/2010 - bugfix on register->modifier() error messages diff --git a/libs/sysplugins/smarty_internal_compile_function.php b/libs/sysplugins/smarty_internal_compile_function.php index 56c58648..86363b2b 100644 --- a/libs/sysplugins/smarty_internal_compile_function.php +++ b/libs/sysplugins/smarty_internal_compile_function.php @@ -37,7 +37,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase { // make function known for recursive calls $this->compiler->smarty->template_functions[$_name]['compiled'] = ''; // Init temporay context - $compiler->template->required_plugins = array('compiled' => array(), 'cache' => array()); + $compiler->template->required_plugins = array('compiled' => array(), 'nocache' => array()); $compiler->template->extract_code = true; $compiler->template->extracted_compiled_code = ''; $compiler->template->has_nocache_code = false; @@ -75,11 +75,11 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase } $plugins_string .= '?>'; } - if (!empty($compiler->template->required_plugins['cache'])) { + if (!empty($compiler->template->required_plugins['nocache'])) { $plugins_string .= "template->properties['nocache_hash']}%%*/template->required_plugins['nocache'] as $tmp) { foreach($tmp as $data) { - $plugins_string .= "if (!is_callable('{$data['function']}')) include '{$data['file']}';\n"; + $plugins_string .= "if (!is_callable(\'{$data['function']}\')) include \'{$data['file']}\';\n"; } } $plugins_string .= "?>/*/%%SmartyNocache:{$compiler->template->properties['nocache_hash']}%%*/';?>\n"; @@ -97,4 +97,4 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase } } -?> +?> \ No newline at end of file diff --git a/libs/sysplugins/smarty_internal_utility.php b/libs/sysplugins/smarty_internal_utility.php index d63762c2..996a564d 100644 --- a/libs/sysplugins/smarty_internal_utility.php +++ b/libs/sysplugins/smarty_internal_utility.php @@ -1,54 +1,54 @@ -* @author Uwe Tews -* @package Smarty -* @subpackage PluginsInternal -* @version 3-SVN$Rev: 3286 $ -*/ + * Project: Smarty: the PHP compiling template engine + * File: smarty_internal_utility.php + * SVN: $Id: $ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * For questions, help, comments, discussion, etc., please join the + * Smarty mailing list. Send a blank e-mail to + * smarty-discussion-subscribe@googlegroups.com + * + * @link http://www.smarty.net/ + * @copyright 2008 New Digital Group, Inc. + * @author Monte Ohrt + * @author Uwe Tews + * @package Smarty + * @subpackage PluginsInternal + * @version 3-SVN$Rev: 3286 $ + */ class Smarty_Internal_Utility { - protected $smarty; - function __construct($smarty) { - $this->smarty = $smarty; - } - + function __construct($smarty) + { + $this->smarty = $smarty; + } + /** - * Compile all template files - * - * @param string $extension file extension - * @param bool $force_compile force all to recompile - * @param int $time_limit - * @param int $max_errors - * @return integer number of template files recompiled - */ + * Compile all template files + * + * @param string $extension file extension + * @param bool $force_compile force all to recompile + * @param int $time_limit + * @param int $max_errors + * @return integer number of template files recompiled + */ function compileAllTemplates($extention = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null) { function _get_time() @@ -82,13 +82,19 @@ class Smarty_Internal_Utility { $_start_time = _get_time(); try { $_tpl = $this->smarty->createTemplate($_template_file); - $_tpl->getCompiledTemplate(); + if ($_tpl->mustCompile()) { + $_tpl->compileTemplateSource(); + echo ' compiled in ', _get_time() - $_start_time, ' seconds'; + flush(); + } else { + echo ' is up to date'; + flush(); + } } catch (Exception $e) { echo 'Error: ', $e->getMessage(), "

"; $_error_count++; } - echo ' done in ', _get_time() - $_start_time, ' seconds'; if ($max_errors !== null && $_error_count == $max_errors) { echo '

too many errors'; exit(); @@ -99,16 +105,16 @@ class Smarty_Internal_Utility { } /** - * Delete compiled template file - * - * @param string $resource_name template name - * @param string $compile_id compile id - * @param integer $exp_time expiration time - * @return integer number of template files deleted - */ + * Delete compiled template file + * + * @param string $resource_name template name + * @param string $compile_id compile id + * @param integer $exp_time expiration time + * @return integer number of template files deleted + */ function clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) { - $_compile_id = isset($compile_id) ? preg_replace('![^\w\|]+!','_',$compile_id) : null; + $_compile_id = isset($compile_id) ? preg_replace('![^\w\|]+!', '_', $compile_id) : null; $_dir_sep = $this->smarty->use_sub_dirs ? DS : '^'; if (isset($resource_name)) { $_resource_part_1 = $resource_name . '.php'; @@ -148,16 +154,16 @@ class Smarty_Internal_Utility { } } return $_count; - } - + } + function testInstall() { echo "
\n";
-    
+
         echo "Smarty Installation test...\n";
-    
+
         echo "Testing template directory...\n";
-    
+
         foreach((array)$this->smarty->template_dir as $template_dir) {
             if (!is_dir($template_dir))
                 echo "FAILED: $template_dir is not a directory.\n";
@@ -166,9 +172,9 @@ class Smarty_Internal_Utility {
             else
                 echo "$template_dir is OK.\n";
         } 
-    
+
         echo "Testing compile directory...\n";
-    
+
         if (!is_dir($this->smarty->compile_dir))
             echo "FAILED: {$this->smarty->compile_dir} is not a directory.\n";
         elseif (!is_readable($this->smarty->compile_dir))
@@ -177,9 +183,9 @@ class Smarty_Internal_Utility {
             echo "FAILED: {$this->smarty->compile_dir} is not writable.\n";
         else
             echo "{$this->smarty->compile_dir} is OK.\n";
-    
+
         echo "Testing plugins directory...\n";
-    
+
         foreach((array)$this->smarty->plugins_dir as $plugin_dir) {
             if (!is_dir($plugin_dir))
                 echo "FAILED: $plugin_dir is not a directory.\n";
@@ -188,9 +194,9 @@ class Smarty_Internal_Utility {
             else
                 echo "$plugin_dir is OK.\n";
         } 
-    
+
         echo "Testing cache directory...\n";
-    
+
         if (!is_dir($this->smarty->cache_dir))
             echo "FAILED: {$this->smarty->cache_dir} is not a directory.\n";
         elseif (!is_readable($this->smarty->cache_dir))
@@ -199,21 +205,20 @@ class Smarty_Internal_Utility {
             echo "FAILED: {$this->smarty->cache_dir} is not writable.\n";
         else
             echo "{$this->smarty->cache_dir} is OK.\n";
-    
+
         echo "Testing configs directory...\n";
-    
+
         if (!is_dir($this->smarty->config_dir))
             echo "FAILED: {$this->smarty->config_dir} is not a directory.\n";
         elseif (!is_readable($this->smarty->config_dir))
             echo "FAILED: {$this->smarty->config_dir} is not readable.\n";
         else
             echo "{$this->smarty->config_dir} is OK.\n";
-    
+
         echo "Tests complete.\n";
-    
+
         echo "
\n"; - + return true; } - }