Вход Регистрация
Файл: sngine-v2.8/Script/includes/libs/Smarty/sysplugins/smarty_internal_method_append.php
Строк: 58
<?php

/**
 * Smarty Method Append
 *
 * Smarty::append() method
 *
 * @package    Smarty
 * @subpackage PluginsInternal
 * @author     Uwe Tews
 */
class Smarty_Internal_Method_Append
{
    
/**
     * Valid for all objects
     *
     * @var int
     */
    
public $objMap 7;

    
/**
     * appends values to template variables
     *
     * @api  Smarty::append()
     * @link http://www.smarty.net/docs/en/api.append.tpl
     *
     * @param Smarty_Internal_Data|Smarty_Internal_Template|Smarty $data
     * @param array|string                                            $tpl_var the template variable name(s)
     * @param mixed                                                   $value   the value to append
     * @param bool                                                    $merge   flag if array elements shall be merged
     * @param bool                                                    $nocache if true any output of this variable will
     *                                                                         be not cached
     *
     * @return Smarty_Internal_Data|Smarty_Internal_Template|Smarty
     */
    
public function append(Smarty_Internal_Data $data$tpl_var$value null$merge false$nocache false)
    {
        if (
is_array($tpl_var)) {
            
// $tpl_var is an array, ignore $value
            
foreach ($tpl_var as $_key => $_val) {
                if (
$_key !== '') {
                    
$this->append($data$_key$_val$merge$nocache);
                }
            }
        } else {
            if (
$tpl_var !== '' && isset($value)) {
                if (!isset(
$data->tpl_vars$tpl_var ])) {
                    
$tpl_var_inst $data->ext->getTemplateVars->_getVariable($data$tpl_varnulltruefalse);
                    if (
$tpl_var_inst instanceof Smarty_Undefined_Variable) {
                        
$data->tpl_vars$tpl_var ] = new Smarty_Variable(null$nocache);
                    } else {
                        
$data->tpl_vars$tpl_var ] = clone $tpl_var_inst;
                    }
                }
                if (!(
is_array($data->tpl_vars$tpl_var ]->value)
                      || 
$data->tpl_vars$tpl_var ]->value instanceof ArrayAccess)
                ) {
                    
settype($data->tpl_vars$tpl_var ]->value'array');
                }
                if (
$merge && is_array($value)) {
                    foreach (
$value as $_mkey => $_mval) {
                        
$data->tpl_vars$tpl_var ]->value$_mkey ] = $_mval;
                    }
                } else {
                    
$data->tpl_vars$tpl_var ]->value[] = $value;
                }
            }
            if (
$data->_isTplObj() && $data->scope) {
                
$data->ext->_updateScope->_updateScope($data$tpl_var);
            }
        }
        return 
$data;
    }
}
Онлайн: 1
Реклама