| 
									
										
										
										
											2010-02-07 03:03:48 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  | * Project:     Smarty: the PHP compiling template engine | 
					
						
							|  |  |  | * File:        smarty_internal_wrapper.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 <monte at ohrt dot com>  | 
					
						
							|  |  |  | * @author Uwe Tews  | 
					
						
							|  |  |  | * @package Smarty | 
					
						
							| 
									
										
										
										
											2010-02-07 11:09:28 +00:00
										 |  |  | * @subpackage PluginsInternal | 
					
						
							| 
									
										
										
										
											2010-02-07 03:03:48 +00:00
										 |  |  | * @version 3-SVN$Rev: 3286 $ | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |  * Smarty Backward Compatability Wrapper | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Smarty_Internal_Wrapper { | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |     protected $smarty; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function __construct($smarty) { | 
					
						
							|  |  |  |       $this->smarty = $smarty; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |     * Converts smarty2-style function call to smarty 3-style function call | 
					
						
							|  |  |  |     * This is expensive, be sure to port your code to Smarty 3! | 
					
						
							|  |  |  |     *  | 
					
						
							|  |  |  |     * @param string $name Smarty 2 function name | 
					
						
							|  |  |  |     * @param array $args Smarty 2 function args | 
					
						
							|  |  |  |     */ | 
					
						
							|  |  |  |     function convert($name, $args) { | 
					
						
							|  |  |  |        // throw notice about deprecated function
 | 
					
						
							|  |  |  |        if($this->smarty->deprecation_notices) | 
					
						
							|  |  |  |          trigger_error("function call '$name' is unknown or deprecated.",E_USER_NOTICE); | 
					
						
							|  |  |  |        // get first and last part of function name
 | 
					
						
							|  |  |  |        $name_parts = explode('_',$name,2); | 
					
						
							|  |  |  |        switch($name_parts[0]) { | 
					
						
							|  |  |  |          case 'register': | 
					
						
							|  |  |  |          case 'unregister': | 
					
						
							|  |  |  |            $myobj = $name_parts[0] == 'register' ? $this->smarty->register : $this->smarty->unregister; | 
					
						
							|  |  |  |            switch($name_parts[1]) { | 
					
						
							|  |  |  |               case 'function': | 
					
						
							|  |  |  |                  return call_user_func_array(array($myobj,'templateFunction'),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |               case 'object': | 
					
						
							|  |  |  |                  return call_user_func_array(array($myobj,'templateObject'),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |               case 'compiler_function': | 
					
						
							|  |  |  |                  return call_user_func_array(array($myobj,'compilerFunction'),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |               default: | 
					
						
							|  |  |  |                  return call_user_func_array(array($myobj,$name_parts[1]),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            break; | 
					
						
							|  |  |  |            case 'get': | 
					
						
							|  |  |  |            switch($name_parts[1]) { | 
					
						
							|  |  |  |               case 'template_vars': | 
					
						
							| 
									
										
										
										
											2010-02-08 17:41:48 +00:00
										 |  |  |                  return call_user_func_array(array($this->smarty,'getTemplateVars'),$args); | 
					
						
							| 
									
										
										
										
											2010-02-07 03:03:48 +00:00
										 |  |  |                  break; | 
					
						
							|  |  |  |               case 'config_vars': | 
					
						
							|  |  |  |                  return call_user_func_array(array($this->smarty,'getConfigVars'),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |               default: | 
					
						
							|  |  |  |                  return call_user_func_array(array($myobj,$name_parts[1]),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            break; | 
					
						
							|  |  |  |            case 'clear': | 
					
						
							|  |  |  |            switch($name_parts[1]) { | 
					
						
							|  |  |  |               case 'all_assign': | 
					
						
							|  |  |  |                  return call_user_func_array(array($this->smarty,'clearAllAssign'),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            break; | 
					
						
							|  |  |  |            case 'config': | 
					
						
							|  |  |  |            switch($name_parts[1]) { | 
					
						
							|  |  |  |               case 'load': | 
					
						
							|  |  |  |                  return call_user_func_array(array($this->smarty,'configLoad'),$args); | 
					
						
							|  |  |  |                  break; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            break; | 
					
						
							|  |  |  |            default: | 
					
						
							|  |  |  |              // convert foo_bar_baz to fooBarBaz style names
 | 
					
						
							|  |  |  |              $name_parts = explode('_',$name); | 
					
						
							|  |  |  |              foreach($name_parts as $idx=>$part) { | 
					
						
							|  |  |  |                 if($idx==0) | 
					
						
							|  |  |  |                   $name_parts[$idx] = strtolower($part); | 
					
						
							|  |  |  |                 else | 
					
						
							|  |  |  |                   $name_parts[$idx] = ucfirst($part); | 
					
						
							|  |  |  |              } | 
					
						
							|  |  |  |              $func_name = implode('',$name_parts); | 
					
						
							|  |  |  |              if(!method_exists($this->smarty,$func_name)) { | 
					
						
							|  |  |  |                 throw new Exception("unknown method '$name'"); | 
					
						
							|  |  |  |                 return false; | 
					
						
							|  |  |  |              } | 
					
						
							|  |  |  |              return call_user_func_array(array($this->smarty,$func_name),$args); | 
					
						
							|  |  |  |            break; | 
					
						
							|  |  |  |        } | 
					
						
							|  |  |  |        return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-07 11:09:28 +00:00
										 |  |  | ?>
 |