1 <?php
3 /**
4 * Smarty Internal Plugin Compile Config Load
5 *
6 * Compiles the {config load} tag
7 *
8 * @package Smarty
9 * @subpackage Compiler
10 * @author Uwe Tews
11 */
12 /**
13 * Smarty Internal Plugin Compile Config Load Class
14 */
15 class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_CompileBase {
16 /**
17 * Compiles code for the {config_load} tag
18 *
19 * @param array $args array with attributes from parser
20 * @param object $compiler compiler object
21 * @return string compiled code
22 */
23 public function compile($args, $compiler)
24 {
25 $this->compiler = $compiler;
26 $this->required_attributes = array('file');
27 $this->optional_attributes = array('section', 'scope');
28 // check and get attributes
29 $_attr = $this->_get_attributes($args);
30 // save posible attributes
31 $conf_file = $_attr['file'];
32 if (isset($_attr['section'])) {
33 $section = $_attr['section'];
34 } else {
35 $section = 'null';
36 }
37 $scope = '$_smarty_tpl->smarty';
38 if (isset($_attr['scope'])) {
39 if ($_attr['scope'] == '\'local\'') {
40 $scope = '$_smarty_tpl';
41 } elseif ($_attr['scope'] == '\'parent\'') {
42 $scope = '$_smarty_tpl->parent';
43 }
44 }
46 // create config object
47 $_output = "<?php \$_config = new Smarty_Internal_Config($conf_file, \$_smarty_tpl->smarty, \$_smarty_tpl);";
48 $_output .= "\$_config->loadConfigVars($section, $scope); ?>";
49 return $_output;
50 }
51 }
53 ?>