i_ID = preg_replace("/[^0-9]*/","",microtime()); $this->s_Title = $s_title; $this->s_Message = $s_message; $this->i_Type = $i_type; /* Append trace information, only if error messages are enabled */ if( isset($config) && is_object($config) && isset($config->data['MAIN']['DISPLAYERRORS']) && preg_match("/^true$/i",$config->data['MAIN']['DISPLAYERRORS'])){ $this->a_Trace = debug_backtrace(); } if(!session::is_set('msg_dialogs')){ session::set('msg_dialogs',array()); } if($this->i_Type == FATAL_ERROR_DIALOG){ restore_error_handler(); error_reporting(E_ALL); echo $this->execute(); }else{ $msg_dialogs = session::get('msg_dialogs'); $msg_dialogs[] = $this; session::set('msg_dialogs',$msg_dialogs); } } session::set('errorsAlreadyPosted',$errorsAlreadyPosted); } public static function display($s_title,$s_message,$i_type = INFO_DIALOG) { new msg_dialog($s_title,$s_message,$i_type); } public function get_ID() { return($this->i_ID); } public function execute() { if($this->i_Type == FATAL_ERROR_DIALOG) { $display = " GOsa startup failed
{t}Error{/t} ".$this->s_Title."
".$this->s_Message."

"._("Please fix the above error and reload the page.")."
"; return($display);; }else{ $smarty = get_smarty(); $smarty->assign("s_Trace" ,print_a($this->a_Trace,TRUE)); $smarty->assign("i_TraceCnt",count($this->a_Trace)); $smarty->assign("i_Type",$this->i_Type); $smarty->assign("s_Message",$this->s_Message); $smarty->assign("s_Title",$this->s_Title); $smarty->assign("i_ID",$this->i_ID); $smarty->assign("frame",false); $smarty->assign("JS",session::get('js')); $smarty->assign("IE",preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT'])); return($smarty->fetch(get_template_path('msg_dialog.tpl'))); } } public function is_confirmed() { if(isset($_POST['MSG_OK'.$this->i_ID])){ return(TRUE); }else{ return(FALSE); } } public static function get_dialogs() { $return =""; $dialog_ids= ""; $seen = ""; if(isset($_POST['closed_msg_dialogs'])){ # $seen = $_POST['closed_msg_dialogs']; } if(session::is_set('msg_dialogs') && is_array(session::get('msg_dialogs')) && count(session::get('msg_dialogs'))){ /* Get frame one */ $smarty = get_smarty(); $smarty->assign("frame", true); $smarty->assign("IE",preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT'])); $return = $smarty->fetch(get_template_path('msg_dialog.tpl')); if(!session::get('js')){ $dialog = array_pop(session::get('msg_dialogs')); $return.= $dialog->execute(); }else{ $msg_dialogs = session::get('msg_dialogs'); foreach($msg_dialogs as $key => $dialog){ if(preg_match("/".$dialog->get_ID()."/",$seen)){ unset($msg_dialogs[$key]); }else{ $return.= $dialog->execute(); $dialog_ids= $dialog->get_ID().",".$dialog_ids; } unset($msg_dialogs[$key]); } session::set('msg_dialogs',$msg_dialogs); } $dialog_ids = preg_replace("/,$/","",$dialog_ids); $return .= ""; $return .=""; $return .=""; $return .=""; $return .=""; } return($return); } } ?>