mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-03 22:01:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Smarty Method GetConfigVars
 | 
						|
 *
 | 
						|
 * Smarty::getConfigVars() method
 | 
						|
 *
 | 
						|
 * @package    Smarty
 | 
						|
 * @subpackage PluginsInternal
 | 
						|
 * @author     Uwe Tews
 | 
						|
 */
 | 
						|
class Smarty_Internal_Method_GetConfigVars
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Valid for all objects
 | 
						|
     *
 | 
						|
     * @var int
 | 
						|
     */
 | 
						|
    public $objMap = 7;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns a single or all config variables
 | 
						|
     *
 | 
						|
     * @api  Smarty::getConfigVars()
 | 
						|
     * @link http://www.smarty.net/docs/en/api.get.config.vars.tpl
 | 
						|
     *
 | 
						|
     * @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
 | 
						|
     * @param  string                                                 $varname        variable name or null
 | 
						|
     * @param  bool                                                   $search_parents include parent templates?
 | 
						|
     *
 | 
						|
     * @return mixed variable value or or array of variables
 | 
						|
     */
 | 
						|
    public function getConfigVars(Smarty_Internal_Data $data, $varname = null, $search_parents = true)
 | 
						|
    {
 | 
						|
        $_ptr = $data;
 | 
						|
        $var_array = array();
 | 
						|
        while ($_ptr !== null) {
 | 
						|
            if (isset($varname)) {
 | 
						|
                if (isset($_ptr->config_vars[$varname])) {
 | 
						|
                    return $_ptr->config_vars[$varname];
 | 
						|
                }
 | 
						|
            } else {
 | 
						|
                $var_array = array_merge($_ptr->config_vars, $var_array);
 | 
						|
            }
 | 
						|
            // not found, try at parent
 | 
						|
            if ($search_parents) {
 | 
						|
                $_ptr = $_ptr->parent;
 | 
						|
            } else {
 | 
						|
                $_ptr = null;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if (isset($varname)) {
 | 
						|
            return '';
 | 
						|
        } else {
 | 
						|
            return $var_array;
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |