1<?php 2/** 3 * Smarty Internal Plugin Compile Object Block Function 4 * Compiles code for registered objects as block function 5 * 6 * @package Smarty 7 * @subpackage Compiler 8 * @author Uwe Tews 9 */ 10 11/** 12 * Smarty Internal Plugin Compile Object Block Function Class 13 * 14 * @package Smarty 15 * @subpackage Compiler 16 */ 17class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Internal_Compile_Private_Block_Plugin 18{ 19 /** 20 * Setup callback and parameter array 21 * 22 * @param \Smarty_Internal_TemplateCompilerBase $compiler 23 * @param array $_attr attributes 24 * @param string $tag 25 * @param string $method 26 * 27 * @return array 28 */ 29 public function setup(Smarty_Internal_TemplateCompilerBase $compiler, $_attr, $tag, $method) 30 { 31 $_paramsArray = array(); 32 foreach ($_attr as $_key => $_value) { 33 if (is_int($_key)) { 34 $_paramsArray[] = "$_key=>$_value"; 35 } else { 36 $_paramsArray[] = "'$_key'=>$_value"; 37 } 38 } 39 $callback = array("\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]", "->{$method}"); 40 return array($callback, $_paramsArray, "array(\$_block_plugin{$this->nesting}, '{$method}')"); 41 } 42} 43