2016-02-14 02:54:38 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  { make_nocache }  Runtime  Methods  save (),  store () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package     Smarty 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ subpackage  PluginsInternal 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author      Uwe  Tews 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  Smarty_Internal_Runtime_Make_Nocache  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Save  current  variable  value  while  rendering  compiled  template  and  inject  nocache  code  to 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  assign  variable  value  in  cahed  template 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param  \Smarty_Internal_Template  $tpl 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param  string                     $var  variable  name 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ throws  \SmartyException 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  function  save ( Smarty_Internal_Template  $tpl ,  $var ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( isset ( $tpl -> tpl_vars [  $var  ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 20:43:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $export  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                preg_replace ( '/^Smarty_Variable::__set_state[(]|[)]$/' ,  '' ,  var_export ( $tpl -> tpl_vars [  $var  ],  true )); 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-14 02:54:38 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            if  ( preg_match ( '/(\w+)::__set_state/' ,  $export ,  $match ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                throw  new  SmartyException ( " { make_nocache  \$ { $var } } in template ' { $tpl -> source -> name } ': variable does contain object ' { $match [ 1 ] } ' not implementing method '__set_state' " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            echo  " /*%%SmartyNocache: { $tpl -> compiled -> nocache_hash } %%*/<?php  "  . 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 20:43:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                 addcslashes ( " \$ _smarty_tpl->smarty->ext->_make_nocache->store( \$ _smarty_tpl, ' { $var } ',  " ,  '\\' )  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 $export  .  " );?> \n /*/%%SmartyNocache: { $tpl -> compiled -> nocache_hash } %%*/ " ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-02-14 02:54:38 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Store  variable  value  saved  while  rendering  compiled  template  in  cached  template  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param  \Smarty_Internal_Template  $tpl 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param   string                    $var  variable  name 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param   array                     $properties 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  function  store ( Smarty_Internal_Template  $tpl ,  $var ,  $properties ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // do not overwrite existing nocache variables
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! isset ( $tpl -> tpl_vars [  $var  ])  ||  ! $tpl -> tpl_vars [  $var  ] -> nocache )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $newVar  =  new  Smarty_Variable (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            unset ( $properties [  'nocache'  ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            foreach  ( $properties  as  $k  =>  $v )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $newVar -> $k  =  $v ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $tpl -> tpl_vars [  $var  ]  =  $newVar ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}