]> git.mxchange.org Git - friendica.git/blobdiff - library/Smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php
reverting tinymce changes, updating smarty to 3.1.19
[friendica.git] / library / Smarty / libs / sysplugins / smarty_internal_compile_private_special_variable.php
index 4760dbe3f59a40aaccbd3d93ea20d42c7f5be6e7..23b17ae1410206eb48b570c4cf39ad312f3144a9 100644 (file)
@@ -1,32 +1,33 @@
 <?php
 /**
  * Smarty Internal Plugin Compile Special Smarty Variable
- *
  * Compiles the special $smarty variables
  *
- * @package Smarty
+ * @package    Smarty
  * @subpackage Compiler
- * @author Uwe Tews
+ * @author     Uwe Tews
  */
 
 /**
  * Smarty Internal Plugin Compile special Smarty Variable Class
  *
- * @package Smarty
+ * @package    Smarty
  * @subpackage Compiler
  */
-class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_CompileBase {
-
+class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_CompileBase
+{
     /**
-     * Compiles code for the speical $smarty variables
+     * Compiles code for the special $smarty variables
+     *
+     * @param  array  $args     array with attributes from parser
+     * @param  object $compiler compiler object
+     * @param         $parameter
      *
-     * @param array  $args     array with attributes from parser
-     * @param object $compiler compiler object
      * @return string compiled code
      */
     public function compile($args, $compiler, $parameter)
     {
-        $_index = preg_split("/\]\[/",substr($parameter, 1, strlen($parameter)-2));
+        $_index = preg_split("/\]\[/", substr($parameter, 1, strlen($parameter) - 2));
         $compiled_ref = ' ';
         $variable = trim($_index[0], "'");
         switch ($variable) {
@@ -56,7 +57,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
                     $compiler->trigger_template_error("(secure mode) super globals not permitted");
                     break;
                 }
-                $compiled_ref = '$_'.strtoupper($variable);
+                $compiled_ref = '$_' . strtoupper($variable);
                 break;
 
             case 'template':
@@ -70,6 +71,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
 
             case 'version':
                 $_version = Smarty::SMARTY_VERSION;
+
                 return "'$_version'";
 
             case 'const':
@@ -77,16 +79,23 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
                     $compiler->trigger_template_error("(secure mode) constants not permitted");
                     break;
                 }
-                return '@' . trim($_index[1], "'");
+
+                return "@constant({$_index[1]})";
 
             case 'config':
-                return "\$_smarty_tpl->getConfigVariable($_index[1])";
+                if (isset($_index[2])) {
+                    return "(is_array(\$tmp = \$_smarty_tpl->getConfigVariable($_index[1])) ? \$tmp[$_index[2]] : null)";
+                } else {
+                    return "\$_smarty_tpl->getConfigVariable($_index[1])";
+                }
             case 'ldelim':
                 $_ldelim = $compiler->smarty->left_delimiter;
+
                 return "'$_ldelim'";
 
             case 'rdelim':
                 $_rdelim = $compiler->smarty->right_delimiter;
+
                 return "'$_rdelim'";
 
             default:
@@ -99,9 +108,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
                 $compiled_ref = $compiled_ref . "[$_ind]";
             }
         }
+
         return $compiled_ref;
     }
-
 }
-
-?>
\ No newline at end of file