]> git.mxchange.org Git - friendica.git/blobdiff - library/Smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php
reverting tinymce changes, updating smarty to 3.1.19
[friendica.git] / library / Smarty / libs / sysplugins / smarty_internal_compile_private_object_function.php
index f649084c3972823a7ad9f9e4b3b60f2dca58cf9b..d6eb47ab34d37378ad571ce79b6368ae1aee3943 100644 (file)
@@ -1,22 +1,21 @@
 <?php
 /**
- * Smarty Internal Plugin Compile Object Funtion
- *
+ * Smarty Internal Plugin Compile Object Function
  * Compiles code for registered objects as function
  *
- * @package Smarty
+ * @package    Smarty
  * @subpackage Compiler
- * @author Uwe Tews
+ * @author     Uwe Tews
  */
 
 /**
  * Smarty Internal Plugin Compile Object Function Class
  *
- * @package Smarty
+ * @package    Smarty
  * @subpackage Compiler
  */
-class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_CompileBase
+{
     /**
      * Attribute definition: Overwrites base class.
      *
@@ -28,11 +27,12 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
     /**
      * Compiles code for the execution of function plugin
      *
-     * @param array  $args      array with attributes from parser
-     * @param object $compiler  compiler object
-     * @param array  $parameter array with compilation parameter
-     * @param string $tag       name of function
-     * @param string $method    name of method to call
+     * @param  array  $args      array with attributes from parser
+     * @param  object $compiler  compiler object
+     * @param  array  $parameter array with compilation parameter
+     * @param  string $tag       name of function
+     * @param  string $method    name of method to call
+     *
      * @return string compiled code
      */
     public function compile($args, $compiler, $parameter, $tag, $method)
@@ -48,22 +48,29 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
             $_assign = $_attr['assign'];
             unset($_attr['assign']);
         }
-        // convert attributes into parameter array string
-        if ($compiler->smarty->registered_objects[$tag][2]) {
-            $_paramsArray = array();
-            foreach ($_attr as $_key => $_value) {
-                if (is_int($_key)) {
-                    $_paramsArray[] = "$_key=>$_value";
-                } else {
-                    $_paramsArray[] = "'$_key'=>$_value";
+        // method or property ?
+        if (method_exists($compiler->smarty->registered_objects[$tag][0], $method)) {
+            // convert attributes into parameter array string
+            if ($compiler->smarty->registered_objects[$tag][2]) {
+                $_paramsArray = array();
+                foreach ($_attr as $_key => $_value) {
+                    if (is_int($_key)) {
+                        $_paramsArray[] = "$_key=>$_value";
+                    } else {
+                        $_paramsArray[] = "'$_key'=>$_value";
+                    }
                 }
+                $_params = 'array(' . implode(",", $_paramsArray) . ')';
+                $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params},\$_smarty_tpl)";
+            } else {
+                $_params = implode(",", $_attr);
+                $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params})";
             }
-            $_params = 'array(' . implode(",", $_paramsArray) . ')';
-            $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params},\$_smarty_tpl)";
         } else {
-            $_params = implode(",", $_attr);
-            $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}({$_params})";
+            // object property
+            $return = "\$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$method}";
         }
+
         if (empty($_assign)) {
             // This tag does create output
             $compiler->has_output = true;
@@ -71,9 +78,7 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
         } else {
             $output = "<?php \$_smarty_tpl->assign({$_assign},{$return});?>\n";
         }
+
         return $output;
     }
-
 }
-
-?>
\ No newline at end of file