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) &&
$config->get_cfg_value("displayerrors") == "true" ){
$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 static function displayChecks($messages)
{
/* Assemble the message array to a plain string */
foreach ($messages as $error){
msg_dialog::display(_("Error"), $error, ERROR_DIALOG);
}
}
public function get_ID()
{
return($this->i_ID);
}
public function execute()
{
if($this->i_Type == FATAL_ERROR_DIALOG) {
$display =
"
GOsa startup failed
|
".$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::global_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::global_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);
}
}
?>