A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.8 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Smarty Method AppendByRef
 | 
						|
 *
 | 
						|
 * Smarty::appendByRef() method
 | 
						|
 *
 | 
						|
 * @package    Smarty
 | 
						|
 * @subpackage PluginsInternal
 | 
						|
 * @author     Uwe Tews
 | 
						|
 */
 | 
						|
class Smarty_Internal_Method_AppendByRef
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * appends values to template variables by reference
 | 
						|
     *
 | 
						|
     * @api  Smarty::appendByRef()
 | 
						|
     * @link http://www.smarty.net/docs/en/api.append.by.ref.tpl
 | 
						|
     *
 | 
						|
     * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
 | 
						|
     * @param string                                                  $tpl_var the template variable name
 | 
						|
     * @param mixed                                                   &$value  the referenced value to append
 | 
						|
     * @param bool                                                    $merge   flag if array elements shall be merged
 | 
						|
     *
 | 
						|
     * @return \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty
 | 
						|
     */
 | 
						|
    public static function appendByRef(Smarty_Internal_Data $data, $tpl_var, &$value, $merge = false)
 | 
						|
    {
 | 
						|
        if ($tpl_var !== '' && isset($value)) {
 | 
						|
            if (!isset($data->tpl_vars[ $tpl_var ])) {
 | 
						|
                $data->tpl_vars[ $tpl_var ] = new Smarty_Variable();
 | 
						|
            }
 | 
						|
            if (!is_array($data->tpl_vars[ $tpl_var ]->value)) {
 | 
						|
                settype($data->tpl_vars[ $tpl_var ]->value, 'array');
 | 
						|
            }
 | 
						|
            if ($merge && is_array($value)) {
 | 
						|
                foreach ($value as $_key => $_val) {
 | 
						|
                    $data->tpl_vars[ $tpl_var ]->value[ $_key ] = &$value[ $_key ];
 | 
						|
                }
 | 
						|
            } else {
 | 
						|
                $data->tpl_vars[ $tpl_var ]->value[] = &$value;
 | 
						|
            }
 | 
						|
            if ($data->_isTplObj() && $data->scope) {
 | 
						|
                $data->ext->_updateScope->_updateScope($data, $tpl_var);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $data;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |