registerNamespace('Zend_'); // ****** LOGGING ****** // Initalisiere Log-System if ($onWeb == true) { $logPath = $_SERVER['DOCUMENT_ROOT'] . "/logs/"; } else { $logPath = $_SERVER['DOCUMENT_ROOT'] . "/" . $hostName . "/logs/"; } try { $logwriter = new Zend_Log_Writer_Stream($logPath . $customer . '-buildtime-' . date("dmY") . '.log'); $log = new Zend_Log($logwriter); } catch (Exception $e) { $logwriter = new Zend_Log_Writer_Stream($logPath . $customer . '-buildtime-' . date("dmYHms") . '.log'); $log = new Zend_Log($logwriter); } // ****** SESSIONS ****** // Session starten Zend_Session::start(); $sessionCore = new Zend_Session_Namespace('Core'); $sessionDynamicUser = new Zend_Session_Namespace('DynamicUser'); $sessionUser = new Zend_Session_Namespace('User'); $sessionFormData = new Zend_Session_Namespace('FormData'); $sessionDebug = new Zend_Session_Namespace('Debug'); $sessionDebugBuildTime = new Zend_Session_Namespace('DebugBuildTime'); // ****** SESSION-CORE DATEN ****** $sessionCore->customer = $customer; $sessionCore->hostName = $hostName; $sessionCore->onWeb = $onWeb; $sessionCore->rootDirectory = $rootDirectory; $sessionCore->projectDirectory = $projectDirectory; $sessionCore->dynamicPath = $dynamicPath; $sessionCore->buildLocalLink = $buildLocalLink; $sessionCore->sslActive = $sslActive; $sessionCore->dbCharSet = $dbCharSet; if ($sslActive == true) { $sessionCore->baseUrl = "https://" . $_SERVER['HTTP_HOST']; } else { $sessionCore->baseUrl = "http://" . $_SERVER['HTTP_HOST']; } // ****** DATENBANK ****** // Daten für den Zugriff auf die Datenbank $optionen = array( 'host' => $database['host'], 'username' => $database['username'], 'password' => $database['password'], 'dbname' => $database['dbname'] ); // Objekt ableiten $db = Zend_Db::factory($database['adapter'],$optionen); // Setze language if (!isset($_REQUEST['language']) AND !isset($sessionCore->language) AND $_SERVER['SCRIPT_URL'] == "") { $log->info("Language-Selector: 1 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); //$acceptedLanguages = $_SERVER['HTTP_ACCEPT_LANGUAGE']; //$arrAcceptedLanguages = explode(";",$acceptedLanguages); //$arrAcceptedLanguages2 = explode(",",$arrAcceptedLanguages); $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $acceptLang = array('de', 'en'); $lang = in_array($lang, $acceptLang) ? $lang : 'de'; $language = strtoupper($lang); $sessionCore->language = $language; } elseif (isset($sessionCore->language) && $_SERVER['SCRIPT_URL'] <> "" AND $_REQUEST['language'] == "" && strlen($GLOBALS['sessionDynamicUser']->username) == 0) { // Überprüfen ob die gesetzte Sprache mit der Sprache von der angeforderten Seite übereinstimmt. Der Wert wird nur modifiziert, wenn in der Datenbank die genaue Seite gefunden wird // Lade Programmbibliotheken require_once $includePath . $dynamicPath . '/models/coreDatabase.php'; $db2 = new databaseLibary(); // Script-Name definieren $scriptUrl = $_SERVER['SCRIPT_URL']; $scriptName = substr($scriptUrl,1); $arrScriptName = explode("-",$scriptName); // Abfragen ob es ein Permalink mit dem Name gibt $sql = "SELECT * FROM news_permalinks WHERE name='" . $scriptName . "' AND language='" . $sessionCore->language . "' LIMIT 1;"; $dataCheckPermalinkNavigation = $db2->datenLesen($sql); if (count($dataCheckPermalinkNavigation) == 0) { if (count($arrScriptName) > 1) { $log->info("Language-Selector: 7 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); $sql = "SELECT * FROM navigation WHERE name='" . $arrScriptName[0] . "' AND language='" . $sessionCore->language . "' ORDER BY menue_id,submenue_id,name ASC;"; $dataCheckParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataCheckParentNavigation) == 0) { $sql = "SELECT * FROM navigation WHERE name='" . $arrScriptName[0] . "' AND language <> '" . $sessionCore->language . "' ORDER BY menue_id,submenue_id,name ASC;"; $dataParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $sql = "SELECT * FROM navigation WHERE name='" . $arrScriptName[1] . "' AND menue_id='" . $dataParentNavigation[0]['menue_id'] . "' AND language <> '" . $sessionCore->language . "' ORDER BY menue_id,submenue_id,name ASC;"; $dataChildNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $sessionCore->language = $dataParentNavigation[0]['language']; } } } } else { $log->info("Language-Selector: 8 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); $sql = "SELECT * FROM navigation WHERE name='" . $arrScriptName[0] . "' AND language='" . $sessionCore->language . "';"; $dataCheckParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataCheckParentNavigation) == 0) { $sql = "SELECT * FROM navigation WHERE name='" . $arrScriptName[0] . "' AND language <> '" . $sessionCore->language . "';"; $dataParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $log->info("switch to: " . $dataParentNavigation[0]['language']); $sessionCore->language = $dataParentNavigation[0]['language']; } } $sql = "SELECT * FROM news_permalinks WHERE name='" . $arrScriptName[0] . "' AND language='" . $sessionCore->language . "';"; $dataCheckParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataCheckParentNavigation) == 0) { $sql = "SELECT * FROM news_permalinks WHERE name='" . $arrScriptName[0] . "' AND language <> '" . $sessionCore->language . "';"; $dataParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $log->info("switch to: " . $dataParentNavigation[0]['language']); $sessionCore->language = $dataParentNavigation[0]['language']; } } } } } elseif (!isset($sessionCore->language) && $_SERVER['SCRIPT_URL'] <> "" AND $_REQUEST['language'] == "") { $log->info("Language-Selector: 2 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); // Lade Programmbibliotheken require_once $includePath . $dynamicPath . '/models/coreDatabase.php'; $db2 = new databaseLibary(); // Script-Name definieren $scriptUrl = $_SERVER['SCRIPT_URL']; $scriptName = substr($scriptUrl,1); $arrScriptName = explode("-",$scriptName); if (count($arrScriptName) > 1) { $log->info("Language-Selector: 9 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); $sql = "SELECT * FROM navigation WHERE name='" . $arrScriptName[0] . "' ORDER BY menue_id,submenue_id,name ASC;"; $dataParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $sql = "SELECT * FROM navigation WHERE name='" . $arrScriptName[1] . "' AND menue_id='" . $dataParentNavigation[0]['menue_id'] . "' ORDER BY menue_id,submenue_id,name ASC;"; $dataChildNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $sessionCore->language = $dataChildNavigation[0]['language']; } } } else { $log->info("Language-Selector: 3 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); $sql = "SELECT * FROM navigation AS n WHERE name='" . $arrScriptName[0] . "';"; $dataParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $sessionCore->language = $dataParentNavigation[0]['language']; } $sql = "SELECT * FROM news_permalinks WHERE name='" . $arrScriptName[0] . "';"; $dataParentNavigation = $db2->datenLesen($sql); $log->info("sql: " . $sql); if (count($dataParentNavigation) > 0) { $sessionCore->language = $dataParentNavigation[0]['language']; } } if ($sessionCore->language == "") { $log->info("Language-Selector: 4 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $acceptLang = array('de', 'en'); $lang = in_array($lang, $acceptLang) ? $lang : 'de'; $language = strtoupper($lang); $sessionCore->language = $language; } } elseif (isset($_REQUEST['language'])) { $log->info("Language-Selector: 5 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); $sessionCore->language = $_REQUEST['language']; } $log->info("Language-Selector: 6 // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . " // REQUEST['language']: " . $_REQUEST['language'] . " // SERVER['SCRIPT_URL']: " . $_SERVER['SCRIPT_URL'] . " // STATE sessionCore->language : " . isset($sessionCore->language) . " // VALUE sessionCore->language : " . $sessionCore->language . chr(13)); /*echo "
";
	 var_dump($sessionCore->language);
	 echo "
";*/ // Setze navGroup if (!isset($_REQUEST['navGroup']) AND !isset($sessionCore->navGroup)) { $navGroup = 1; $sessionCore->navGroup = $navGroup; } elseif (isset($_REQUEST['navGroup'])) { $sessionCore->navGroup = $_REQUEST['navGroup']; } if ($GLOBALS['sessionCore']->onWeb == true) { $sessionCore->pathDotsIncludes = "."; } else { $sessionCore->pathDotsIncludes = ".."; } // Setze Session-Infos zu Pfade $sessionCore->viewPathCMS = $_SERVER['DOCUMENT_ROOT'] . $dynamicPath . "/views/scripts/"; if ($GLOBALS['sessionCore']->onWeb == true) { $sessionCore->urlPath = "/"; $sessionCore->cmsLoginPath = "/cms/"; $sessionCore->viewPathCustomer = $_SERVER['DOCUMENT_ROOT'] . "/views/scripts/"; } else { $sessionCore->urlPath = "/" . $sessionCore->hostName . "/"; $sessionCore->cmsLoginPath = "/" . $GLOBALS['sessionCore']->hostName . "/cms/"; $sessionCore->viewPathCustomer = $_SERVER['DOCUMENT_ROOT'] . "/" . $GLOBALS['sessionCore']->hostName . "/views/scripts/"; } // ****** EIGENE BIBLIOTHEKEN ****** // Lade Programmbibliotheken require_once $includePath . $dynamicPath . '/models/coreDatabase.php'; require_once $includePath . $dynamicPath . '/models/coreFunctions.php'; require_once $includePath . $dynamicPath . '/models/coreBuildContent.php'; require_once $includePath . $dynamicPath . '/models/newsBuildContent.php'; require_once $includePath . $dynamicPath . '/models/newsBackend.php'; require_once $includePath . $dynamicPath . '/models/shop.php'; require_once $includePath . $dynamicPath . '/models/shopBackend.php'; require_once $includePath . $dynamicPath . '/models/communityBuildContent.php'; require_once $includePath . $dynamicPath . '/models/webuserBuildContent.php'; require_once $includePath . $dynamicPath . '/models/galerieBuildContent.php'; require_once $includePath . $dynamicPath . '/models/searchBuildContent.php'; require_once $includePath . $dynamicPath . '/models/webuserBackend.php'; require_once $includePath . $dynamicPath . '/models/recaptchalib.php'; require_once $includePath . $dynamicPath . '/models/contactBackend.php'; require_once $includePath . $dynamicPath . '/models/galerieBackend.php'; require_once $includePath . $dynamicPath . '/models/patchBackend.php'; require_once $includePath . $dynamicPath . '/models/userBackend.php'; require_once $includePath . $dynamicPath . '/models/newsletterBackend.php'; require_once $includePath . $dynamicPath . '/models/contactBuildContent.php'; require_once $includePath . $dynamicPath . '/models/navigation.php'; require_once $includePath . $dynamicPath . '/models/debug.php'; require_once $includePath . $dynamicPath . '/models/socialBackend.php'; require_once $includePath . $dynamicPath . '/models/teaserBuildContent.php'; require_once $includePath . $dynamicPath . '/models/teaserBackend.php'; require_once $includePath . $dynamicPath . '/models/setupBackend.php'; require_once $includePath . $dynamicPath . '/models/calendarBackend.php'; require_once $includePath . $dynamicPath . '/models/calendarBuildContent.php'; require_once $includePath . $dynamicPath . '/models/shareBackend.php'; require_once $includePath . $dynamicPath . '/models/shareBuildContent.php'; // ****** EIGENE KLASSEN ****** // Deklariere Klassen $databaseLibary = new databaseLibary(); $navigationLibary = new navigationLibary(); $debugLibary = new debugLibary(); // ****** ROUTER ****** $router = new Zend_Controller_Router_Rewrite(); Zend_Registry::set('router', $router); $front = Zend_Controller_Front::getInstance(); $front->setRouter($router); $front->setControllerDirectory($sessionCore->pathDotsIncludes . $dynamicPath . '/controllers'); if ($developer) { $front->throwExceptions(true); } else { $front->throwExceptions(false); } $front->setParam('noErrorHandler', false); // Router-Objekt auslesen $router = $front->getRouter(); // ****** NAVIGATION ****** // Lese Einstellungen von Navigation $settingsNavigation = $navigationLibary->getNavigationSettings(); // Schreibe Einstellungen in die interne Registry Zend_Registry::set('settingsNavigation', $settingsNavigation); // Generiere Routing-Tabelle für Menüpunkte $routingTable = $navigationLibary->GenerateRoutingTableForPages(); // Füge Routings der Routing-Tabelle hinzu $navigationLibary->AddPathToRouter($routingTable,true); // Generiere Routing-Tabelle für Module allgemein $routingTable = array( array("string" => "newsdetails","param" => "id","childOf" => ""), array("string" => "galeriedetails","param" => "id","childOf" => ""), array("string" => "sharedetails","param" => "id","childOf" => ""), array("string" => "sharedownload","param" => "","childOf" => ""), array("string" => "shopdetails","param" => "id","childOf" => ""), array("string" => "shopcheckout","param" => "","childOf" => ""), array("string" => "shopoffercheckout","param" => "","childOf" => ""), array("string" => "shopcheckoutfinish","param" => "","childOf" => ""), array("string" => "shopbasket","param" => "","childOf" => ""), array("string" => "ajaxrequest","param" => "","childOf" => ""), array("string" => "shoppaymentaccept","param" => "","childOf" => ""), array("string" => "shoppaymentdecline","param" => "","childOf" => ""), array("string" => "shoppaymentexception","param" => "","childOf" => ""), array("string" => "shoppaymentcancel","param" => "","childOf" => ""), array("string" => "shoppaymentstatus","param" => "","childOf" => ""), array("string" => "searchresults","param" => "","childOf" => ""), array("string" => "weblogin","param" => "","childOf" => ""), array("string" => "webprofile","param" => "","childOf" => ""), array("string" => "weblogout","param" => "","childOf" => ""), array("string" => "shop","param" => "","childOf" => ""), array("string" => "newslettersubscription","param" => "","childOf" => ""), array("string" => "pdfconfirmation","param" => "","childOf" => ""), array("string" => "pdfaccount","param" => "","childOf" => ""), array("string" => "pdfdelivery","param" => "","childOf" => "") ); // Füge Routings der Routing-Tabelle hinzu $navigationLibary->AddPathToRouter($routingTable,false); // Füge News-Modul Permalinks dem Router hinzu $navigationLibary->AddNewsPermaLinksToRouter(); // Füge Share-Modul Permalinks dem Router hinzu $navigationLibary->AddSharePermaLinksToRouter(); // ****** DISPATCHER ****** // Go GO GO $front->dispatch(); // ****** DEBUG ****** // DebugBuildTime-Informationen ausgeben, wenn gewünscht $debugLibary->OutputDebugBuildTimeInformations(); // Debug-Informationen ausgeben, wenn gewünscht $debugLibary->OutputDebugInformations(); // ****** STARTZEIT MESSEN ****** $endBuildTime = microtime(true); // Rechne Buildtime aus $buildTime = $endBuildTime - $startBuildTime; // Schreibe Buildtime-Infos in die Logdatei $log->info($buildTime . " Sekunden // URI: " . $_SERVER['REQUEST_URI'] . " // IP: " . $_SERVER['REMOTE_ADDR'] . chr(13)); ?>