Skip to content
Snippets Groups Projects
Commit ae3a8a06 authored by vogelor's avatar vogelor
Browse files

Improved app errorhandling

parent f3dab79f
No related branches found
No related tags found
No related merge requests found
...@@ -41,41 +41,39 @@ class app { ...@@ -41,41 +41,39 @@ class app {
private $_loaded_classes = array(); private $_loaded_classes = array();
private $_conf; private $_conf;
public function __construct() public function __construct() {
{
global $conf; global $conf;
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS']) || isset($_REQUEST['s']) || isset($_REQUEST['s_old']) || isset($_REQUEST['conf'])) { if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS']) || isset($_REQUEST['s']) || isset($_REQUEST['s_old']) || isset($_REQUEST['conf'])) {
die('Internal Error: var override attempt detected'); die('Internal Error: var override attempt detected');
} }
$this->_conf = $conf; $this->_conf = $conf;
if($this->_conf['start_db'] == true) { if($this->_conf['start_db'] == true) {
$this->load('db_'.$this->_conf['db_type']); $this->load('db_'.$this->_conf['db_type']);
$this->db = new db; $this->db = new db;
} }
//* Start the session //* Start the session
if($this->_conf['start_session'] == true) { if($this->_conf['start_session'] == true) {
session_start(); session_start();
//* Initialize session variables //* Initialize session variables
if(!isset($_SESSION['s']['id']) ) $_SESSION['s']['id'] = session_id(); if(!isset($_SESSION['s']['id']) ) $_SESSION['s']['id'] = session_id();
if(empty($_SESSION['s']['theme'])) $_SESSION['s']['theme'] = $conf['theme']; if(empty($_SESSION['s']['theme'])) $_SESSION['s']['theme'] = $conf['theme'];
if(empty($_SESSION['s']['language'])) $_SESSION['s']['language'] = $conf['language']; if(empty($_SESSION['s']['language'])) $_SESSION['s']['language'] = $conf['language'];
} }
$this->uses('auth,plugin'); $this->uses('auth,plugin');
} }
public function uses($classes) public function uses($classes) {
{ $cl = explode(',', $classes);
$cl = explode(',', $classes);
if(is_array($cl)) { if(is_array($cl)) {
foreach($cl as $classname){ foreach($cl as $classname) {
$classname = trim($classname); $classname = trim($classname);
//* Class is not loaded so load it //* Class is not loaded so load it
if(!array_key_exists($classname, $this->_loaded_classes)){ if(!array_key_exists($classname, $this->_loaded_classes)) {
include_once(ISPC_CLASS_PATH."/$classname.inc.php"); include_once(ISPC_CLASS_PATH."/$classname.inc.php");
$this->$classname = new $classname(); $this->$classname = new $classname();
$this->_loaded_classes[$classname] = true; $this->_loaded_classes[$classname] = true;
...@@ -84,11 +82,10 @@ class app { ...@@ -84,11 +82,10 @@ class app {
} }
} }
public function load($files) public function load($files) {
{
$fl = explode(',', $files); $fl = explode(',', $files);
if(is_array($fl)) { if(is_array($fl)) {
foreach($fl as $file){ foreach($fl as $file) {
$file = trim($file); $file = trim($file);
include_once(ISPC_CLASS_PATH."/$file.inc.php"); include_once(ISPC_CLASS_PATH."/$file.inc.php");
} }
...@@ -96,8 +93,7 @@ class app { ...@@ -96,8 +93,7 @@ class app {
} }
/** Priority values are: 0 = DEBUG, 1 = WARNING, 2 = ERROR */ /** Priority values are: 0 = DEBUG, 1 = WARNING, 2 = ERROR */
public function log($msg, $priority = 0) public function log($msg, $priority = 0) {
{
global $conf; global $conf;
if($priority >= $this->_conf['log_priority']) { if($priority >= $this->_conf['log_priority']) {
// $server_id = $conf["server_id"]; // $server_id = $conf["server_id"];
...@@ -119,46 +115,27 @@ class app { ...@@ -119,46 +115,27 @@ class app {
$this->error('Unable to write to logfile.'); $this->error('Unable to write to logfile.');
} }
*/ */
} }
} }
/** Priority values are: 0 = DEBUG, 1 = WARNING, 2 = ERROR */ /** Priority values are: 0 = DEBUG, 1 = WARNING, 2 = ERROR */
public function error($msg, $next_link = '', $stop = true, $priority = 1) public function error($msg, $next_link = '', $stop = true, $priority = 1) {
{
//$this->uses("error"); //$this->uses("error");
//$this->error->message($msg, $priority); //$this->error->message($msg, $priority);
if($stop == true){ if($stop == true) {
$msg = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" $content = file_get_contents(dirname(__FILE__) .
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> '/../web/themes/' . $_SESSION['s']['theme'] . '/templates/error.tpl.htm');
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Error</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="../themes/default/css/central.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="uniForm">
<div id="errorMsg">
<h3>Error</h3>
<ol>
<li>'.$msg;
if($next_link != '') $msg .= '<a href="'.$next_link.'">Next</a>'; if($next_link != '') $msg .= '<a href="'.$next_link.'">Next</a>';
$msg .= '</li> $content = str_replace('###ERRORMSG###', $msg, $content);
</ol> die($content);
</div>
</div>
</body>
</html>';
die($msg);
} else { } else {
echo $msg; echo $msg;
if($next_link != '') echo "<a href='$next_link'>Next</a>"; if($next_link != '') echo "<a href='$next_link'>Next</a>";
} }
} }
/** Translates strings in current language */ /** Translates strings in current language */
public function lng($text) public function lng($text) {
{
if($this->_language_inc != 1) { if($this->_language_inc != 1) {
//* loading global Wordbook //* loading global Wordbook
$this->load_language_file('/lib/lang/'.$_SESSION['s']['language'].'.lng'); $this->load_language_file('/lib/lang/'.$_SESSION['s']['language'].'.lng');
...@@ -169,7 +146,7 @@ class app { ...@@ -169,7 +146,7 @@ class app {
$this->load_language_file($lng_file); $this->load_language_file($lng_file);
} }
$this->_language_inc = 1; $this->_language_inc = 1;
} }
if(!empty($this->_wb[$text])) { if(!empty($this->_wb[$text])) {
$text = $this->_wb[$text]; $text = $this->_wb[$text];
} else { } else {
...@@ -179,7 +156,7 @@ class app { ...@@ -179,7 +156,7 @@ class app {
} }
return $text; return $text;
} }
//** Helper function to load the language files. //** Helper function to load the language files.
public function load_language_file($filename) { public function load_language_file($filename) {
$filename = ISPC_ROOT_PATH.'/'.$filename; $filename = ISPC_ROOT_PATH.'/'.$filename;
...@@ -196,8 +173,7 @@ class app { ...@@ -196,8 +173,7 @@ class app {
} }
} }
public function tpl_defaults() public function tpl_defaults() {
{
$this->tpl->setVar('app_title', $this->_conf['app_title']); $this->tpl->setVar('app_title', $this->_conf['app_title']);
if(isset($_SESSION['s']['user'])) { if(isset($_SESSION['s']['user'])) {
$this->tpl->setVar('app_version', $this->_conf['app_version']); $this->tpl->setVar('app_version', $this->_conf['app_version']);
...@@ -205,7 +181,7 @@ class app { ...@@ -205,7 +181,7 @@ class app {
$this->tpl->setVar('app_version', ''); $this->tpl->setVar('app_version', '');
} }
$this->tpl->setVar('app_link', $this->_conf['app_link']); $this->tpl->setVar('app_link', $this->_conf['app_link']);
if(isset($this->_conf['app_logo']) && $this->_conf['app_logo'] != '' && @is_file($this->_conf['app_logo'])){ if(isset($this->_conf['app_logo']) && $this->_conf['app_logo'] != '' && @is_file($this->_conf['app_logo'])) {
$this->tpl->setVar('app_logo', '<img src="'.$this->_conf['app_logo'].'">'); $this->tpl->setVar('app_logo', '<img src="'.$this->_conf['app_logo'].'">');
} else { } else {
$this->tpl->setVar('app_logo', '&nbsp;'); $this->tpl->setVar('app_logo', '&nbsp;');
...@@ -217,7 +193,7 @@ class app { ...@@ -217,7 +193,7 @@ class app {
$this->tpl->setVar('html_content_encoding', $this->_conf['html_content_encoding']); $this->tpl->setVar('html_content_encoding', $this->_conf['html_content_encoding']);
$this->tpl->setVar('delete_confirmation', $this->lng('delete_confirmation')); $this->tpl->setVar('delete_confirmation', $this->lng('delete_confirmation'));
//print_r($_SESSION); //print_r($_SESSION);
if(isset($_SESSION['s']['module']['name'])) { if(isset($_SESSION['s']['module']['name'])) {
$this->tpl->setVar('app_module', $_SESSION['s']['module']['name']); $this->tpl->setVar('app_module', $_SESSION['s']['module']['name']);
} }
...@@ -227,8 +203,8 @@ class app { ...@@ -227,8 +203,8 @@ class app {
if(isset($_SESSION['s']['user']) && $this->auth->has_clients($_SESSION['s']['user']['userid'])) { if(isset($_SESSION['s']['user']) && $this->auth->has_clients($_SESSION['s']['user']['userid'])) {
$this->tpl->setVar('is_reseller', 1); $this->tpl->setVar('is_reseller', 1);
} }
} }
} // end class } // end class
//** Initialize application (app) object //** Initialize application (app) object
......
<div class="uniForm">
<div id="errorMsg">
<h3>Error</h3>
<ol>
<li>###ERRORMSG###</li>
</ol>
</div>
</div>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment