| | | | ZENTRALE CMS-FUNKTIONS-DATEI | | | | ROEMERonline BasisCMS | | Der Inhalt dieser Datei ist urheberrechtlich | | geschützt. Eine Weitergabe der Datei oder ihres | | Inhalts an Dritte sowie die Verwendung der Datei | | außerhalb des ROEMERonline-BasisCMS ist nicht | | gestattet. | | © Thomas Römer (www.roemer-online.net) | | Zuletzt bearbeitet: 01:45 07.10.2010 | +-----------------------------------------------------+ */ error_reporting(0); if(!empty($cfg['ContentType'])) { switch($cfg['ContentType']) { case 'xml': header("Content-Type: text/xml; charset=utf-8"); break; default: header("Content-Type: text/html; charset=utf-8"); break; } } else { header("Content-Type: text/html; charset=utf-8"); } require_once 'ro_config.inc.php'; require_once 'ro_func_filesystem.inc.php'; require_once 'ro_func_strings-arrays.inc.php'; require_once 'ro_func_calc.inc.php'; require_once 'ro_func_mysql.inc.php'; require_once 'ro_func_image.inc.php'; //bei verdächtiger URL (unzulässige Anhänge an den Dateinamen) Umleitung auf Startseite $url = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF']; $url_parts = explode("?", $url); if(!is_file($url_parts[0])) { if($cfg['IsBackend']) { header("Location: " . completeURL(add_ending_slash($cfg['BackendURL'])) . "index.php"); exit; } elseif(!$cfg['IsBackendLogin']) { header("Location: " . completeURL(add_ending_slash($cfg['FrontendURL'])) . "index.php"); exit; } } //DB $cfg['dbcon'] = mysqli_connect($cfg['Host'], $cfg['User'], $cfg['Password'], $cfg['DB']) OR die(mysqli_error($cfg['dbcon'])); mysqli_query($cfg['dbcon'], "SET NAMES 'utf8'"); mysqli_query($cfg['dbcon'], "SET CHARACTER SET 'utf8'"); require_once 'ro_func_login.inc.php'; //Sprache/Text //Ermittlung der zu verwendenden Sprache; Gewichtung: (1) $_GET['lang'] | (2) angemeldeter User | (3) default-Sprache | deutsch $back_lang = $front_lang = ''; if(!empty($_GET['lang'])) $back_lang = $front_lang = substr($_GET['lang'], 0, 2); if($back_lang == '' OR !array_key_exists($back_lang, $cfg['CMSLanguages'])) { if(isLoggedIn() AND array_key_exists($_SESSION[$cfg['Random']]['CMSLanguage'], $cfg['CMSLanguages'])) { $back_lang = $_SESSION[$cfg['Random']]['CMSLanguage']; } else { $default = reset($cfg['CMSLanguages']); //erstes Element des Sprachen-Arrays if(is_array($default)) { $back_lang = $default['Short']; } else { $back_lang = 'de'; } } } if($front_lang == '' OR !array_key_exists($front_lang, $cfg['SiteLanguages'])) { if(isLoggedIn() AND array_key_exists($_SESSION[$cfg['Random']]['SiteLanguage'], $cfg['SiteLanguages'])) { $front_lang = $_SESSION[$cfg['Random']]['SiteLanguage']; } else { $default = reset($cfg['SiteLanguages']); //erstes Element des Sprachen-Arrays if(is_array($default)) { $front_lang = $default['Short']; } else { $front_lang = 'de'; } } } //Backend-Standard-Sprachdatei laden $cfg['Text'] = parse_ini_file(add_ending_slash($cfg['BackendRoot']) . "lang/ro_lang_" . $back_lang . ".ini", true); //individuelle Backend-Sprachdatei dazuladen if(is_file(add_ending_slash($cfg['BackendRoot']) . "lang/custom_lang_" . $back_lang . ".ini")) { $custom = parse_ini_file(add_ending_slash($cfg['BackendRoot']) . "lang/custom_lang_" . $back_lang . ".ini", true); $cfg['Text'] = array_merge($cfg['Text'], $custom); } //individuelle Frontend-Sprachdatei laden if(is_file(add_ending_slash($cfg['FrontendRoot']) . "site_lang_" . $front_lang . ".ini")) { $site['Text'] = parse_ini_file(completeURL(add_ending_slash($cfg['FrontendURL'])) . "site_lang_" . $front_lang . ".ini", true); } setlocale(LC_ALL, $cfg['Text']['Format']['LANGCODE']); /* AccessLevel: 0: gibt es nicht / nicht eingeloggt 1: Haupt-Administrator; hat die selben Zugriffsrechte wie ein Super-Administrator, ist aber nicht löschbar (= immer vorhandener Standard-Admin) 2: Super-Administrator; hat Zugriff auf das Backend und dort alle Rechte, kann also auch neue Super-Admins und Admins anlegen bzw. löschen 3: Administrator; hat Zugriff auf das Backend, darf aber keine neuen Admins anlegen, sondern nur normale Benutzer ab Stufe 4 4-7: Benutzer; hat keinen Zugriff auf das Backend; den verschiedenen Benutzertypen können unterschiedliche Seiten zugänglich gemacht werden */ $cfg['AccessLevel'][1] = $cfg['Text']['Captions']['MAINADMINISTRATOR']; $cfg['AccessLevel'][2] = $cfg['Text']['Captions']['SUPERADMINISTRATOR']; $cfg['AccessLevel'][3] = $cfg['Text']['Captions']['ADMINISTRATOR']; $cfg['AccessLevel'][4] = $cfg['Text']['Captions']['VISITOR']; $cfg['AccessLevel'][5] = $cfg['Text']['Captions']['VISITOR'] . " (2)"; $cfg['AccessLevel'][6] = $cfg['Text']['Captions']['VISITOR'] . " (3)"; $cfg['AccessLevel'][7] = $cfg['Text']['Captions']['VISITOR'] . " (4)"; //Holen von generellen Einstellungen $result = mysqli_query($cfg['dbcon'], " SELECT Disabled, Description, Keywords FROM site_general LIMIT 1 ") OR die(mysqli_error($cfg['dbcon'])); $row = mysqli_fetch_row($result); $row[0] == '1' ? $cfg['SiteStatus'] = 'disabled' : $cfg['SiteStatus'] = 'enabled'; $cfg['Description'] = $row[1]; $cfg['Keywords'] = $row[2]; //Seite für Nicht-Admins sperren, wenn (1) Backend oder (2) Frontend gesperrt if(empty($cfg['IsBackendLogin']) OR !$cfg['IsBackendLogin']) { if(!empty($cfg['IsBackend']) AND $cfg['IsBackend']) { if(!restrictAccess(array(1, 2, 3), true, false)) { header("Location: " . completeURL(add_ending_slash($cfg['BackendURL'])) . "login.php"); exit; } } elseif($cfg['SiteStatus'] == 'disabled') { if(!restrictAccess(array(1, 2, 3), true, false)) { include 'ro_disabled.inc.php'; exit; } } } ?>