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(!isset($_SESSION['msg_dialogs'])){
$_SESSION['msg_dialogs'] = array();
}
if($this->i_Type == FATAL_ERROR_DIALOG){
restore_error_handler();
error_reporting(E_ALL);
echo $this->execute();
}else{
$_SESSION['msg_dialogs'][] = $this;
}
}
}
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
|
Fatal Error - GOsa execution abortet - ".$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['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(isset($_SESSION['msg_dialogs']) && is_array($_SESSION['msg_dialogs']) && count($_SESSION['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['js']){
$dialog = array_pop($_SESSION['msg_dialogs']);
$return.= $dialog->execute();
}else{
foreach($_SESSION['msg_dialogs'] as $key => $dialog){
if(preg_match("/".$dialog->get_ID()."/",$seen)){
unset($_SESSION['msg_dialogs'][$key]);
}else{
$return.= $dialog->execute();
$dialog_ids= $dialog->get_ID().",".$dialog_ids;
}
unset($_SESSION['msg_dialogs'][$key]);
}
}
$dialog_ids = preg_replace("/,$/","",$dialog_ids);
$return .= "";
$return .="";
$return .="";
$return .="";
$return .="";
}
return($return);
}
}
?>