packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/includes/smarty/sysplugins/smarty_internal_compile_config_load.php
changeset 0 3906ca745819
equal deleted inserted replaced
-1:000000000000 0:3906ca745819
       
     1 <?php
       
     2 /**
       
     3  * Smarty Internal Plugin Compile Config Load
       
     4  *
       
     5  * Compiles the {config load} tag
       
     6  *
       
     7  * @package Smarty
       
     8  * @subpackage Compiler
       
     9  * @author Uwe Tews
       
    10  */
       
    11 
       
    12 /**
       
    13  * Smarty Internal Plugin Compile Config Load Class
       
    14  *
       
    15  * @package Smarty
       
    16  * @subpackage Compiler
       
    17  */
       
    18 class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase {
       
    19 
       
    20     /**
       
    21      * Attribute definition: Overwrites base class.
       
    22      *
       
    23      * @var array
       
    24      * @see Smarty_Internal_CompileBase
       
    25      */
       
    26     public $required_attributes = array('file');
       
    27     /**
       
    28      * Attribute definition: Overwrites base class.
       
    29      *
       
    30      * @var array
       
    31      * @see Smarty_Internal_CompileBase
       
    32      */
       
    33     public $shorttag_order = array('file','section');
       
    34     /**
       
    35      * Attribute definition: Overwrites base class.
       
    36      *
       
    37      * @var array
       
    38      * @see Smarty_Internal_CompileBase
       
    39      */
       
    40     public $optional_attributes = array('section', 'scope');
       
    41 
       
    42     /**
       
    43      * Compiles code for the {config_load} tag
       
    44      *
       
    45      * @param array  $args     array with attributes from parser
       
    46      * @param object $compiler compiler object
       
    47      * @return string compiled code
       
    48      */
       
    49     public function compile($args, $compiler)
       
    50     {
       
    51         static $_is_legal_scope = array('local' => true,'parent' => true,'root' => true,'global' => true);
       
    52         // check and get attributes
       
    53         $_attr = $this->getAttributes($compiler, $args);
       
    54 
       
    55         if ($_attr['nocache'] === true) {
       
    56             $compiler->trigger_template_error('nocache option not allowed', $compiler->lex->taglineno);
       
    57         }
       
    58 
       
    59 
       
    60         // save posible attributes
       
    61         $conf_file = $_attr['file'];
       
    62         if (isset($_attr['section'])) {
       
    63             $section = $_attr['section'];
       
    64         } else {
       
    65             $section = 'null';
       
    66         }
       
    67         $scope = 'local';
       
    68         // scope setup
       
    69         if (isset($_attr['scope'])) {
       
    70             $_attr['scope'] = trim($_attr['scope'], "'\"");
       
    71             if (isset($_is_legal_scope[$_attr['scope']])) {
       
    72                 $scope = $_attr['scope'];
       
    73            } else {
       
    74                 $compiler->trigger_template_error('illegal value for "scope" attribute', $compiler->lex->taglineno);
       
    75            }
       
    76         }
       
    77         // create config object
       
    78         $_output = "<?php  \$_config = new Smarty_Internal_Config($conf_file, \$_smarty_tpl->smarty, \$_smarty_tpl);";
       
    79         $_output .= "\$_config->loadConfigVars($section, '$scope'); ?>";
       
    80         return $_output;
       
    81     }
       
    82 
       
    83 }
       
    84 
       
    85 ?>