Code

Made filter rely on it's own input
[gosa.git] / gosa-core / include / php_setup.inc
index ab5e705157e7f80e1afc820fc7c426920cf99888..2732905613aba9c873865be5fe039bda5cee9543 100644 (file)
@@ -26,10 +26,6 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 {
   global $error_collector,$config, $error_collector_mailto;
 
-  if(function_exists("gosa_log")){
-    gosa_log($errno." ".$errstr." ".$errfile." ".$errline);
-  }
-
   /* Return if error reporting is set to zero */
   if (error_reporting() == 0){
     return;
@@ -48,16 +44,14 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
   }
 
   /* Error messages are hidden in GOsa, so we only send them to the logging class and abort here */
-  if((isset($config->data))){ 
-    if((isset($config->data['MAIN']['DISPLAYERRORS']))&&(!preg_match("/^true$/i",$config->data['MAIN']['DISPLAYERRORS']))){
-
+  if(isset($config->data) && $config->get_cfg_value("displayerrors") != "true"){
       
       /* Write to syslog */
       if(class_exists("log") && !preg_match("/No such object/",$errstr)){
         new log("view","error","",array(),"PHP error: $errstr ($errfile, line $errline)");
       }
+
       return;
-    }
   }
   
   /* Send all errors to logging class, except "Ldap : No such object" messages*/
@@ -70,12 +64,16 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
 
     /* Mailto body header */
     if(function_exists("prepare4mailbody")){
+      $version= "unknown";
+      if(function_exists("get_gosa_version")){
+             $version= get_gosa_version();
+      }
       $error_collector_mailto .=prepare4mailbody(
                                 "Oups. Seems like you've catched some kind of bug inside GOsa/PHP. You may want to help ".
                                 "us to improve the software stability. If so, please provide some more information below.".
                                 "\n\n".
                                 "*** GOsa bug report ***".
-                                "\nGOsa Version: ".get_gosa_version().
+                                "\nGOsa Version: $version".
                                 "\n\n".
                                 "Please describe what you did to produce this error as detailed as possible. Can you ".
                                 "reproduce this bug using the demo on http://www.gosa-project.org ?".
@@ -101,7 +99,7 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
               </a>
             </td>
             <td align=right>
-              <button onClick='toggle(\"errorbox\")'>".
+              <button onClick='GOsa_toggle(\"errorbox\")'>".
                 _("Toggle information")."
               </button>
             </td>
@@ -125,7 +123,7 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
     $error_collector_mailto .= prepare4mailbody("=== Trace ===");
 
     /* Generate trace history */
-    for ($index= 0; $index<count($trace); $index++){
+    for ($index= 0, $c= count($trace); $index<$c; $index++){
 
 
       $ct= $trace[$index];
@@ -251,6 +249,11 @@ function dummy_error_handler()
 {
 }
 
+/* Bail out for incompatible/old PHP versions */
+if (!version_compare(phpversion(),"5.2.0",">=")){
+  echo "PHP version needs to be 5.2.0 or above to run GOsa. Aborted.";
+  exit();
+}
 
 /* Set timezone */
 date_default_timezone_set("GMT");
@@ -263,14 +266,15 @@ error_reporting (E_ALL | E_STRICT);
 /* Register error handler */
 $error_collector= "";
 $error_collector_mailto= "";
-set_error_handler('gosaRaiseError');
+
+set_error_handler('gosaRaiseError', E_WARNING |  E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
 
 $variables_order= "ES";
 ini_set("register_globals",0);
 ini_set("track_vars",1);
 ini_set("display_errors",1);
 ini_set("report_memleaks",1);
-ini_set("include_path",".:$BASE_DIR/include:$BASE_DIR/include/utils/excel");
+ini_set("include_path",".:$BASE_DIR/include:$BASE_DIR/include/utils/excel:/usr/share/php");
 
 /* Do smarty setup */
 require("smarty/Smarty.class.php");
@@ -279,5 +283,6 @@ $smarty->template_dir = $BASE_DIR.'/ihtml/';
 $smarty->caching= false;
 $smarty->php_handling= SMARTY_PHP_REMOVE;
 
+
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>