Вход Регистрация
Файл: sngine-v2.8/Script/includes/libs/Smarty/sysplugins/smarty_internal_compile_private_registered_block.php
Строк: 60
<?php
/**
 * Smarty Internal Plugin Compile Registered Block
 * Compiles code for the execution of a registered block function
 *
 * @package    Smarty
 * @subpackage Compiler
 * @author     Uwe Tews
 */

/**
 * Smarty Internal Plugin Compile Registered Block Class
 *
 * @package    Smarty
 * @subpackage Compiler
 */
class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_Compile_Private_Block_Plugin
{
    
/**
     * Setup callback, parameter array and nocache mode
     *
     * @param Smarty_Internal_TemplateCompilerBase $compiler
     * @param array                                 $_attr attributes
     * @param string                                $tag
     * @param null                                  $function
     *
     * @return array
     */
    
public function setup(Smarty_Internal_TemplateCompilerBase $compiler$_attr$tag$function)
    {
        if (isset(
$compiler->smarty->registered_pluginsSmarty::PLUGIN_BLOCK ][ $tag ])) {
            
$tag_info $compiler->smarty->registered_pluginsSmarty::PLUGIN_BLOCK ][ $tag ];
            
$callback $tag_info];
            if (
is_array($callback)) {
                if (
is_object($callback])) {
                    
$callable "array($_block_plugin{$this->nesting}, '{$callback[1]}')";
                    
$callback =
                        array(
"$_smarty_tpl->smarty->registered_plugins['block']['{$tag}'][0][0]""->{$callback[1]}");
                } else {
                    
$callable "array($_block_plugin{$this->nesting}, '{$callback[1]}')";
                    
$callback =
                        array(
"$_smarty_tpl->smarty->registered_plugins['block']['{$tag}'][0][0]""::{$callback[1]}");
                }
            } else {
                
$callable "$_block_plugin{$this->nesting}";
                
$callback = array("$_smarty_tpl->smarty->registered_plugins['block']['{$tag}'][0]"'');
            }
        } else {
            
$tag_info $compiler->default_handler_pluginsSmarty::PLUGIN_BLOCK ][ $tag ];
            
$callback $tag_info];
            if (
is_array($callback)) {
                
$callable "array('{$callback[0]}', '{$callback[1]}')";
                
$callback "{$callback[1]}::{$callback[1]}";
            } else {
                
$callable null;
            }
        }
        
$compiler->tag_nocache = !$tag_info] | $compiler->tag_nocache;
        
$_paramsArray = array();
        foreach (
$_attr as $_key => $_value) {
            if (
is_int($_key)) {
                
$_paramsArray[] = "$_key=>$_value";
            } elseif (
$compiler->template->caching && in_array($_key$tag_info])) {
                
$_value str_replace(''', "^#^", $_value);
                $_paramsArray[] = "'
$_key'=>^#^.var_export($_value,true).^#^";
            } else {
                $_paramsArray[] = "'
$_key'=>$_value";
            }
        }
        return array($callback, $_paramsArray, $callable);
    }
}
Онлайн: 0
Реклама