smarty) ? $data->smarty : $data; /* @var \Smarty_Internal_Template $confObj */ $confObj = new $smarty->template_class($config_file, $smarty, $data); $confObj->caching = Smarty::CACHING_OFF; $confObj->source = Smarty_Template_Config::load($confObj); $confObj->source->config_sections = $sections; $confObj->source->scope = $scope; $confObj->compiled = Smarty_Template_Compiled::load($confObj); $confObj->compiled->render($confObj); if ($data->_objType == 2) { $data->compiled->file_dependency[$confObj->source->uid] = array($confObj->source->filepath, $confObj->source->getTimeStamp(), $confObj->source->type); } return $data; } /** * load config variables into template object * * @param \Smarty_Internal_Template $_template * @param array $_config_vars */ static function _loadConfigVars(Smarty_Internal_Template $_template, $_config_vars) { $scope = $_template->source->scope; // pointer to scope (local scope is parent of template object $scope_ptr = $_template->parent; if ($scope == 'parent') { if (isset($_template->parent->parent)) { $scope_ptr = $_template->parent->parent; } } elseif ($scope == 'root' || $scope == 'global') { while (isset($scope_ptr->parent)) { $scope_ptr = $scope_ptr->parent; } } // copy global config vars foreach ($_config_vars['vars'] as $variable => $value) { if ($_template->smarty->config_overwrite || !isset($scope_ptr->config_vars[$variable])) { $scope_ptr->config_vars[$variable] = $value; } else { $scope_ptr->config_vars[$variable] = array_merge((array) $scope_ptr->config_vars[$variable], (array) $value); } } // scan sections $sections = $_template->source->config_sections; if (!empty($sections)) { foreach ((array) $sections as $_template_section) { if (isset($_config_vars['sections'][$_template_section])) { foreach ($_config_vars['sections'][$_template_section]['vars'] as $variable => $value) { if ($_template->smarty->config_overwrite || !isset($scope_ptr->config_vars[$variable])) { $scope_ptr->config_vars[$variable] = $value; } else { $scope_ptr->config_vars[$variable] = array_merge((array) $scope_ptr->config_vars[$variable], (array) $value); } } } } } } }