set('load', $loader);
// Config
$config = new Config();
$registry->set('config', $config);
// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);
// Application
$query = $db->query("SELECT * FROM " . DB_PREFIX . "app WHERE app_id = '".APPLICATION_ID."'");
//echo "SELECT * FROM " . DB_PREFIX . "app WHERE app_id = '".APPLICATION_ID."'";
//echo $query->row["directory"];
if(is_dir($query->row["directory"])){
$application = $query->row;
// Set Application Path
define('APPLICATION', $application["directory"] );
// Set Paths
define('DIR_APPLICATION', DIR_ROOT.APPLICATION);
define('DIR_LANGUAGE', DIR_ROOT.APPLICATION.'language/');
define('DIR_TEMPLATE', DIR_ROOT.APPLICATION.'view/template/');
define('PATH_TEMPLATE', APPLICATION.'view/template/');
define('HTTP_CMS', HTTP_SERVER.APPLICATION);
// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE app_id = '".APPLICATION_ID."'");
foreach ($query->rows as $setting) {
if (!$setting['serialized']) {
$config->set($setting['key'], $setting['value']);
} else {
$config->set($setting['key'], unserialize($setting['value']));
}
}
// Url
$url = new Url(HTTP_SERVER, HTTPS_SERVER);
$registry->set('url', $url);
// Log
$log = new Log($config->get('config_error_filename'));
$registry->set('log', $log);
function error_handler($errno, $errstr, $errfile, $errline) {
global $log, $config;
switch ($errno) {
case E_NOTICE:
case E_USER_NOTICE:
$error = 'Notice';
break;
case E_WARNING:
case E_USER_WARNING:
$error = 'Warning';
break;
case E_ERROR:
case E_USER_ERROR:
$error = 'Fatal Error';
break;
default:
$error = 'Unknown';
break;
}
if ($config->get('config_error_display')) {
echo '' . $error . ': ' . $errstr . ' in ' . $errfile . ' on line ' . $errline . '';
}
if ($config->get('config_error_log')) {
$log->write('PHP ' . $error . ': ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
}
return true;
}
// Error Handler
set_error_handler('error_handler');
// Request
$request = new Request();
$registry->set('request', $request);
// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$registry->set('response', $response);
// Cache
$cache = new Cache();
$registry->set('cache', $cache);
// Session
$session = new Session();
$registry->set('session', $session);
// Language
$languages = array();
$query = $db->query("SELECT * FROM " . DB_PREFIX . "language");
foreach ($query->rows as $result) {
$languages[$result['code']] = $result;
}
//Set Language ID
$config->set('config_language_id', $languages[$config->get('config_app_language')]['language_id']);
// Language
$language = new Language($languages[$config->get('config_app_language')]['directory']);
$language->load($languages[$config->get('config_app_language')]['filename']);
$registry->set('language', $language);
// Document
$document = new Document();
// Set Document Defaults
$document->setTitle($application["title"]);
$document->setDescription($application["description"]);
$document->setKeywords($application["keywords"]);
$document->setAuthor($application["author"]);
$registry->set('document', $document);
// User
$registry->set('user', new User($registry));
// Front Controller
$controller = new Front($registry);
// Router
if (isset($request->get['route'])) {
$action = new Action($request->get['route']);
} else {
$action = new Action('common/page');
}
$_page_id = $_GET["id"];
if(isset($_page_id)){
$_page = $_page_id;
$session->data['page_id'] = $_page_id;
}
else{
$_session_page_id = $session->data['page_id'];
//echo $_session_page_id;
if(isset($_session_page_id)){
$_page = $_session_page_id;
}
else{
$_page = "";
}
}
// Default Language
if(!isset($session->data["language"])){
$session->data["language"] = "de";
}
// Set Language
$session->data["config_language_id"] = 2;
// Article
$page = new page( APPLICATION_ID, $session->data["config_language_id"], $_page, $db, $cache);
$page->buildPage();
$registry->set('page', $page);
// User Content
$usercontent = new usercontent( $db, $cache);
$registry->set('usercontent', $usercontent);
// Product
$product = new Product($registry);
$registry->set('product', $product);
//print_r($action);
// Dispatch
$controller->dispatch($action, new Action('error/not_found'));
// Output
$response->output();
}
else{
echo "root not found (".$query->row["directory"].")";
}
?>