gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

smarty_internal_compile_config_load.php (2376B)


      1 <?php
      2 /**
      3  * Smarty Internal Plugin Compile Config Load
      4  * Compiles the {config load} tag
      5  *
      6  * @package    Smarty
      7  * @subpackage Compiler
      8  * @author     Uwe Tews
      9  */
     10 
     11 /**
     12  * Smarty Internal Plugin Compile Config Load Class
     13  *
     14  * @package    Smarty
     15  * @subpackage Compiler
     16  */
     17 class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase
     18 {
     19     /**
     20      * Attribute definition: Overwrites base class.
     21      *
     22      * @var array
     23      * @see Smarty_Internal_CompileBase
     24      */
     25     public $required_attributes = array('file');
     26     /**
     27      * Attribute definition: Overwrites base class.
     28      *
     29      * @var array
     30      * @see Smarty_Internal_CompileBase
     31      */
     32     public $shorttag_order = array('file', 'section');
     33     /**
     34      * Attribute definition: Overwrites base class.
     35      *
     36      * @var array
     37      * @see Smarty_Internal_CompileBase
     38      */
     39     public $optional_attributes = array('section', 'scope');
     40 
     41     /**
     42      * Compiles code for the {config_load} tag
     43      *
     44      * @param  array  $args     array with attributes from parser
     45      * @param  object $compiler compiler object
     46      *
     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         // save possible attributes
     60         $conf_file = $_attr['file'];
     61         if (isset($_attr['section'])) {
     62             $section = $_attr['section'];
     63         } else {
     64             $section = 'null';
     65         }
     66         $scope = 'local';
     67         // scope setup
     68         if (isset($_attr['scope'])) {
     69             $_attr['scope'] = trim($_attr['scope'], "'\"");
     70             if (isset($_is_legal_scope[$_attr['scope']])) {
     71                 $scope = $_attr['scope'];
     72             } else {
     73                 $compiler->trigger_template_error('illegal value for "scope" attribute', $compiler->lex->taglineno);
     74             }
     75         }
     76         // create config object
     77         $_output = "<?php  Smarty_Internal_Extension_Config::configLoad(\$_smarty_tpl, $conf_file, $section, '$scope');?>";
     78 
     79         return $_output;
     80     }
     81 }