<?php 
 
/* 
 * PIMPED APACHE-STATUS 
 *  
 */ 
 
require_once __DIR__ . '/classes/confighandler.class.php'; 
require_once __DIR__ . '/classes/primitivelogger.class.php'; 
require_once __DIR__ . '/classes/logger.class.php'; 
 
global $aEnv; 
global $oMsg; 
global $oLog; 
global $aServergroups, $aDefaultCfg, $aCfg; 
global $sJsOnReady; 
$sJsOnReady = ''; 
$aServers2Collect = array(); 
$sGetStarted = '<br>see documentation <a href="https://www.axel-hahn.de/docs/apachestatus/get_started.htm">get started<a>.'; 
 
$sSelfURL=str_replace('\\','/',str_replace(realpath($_SERVER['DOCUMENT_ROOT']), '', __DIR__)); 
 
$oCfg=new confighandler("internal-env"); 
$aEnv=$oCfg->get(); 
 
// I wanna see all warnings  
if (stripos($aEnv["project"]["version"], "beta")) { 
    error_reporting(E_ALL); 
    ini_set('display_errors', 'On'); 
} 
$aEnv["links"]["update"]["check"]["url"]=str_replace("[VERSION]", $aEnv["project"]["version"], $aEnv["links"]["update"]["check"]["url"]); 
 
$oMsg = new PrimitiveLogger(); 
$oLog = new logger(); 
 
$oLog->add('$_GET: <pre>' . print_r($_GET, 1).'</pre>'); 
$oLog->add('$_POST: <pre>' . print_r($_POST, 1).'</pre>'); 
 
// --- load default and user config 
require_once("inc_functions.php"); 
$oLog->add('inc_function was loaded'); 
 
$aDefaultCfg=$oCfg->get("internal-config_default"); 
if (!is_array($aDefaultCfg) || !count($aDefaultCfg)) { 
    die("ERROR: Config was not loaded. Reinstall with a fresh download."); 
} 
// repeated in admin/inc_settings.php 
$aUserCfg=$oCfg->get("config_user"); 
if (!is_array($aUserCfg)|| !count($aUserCfg)) { 
    $_GET["view"]='install.php'; 
} 
$aCfg = array_merge($aDefaultCfg, $aUserCfg); 
 
 
// ------------------------------------------------------------ 
// check required features 
// ------------------------------------------------------------ 
 
if (!function_exists("curl_multi_init")) { 
    die("ERROR: PHP-CURL is not installed. It is required to run." . $sGetStarted); 
} 
 
if (!class_exists("DomDocument")) { 
    $oMsg->add("PHP-XML is not installed. XML Export is not available.", 'warning'); 
} 
 
// ------------------------------------------------------------ 
// check GET 
// ------------------------------------------------------------ 
// --- languages 
$aEnv["active"]["lang"] = array_key_exists("lang", $_GET) ? $_GET["lang"] : $aCfg['lang']; 
if (!$aEnv["active"]["lang"] || !file_exists(__DIR__ . "/lang/" . $aEnv["active"]["lang"] . ".php")){ 
    $aEnv["active"]["lang"] = 'en'; 
} 
require_once(__DIR__ . "/lang/" . $aEnv["active"]["lang"] . ".php"); 
 
$sData = file_get_contents(__DIR__ . "/lang/" . $aEnv["active"]["lang"] . ".js"); 
if (!$sData) { 
    $oMsg->add("language file was not found: lang/" . $aEnv["active"]["lang"] . ".js.", 'error'); 
    $sData = '{}'; 
} 
 
// @since v1.16 
checkAuth(); 
 
$aCfg['datatableOptions']["oLanguage"]= json_decode($sData, 1); 
 
$aCfg['datatableOptions']= json_encode($aCfg['datatableOptions']); 
// print_r($aCfg['datatableOptions']); 
 
// --- view 
$aEnv["active"]["view"] = array_key_exists("view", $_GET) ? $_GET["view"] : $aCfg['defaultView']; 
$aEnv["active"]["view"] = $aEnv["active"]["view"] ? $aEnv["active"]["view"] : $aCfg['views'][0]; 
$aEnv["active"]["view"] = array_key_exists("action", $_GET) ? $_GET["action"] : $aEnv["active"]["view"]; 
 
// --- skins 
$aEnv["active"]["skin"] = array_key_exists("skin", $_GET) ? $_GET["skin"] : $aCfg['skin']; 
 
// --- autoreload 
$aEnv["active"]["reload"] = array_key_exists("reload", $_GET) ? $_GET["reload"] : false; 
 
// -- servergroup 
// --- load server groups and servers 
$aServergroups=$oCfg->get("config_servers"); 
 
// if no server was configured then setup defaults 
if (!count($aServergroups) && is_array($aUserCfg) ){ 
    require_once __DIR__ . '/classes/configserver.class.php'; 
    $oServers=new configServer(); 
     
    $aServergroups=$oCfg->get("config_servers"); 
    if ($aServergroups && count($aServergroups)){ 
        $oMsg->add($aLangTxt['AdminMessageServer-add-defaults-ok'], 'success'); 
    } else { 
        $oMsg->add($aLangTxt['AdminMessageServer-add-defaults-error'], 'error'); 
    } 
} 
 
$aEnv["active"]["group"] = array_key_exists("group", $_GET) ? $_GET["group"] : false; 
if (!$aEnv["active"]["group"]) { 
 
    foreach ($aServergroups as $sGroup => $aData) { 
        $aEnv["active"]["group"] = $sGroup; 
        break; 
    } 
} 
 
 
$aEnv["active"]["servers"] = array_key_exists("servers", $_GET) ? $_GET["servers"] : false; 
 
if ($aServergroups && !array_key_exists($aEnv["active"]["group"], $aServergroups)) { 
    $oMsg->add(sprintf($aLangTxt['error-wrong-group'], $aEnv["active"]["group"]), 'error'); 
} 
 
// show menu items if a user config exists  
if(is_array($aUserCfg)){ 
    if (!$aEnv["active"]["group"]) { 
        $oMsg->add(sprintf($aLangTxt['error-no-group'], $aEnv["active"]["group"]), 'error'); 
    } else { 
 
        foreach ($aServergroups[$aEnv["active"]["group"]]["servers"] as $sHost => $aData2) { 
            $aServers2Collect[] = $sHost; 
        } 
 
        $aServers2Collect = array_key_exists("servers", $_GET) ? explode(",", $_GET["servers"]) : $aServers2Collect; 
 
        // check: all servers are in my group? 
        if ($aServers2Collect) { 
            foreach ($aServers2Collect as $sHost) { 
                if (!array_key_exists($sHost, $aServergroups[$aEnv["active"]["group"]]['servers'])) { 
                    $oMsg->add(sprintf($aLangTxt['error-server-not-in-group'], $sHost, $aEnv["active"]["group"]), 'error'); 
                } 
            } 
        } else { 
            if (!isset($adminindex) || !$adminindex){ 
                $oMsg->add(sprintf($aLangTxt['error-no-server']), 'error'); 
            } 
        } 
    } 
}
 
 |