X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_msg_dialog.inc;h=1d5a81d6664f711c10b8fa70c6f30ed956e5a2be;hb=b6ceb3ba053010e9a0559d2569e29c229bafeeaa;hp=5e3a7cd286d7a845cfb816b93ed1d9da33477947;hpb=f26ba868f04f17cee7e26921d0fd977a4632bfdb;p=gosa.git diff --git a/include/class_msg_dialog.inc b/include/class_msg_dialog.inc index 5e3a7cd28..1d5a81d66 100644 --- a/include/class_msg_dialog.inc +++ b/include/class_msg_dialog.inc @@ -11,13 +11,20 @@ class msg_dialog private $s_Message = "Undefined"; private $i_Type = INFO_DIALOG ; private $i_ID = 0; + private $a_Trace = array(); public function __construct($s_title,$s_message,$i_type) { + if(!in_array($i_type,array(INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG))){ + trigger_error("Invalid msg_dialog type."); + $i_type = INFO_DIALOG; + } + $this->i_ID = preg_replace("/[^0-9]*/","",microtime()); $this->s_Title = $s_title; $this->s_Message = $s_message; $this->i_Type = $i_type; + $this->a_Trace = debug_backtrace(); if(!isset($_SESSION['msg_dialogs'])){ $_SESSION['msg_dialogs'] = array(); } @@ -26,37 +33,80 @@ class msg_dialog public static function display($s_title,$s_message,$i_type = INFO_DIALOG) { - $box = new msg_dialog($s_title,$s_message,$i_type); + new msg_dialog($s_title,$s_message,$i_type); } - public function is_confirmed() + public function get_ID() { - if($this->i_Type == CONFIRM_DIALOG && isset($_POST['MSG_OK'])){ - return(TRUE); - } + return($this->i_ID); } public function execute() { $smarty = get_smarty(); + $smarty->assign("s_Trace",print_a($this->a_Trace,TRUE)); $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 =""; - if(isset($_SESSION['msg_dialogs']) && is_array($_SESSION['msg_dialogs'])){ - foreach($_SESSION['msg_dialogs'] as $key => $dialog){ + $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 .=""; } - unset($_SESSION['msg_dialogs']); return($return); } }