Esempio n. 1
0
/**
 * Returns the value of a setting from the web-adjustable admin config settings.
 *
 * WARNING true/false are stored as string, so when comparing you need to check e.g.
 * if (api_get_setting('course.show_navigation_menu') == 'true') //CORRECT
 * instead of
 * if (api_get_setting('course.show_navigation_menu') == true) //INCORRECT
 * @param string    $variable The variable name
 * @return string
 *
 * @author Julio Montoya
 */
function api_get_setting($variable)
{
    $variable = trim($variable);
    switch ($variable) {
        case 'server_type':
            $test = ['dev', 'test'];
            $environment = Container::getEnvironment();
            if (in_array($environment, $test)) {
                return 'test';
            }
            return 'prod';
        case 'stylesheets':
            $variable = 'platform.theme';
        default:
            return Container::getSettingsManager()->getSetting($variable);
    }
    global $_setting;
    if ($variable == 'header_extra_content') {
        $filename = api_get_path(SYS_PATH) . api_get_home_path() . 'header_extra_content.txt';
        if (file_exists($filename)) {
            $value = file_get_contents($filename);
            return $value;
        } else {
            return '';
        }
    }
    if ($variable == 'footer_extra_content') {
        $filename = api_get_path(SYS_PATH) . api_get_home_path() . 'footer_extra_content.txt';
        if (file_exists($filename)) {
            $value = file_get_contents($filename);
            return $value;
        } else {
            return '';
        }
    }
    $value = null;
    if (is_null($key)) {
        $value = isset($_setting[$variable]) && $_setting[$variable] != '' ? $_setting[$variable] : null;
    } else {
        if (isset($_setting[$variable][$key])) {
            $value = $_setting[$variable][$key];
        }
    }
    return $value;
}