cvs: smarty /libs Smarty.class.php /libs/core core.display_debug_console.php core.fetch_resource_info.php core.get_php_resource.php core.parse_resource_name.php core.process_cached_inserts.php core.read_cache_file.php core.run_insert_handler.php core.smarty_include.php core.smarty_include_php.php /libs/plugins function.eval.php

"Messju Mohr" <[email protected]>
Newsgroups gmane.comp.php.cvs.smarty
Message-ID <cvsmessju1058976887@cvsserver>
messju		Wed Jul 23 12:14:47 2003 EDT

  Removed files:               
    /smarty/libs/core	core.fetch_resource_info.php 
                     	core.parse_resource_name.php 

  Modified files:              
    /smarty/libs	Smarty.class.php 
    /smarty/libs/core	core.display_debug_console.php 
                     	core.get_php_resource.php 
                     	core.process_cached_inserts.php 
                     	core.read_cache_file.php 
                     	core.run_insert_handler.php 
                     	core.smarty_include.php 
                     	core.smarty_include_php.php 
    /smarty/libs/plugins	function.eval.php 
  Log:
  moved  _fetch_resource_info and _parse_resource_name back into Smarty.class.php
  renamed smarty_include and smarty_eval wrappers to _include and _eval

-- 
Smarty CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
messju-20030723121447.txt (text/plain, 15.5 KB)
Index: smarty/libs/Smarty.class.php
diff -u smarty/libs/Smarty.class.php:1.422 smarty/libs/Smarty.class.php:1.423
--- smarty/libs/Smarty.class.php:1.422	Sun Jun 29 20:07:27 2003
+++ smarty/libs/Smarty.class.php	Wed Jul 23 12:14:47 2003
@@ -42,7 +42,7 @@
  * @version 2.5.0-cvs
  */
 
-/* $Id: Smarty.class.php,v 1.422 2003/06/30 00:07:27 messju Exp $ */
+/* $Id: Smarty.class.php,v 1.423 2003/07/23 16:14:47 messju Exp $ */
 
 /**
  * DIR_SEP isn't used anymore, but third party apps might
@@ -1099,8 +1099,7 @@
     function template_exists($tpl_file)
     {
 		$_params = array('resource_name' => $tpl_file);
-		require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.fetch_resource_info.php');
-        return smarty_core_fetch_resource_info($_params, $this);
+        return $this->_fetch_resource_info($_params);
     }
 
     /**
@@ -1460,9 +1459,8 @@
                 return true;
             } else {
                 // get file source and timestamp
-				require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.fetch_resource_info.php');
 				$_params = array('resource_name' => $resource_name);
-                if (!smarty_core_fetch_resource_info($_params, $this)) {
+                if (!$this->_fetch_resource_info($_params, $this)) {
                     return false;
                 }
                 if ($_params['resource_timestamp'] <= filemtime($compile_path)) {
@@ -1490,8 +1488,7 @@
     {
 		
 		$_params = array('resource_name' => $resource_name);
-		require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.fetch_resource_info.php');
-        if (!smarty_core_fetch_resource_info($_params, $this)) {
+        if (!$this->_fetch_resource_info($_params)) {
             return false;
         }
 
@@ -1596,6 +1593,153 @@
     }
 
     /**
+     * fetch the template info. Gets timestamp, and source
+     * if get_source is true
+     *
+     * sets $source_content to the source of the template, and
+     * $resource_timestamp to its time stamp
+     * @param string $resource_name
+     * @param string $source_content
+     * @param integer $resource_timestamp
+     * @param boolean $get_source
+     * @param boolean $quiet
+     * @return boolean
+     */
+
+    function _fetch_resource_info(&$params)
+    {
+			
+        if(!isset($params['get_source'])) { $params['get_source'] = true; }
+        if(!isset($params['quiet'])) { $params['quiet'] = false; }
+	
+        $_return = false;
+        $_params = array('resource_name' => $params['resource_name']) ;
+        if ($this->_parse_resource_name($_params)) {
+            $_resource_type = $_params['resource_type'];
+            $_resource_name = $_params['resource_name'];
+            switch ($_resource_type) {
+                case 'file':
+                    if ($params['get_source']) {
+                        $params['source_content'] = $this->_read_file($_resource_name);
+                    }
+                    $params['resource_timestamp'] = filemtime($_resource_name);
+                    $_return = true;
+                    break;
+
+                default:                    
+                    // call resource functions to fetch the template source and timestamp
+                    if ($params['get_source']) {
+                        $_source_return = isset($this->_plugins['resource'][$_resource_type]) &&
+                            call_user_func_array($this->_plugins['resource'][$_resource_type][0][0],
+                                                 array($_resource_name, &$params['source_content'], &$this));
+                    } else {
+                        $_source_return = true;
+                    }
+
+                    $_timestamp_return = isset($this->_plugins['resource'][$_resource_type]) &&
+                        call_user_func_array($this->_plugins['resource'][$_resource_type][0][1],
+                                             array($_resource_name, &$params['resource_timestamp'], &$this));
+
+                    $_return = $_source_return && $_timestamp_return;
+                    break;
+            }
+        }
+	
+        if (!$_return) {
+            // see if we can get a template with the default template handler
+            if (!empty($this->default_template_handler_func)) {
+                if (!$this->_plugin_implementation_exists($this->default_template_handler_func)) {
+                    $this->trigger_error("default template handler function \"$this->default_template_handler_func\" doesn't exist.");
+                } else {
+                    $_return = call_user_func_array(
+                        $this->default_template_handler_func,
+                        array($_resource_type, $_resource_name, &$params['source_content'], &$params['resource_timestamp'], &$this));
+                }
+            }
+        }
+
+        if (!$_return) {
+            if (!$params['quiet']) {
+                $this->trigger_error('unable to read resource: "' . $params['resource_name'] . '"');
+            }
+        } else if ($_return && $this->security) {
+            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
+            if (!smarty_core_is_secure($_params, $this)) {
+                if (!$params['quiet'])
+                    $this->trigger_error('(secure mode) accessing "' . $params['resource_name'] . '" is not allowed');
+                $params['source_content'] = null;
+                $params['resource_timestamp'] = null;
+                return false;
+            }
+        }
+        return $_return;
+    }
+
+
+    /**
+     * parse out the type and name from the resource
+     *
+     * @param string $resource_base_path
+     * @param string $resource_name
+     * @param string $resource_type
+     * @param string $resource_name
+     * @return boolean
+     */
+ 
+    function _parse_resource_name(&$params)
+    {
+		
+        // split tpl_path by the first colon
+        $_resource_name_parts = explode(':', $params['resource_name'], 2);
+		
+        if (count($_resource_name_parts) == 1) {
+            // no resource type given
+            $params['resource_type'] = $this->default_resource_type;
+            $params['resource_name'] = $_resource_name_parts[0];
+        } else {
+            if(strlen($_resource_name_parts[0]) == 1) {
+                // 1 char is not resource type, but part of filepath
+                $params['resource_type'] = $this->default_resource_type;
+                $params['resource_name'] = $params['resource_name'];	
+            } else {
+                $params['resource_type'] = $_resource_name_parts[0];
+                $params['resource_name'] = $_resource_name_parts[1];
+            }
+        }	
+		
+        if ($params['resource_type'] == 'file') {
+            if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $params['resource_name'])) {
+                // relative pathname to $params['resource_base_path']
+                // use the first directory where the file is found
+                $_resource_base_path = isset($params['resource_base_path']) ? $params['resource_base_path'] : array($this->template_dir, '.');
+                settype($_resource_base_path, 'array');
+                foreach ($_resource_base_path as $_curr_path) {
+                    $_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $params['resource_name'];
+                    if (file_exists($_fullpath) && is_file($_fullpath)) {
+                        $params['resource_name'] = $_fullpath;
+                        return true;
+                    }
+                    // didn't find the file, try include_path
+                    $_params = array('file_path' => $_fullpath);
+                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
+                    if(smarty_core_get_include_path($_params, $smarty)) {
+                        $params['resource_name'] = $_params['new_file_path'];
+                        return true;
+                    }
+                }
+                return false;
+            }
+        } else {
+            $_params = array('type' => $params['resource_type']);
+            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_resource_plugin.php');
+            smarty_core_load_resource_plugin($_params, $this);
+        }
+
+        return true;
+    }
+
+
+    /**
      * Handle modifiers
      *
      * @param string|null $modifier_name
@@ -1800,7 +1944,7 @@
      * wrapper for include() retaining $this
      * @return mixed
      */
-    function smarty_include($filename, $once=false)
+    function _include($filename, $once=false)
     {
         if ($once) {
             return include_once($filename);
@@ -1814,7 +1958,7 @@
      * wrapper for eval() retaining $this
      * @return mixed
      */
-    function smarty_eval($code)
+    function _eval($code)
     {
         return eval($code);
     }
Index: smarty/libs/core/core.display_debug_console.php
diff -u smarty/libs/core/core.display_debug_console.php:1.5 smarty/libs/core/core.display_debug_console.php:1.6
--- smarty/libs/core/core.display_debug_console.php:1.5	Sun Jun 29 20:08:28 2003
+++ smarty/libs/core/core.display_debug_console.php	Wed Jul 23 12:14:47 2003
@@ -40,7 +40,7 @@
 	if ($smarty->_compile_resource($smarty->debug_tpl, $_compile_path))
 	{
 		ob_start();
-		$smarty->smarty_include($_compile_path);
+		$smarty->_include($_compile_path);
 		$_results = ob_get_contents();
 		ob_end_clean();
 	} else {
Index: smarty/libs/core/core.get_php_resource.php
diff -u smarty/libs/core/core.get_php_resource.php:1.4 smarty/libs/core/core.get_php_resource.php:1.5
--- smarty/libs/core/core.get_php_resource.php:1.4	Sat Jun 21 23:13:25 2003
+++ smarty/libs/core/core.get_php_resource.php	Wed Jul 23 12:14:47 2003
@@ -19,8 +19,7 @@
 {
 	
 	$params['resource_base_path'] = $smarty->trusted_dir;	
-	require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.parse_resource_name.php');
-	smarty_core_parse_resource_name($params, $smarty);
+	$smarty->_parse_resource_name($params, $smarty);
 		
     /*
      * Find out if the resource exists.
Index: smarty/libs/core/core.process_cached_inserts.php
diff -u smarty/libs/core/core.process_cached_inserts.php:1.4 smarty/libs/core/core.process_cached_inserts.php:1.5
--- smarty/libs/core/core.process_cached_inserts.php:1.4	Sun Jun 29 20:08:28 2003
+++ smarty/libs/core/core.process_cached_inserts.php	Wed Jul 23 12:14:47 2003
@@ -38,9 +38,9 @@
 
 
             if ($resource_type == 'file') {
-                $smarty->smarty_include($php_resource, true);
+                $smarty->_include($php_resource, true);
             } else {
-                $smarty->smarty_eval($php_resource);
+                $smarty->_eval($php_resource);
             }
         }
 
Index: smarty/libs/core/core.read_cache_file.php
diff -u smarty/libs/core/core.read_cache_file.php:1.8 smarty/libs/core/core.read_cache_file.php:1.9
--- smarty/libs/core/core.read_cache_file.php:1.8	Thu Jul 17 15:25:22 2003
+++ smarty/libs/core/core.read_cache_file.php	Wed Jul 23 12:14:47 2003
@@ -68,10 +68,9 @@
     }
 
     if ($smarty->compile_check) {
-		require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.fetch_resource_info.php');
         foreach (array_keys($smarty->_cache_info['template']) as $_template_dep) {
 			$_params = array('resource_name' => $_template_dep);
-			smarty_core_fetch_resource_info($_params, $smarty);
+			$smarty->_fetch_resource_info($_params);
             if ($smarty->_cache_info['timestamp'] < $_params['resource_timestamp']) {
                 // template file has changed, regenerate cache
                 return false;
@@ -79,10 +78,9 @@
         }
 
         if (isset($smarty->_cache_info['config'])) {
-			require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.fetch_resource_info.php');
             foreach (array_keys($smarty->_cache_info['config']) as $_config_dep) {
 				$_params = array('resource_name' => $_config_dep);
-				smarty_core_fetch_resource_info($_params, $smarty);
+				$smarty->_fetch_resource_info($_params);
             	if ($smarty->_cache_info['timestamp'] < $_params['resource_timestamp']) {
                 	// config file has changed, regenerate cache
                 	return false;
@@ -93,7 +91,7 @@
 
     foreach ($smarty->_cache_info['cache_serials'] as $_include_file_path=>$_cache_serial) {
         if (empty($smarty->_cache_serials[$_include_file_path])) {
-            $smarty->smarty_include($_include_file_path, true);
+            $smarty->_include($_include_file_path, true);
         }
         
         if ($smarty->_cache_serials[$_include_file_path] != $_cache_serial) {
Index: smarty/libs/core/core.run_insert_handler.php
diff -u smarty/libs/core/core.run_insert_handler.php:1.4 smarty/libs/core/core.run_insert_handler.php:1.5
--- smarty/libs/core/core.run_insert_handler.php:1.4	Sun Jun 29 20:08:28 2003
+++ smarty/libs/core/core.run_insert_handler.php	Wed Jul 23 12:14:47 2003
@@ -40,9 +40,9 @@
 			}
 
             if ($_params['resource_type'] == 'file') {
-                $smarty->smarty_include_once($_params['php_resource']);
+                $smarty->_include($_params['php_resource'], true);
             } else {
-                $smarty->smarty_eval($_params['php_resource']);
+                $smarty->_eval($_params['php_resource']);
             }
             unset($params['args']['script']);
         }
Index: smarty/libs/core/core.smarty_include.php
diff -u smarty/libs/core/core.smarty_include.php:1.6 smarty/libs/core/core.smarty_include.php:1.7
--- smarty/libs/core/core.smarty_include.php:1.6	Sun Jun 29 18:57:33 2003
+++ smarty/libs/core/core.smarty_include.php	Wed Jul 23 12:14:47 2003
@@ -38,7 +38,7 @@
     if ($smarty->_is_compiled($params['smarty_include_tpl_file'], $_smarty_compile_path)
         || $smarty->_compile_resource($params['smarty_include_tpl_file'], $_smarty_compile_path))
     {
-        $smarty->smarty_include($_smarty_compile_path);
+        $smarty->_include($_smarty_compile_path);
     }
 
     // pop the local vars off the front of the stack
Index: smarty/libs/core/core.smarty_include_php.php
diff -u smarty/libs/core/core.smarty_include_php.php:1.5 smarty/libs/core/core.smarty_include_php.php:1.6
--- smarty/libs/core/core.smarty_include_php.php:1.5	Sun Jun 29 18:57:33 2003
+++ smarty/libs/core/core.smarty_include_php.php	Wed Jul 23 12:14:47 2003
@@ -31,17 +31,17 @@
     if (!empty($params['smarty_assign'])) {
         ob_start();
         if ($_smarty_resource_type == 'file') {
-            $smarty->smarty_include($_smarty_php_resource, $params['smarty_once']);
+            $smarty->_include($_smarty_php_resource, $params['smarty_once']);
         } else {
-            $smarty->smarty_eval($_smarty_php_resource);
+            $smarty->_eval($_smarty_php_resource);
         }
         $smarty->assign($params['smarty_assign'], ob_get_contents());
         ob_end_clean();
     } else {
         if ($_smarty_resource_type == 'file') {
-            $smarty->smarty_include($_smarty_php_resource, $params['smarty_once']);
+            $smarty->_include($_smarty_php_resource, $params['smarty_once']);
         } else {
-            $smarty->smarty_eval($_smarty_php_resource);
+            $smarty->_eval($_smarty_php_resource);
         }
     }
 }
Index: smarty/libs/plugins/function.eval.php
diff -u smarty/libs/plugins/function.eval.php:1.11 smarty/libs/plugins/function.eval.php:1.12
--- smarty/libs/plugins/function.eval.php:1.11	Thu Jul 17 10:23:18 2003
+++ smarty/libs/plugins/function.eval.php	Wed Jul 23 12:14:47 2003
@@ -32,7 +32,7 @@
     $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled);
 
     ob_start();
-    $smarty->smarty_eval('?>' . $_var_compiled);
+    $smarty->_eval('?>' . $_var_compiled);
     $_contents = ob_get_contents();
     ob_end_clean();
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.