1d5a81d6664f711c10b8fa70c6f30ed956e5a2be
1 <?php
3 define("INFO_DIALOG" , 10001);
4 define("WARNING_DIALOG" , 10002);
5 define("ERROR_DIALOG" , 10003);
6 define("CONFIRM_DIALOG" , 10004);
8 class msg_dialog
9 {
10 private $s_Title = "Undefined";
11 private $s_Message = "Undefined";
12 private $i_Type = INFO_DIALOG ;
13 private $i_ID = 0;
14 private $a_Trace = array();
16 public function __construct($s_title,$s_message,$i_type)
17 {
18 if(!in_array($i_type,array(INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG))){
19 trigger_error("Invalid msg_dialog type.");
20 $i_type = INFO_DIALOG;
21 }
23 $this->i_ID = preg_replace("/[^0-9]*/","",microtime());
24 $this->s_Title = $s_title;
25 $this->s_Message = $s_message;
26 $this->i_Type = $i_type;
27 $this->a_Trace = debug_backtrace();
28 if(!isset($_SESSION['msg_dialogs'])){
29 $_SESSION['msg_dialogs'] = array();
30 }
31 $_SESSION['msg_dialogs'][] = $this;
32 }
34 public static function display($s_title,$s_message,$i_type = INFO_DIALOG)
35 {
36 new msg_dialog($s_title,$s_message,$i_type);
37 }
39 public function get_ID()
40 {
41 return($this->i_ID);
42 }
44 public function execute()
45 {
46 $smarty = get_smarty();
47 $smarty->assign("s_Trace",print_a($this->a_Trace,TRUE));
48 $smarty->assign("i_Type",$this->i_Type);
49 $smarty->assign("s_Message",$this->s_Message);
50 $smarty->assign("s_Title",$this->s_Title);
51 $smarty->assign("i_ID",$this->i_ID);
52 $smarty->assign("frame",false);
53 $smarty->assign("JS",$_SESSION['js']);
54 $smarty->assign("IE",preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT']));
55 return($smarty->fetch(get_template_path('msg_dialog.tpl')));
56 }
59 public function is_confirmed()
60 {
61 if(isset($_POST['MSG_OK'.$this->i_ID])){
62 return(TRUE);
63 }else{
64 return(FALSE);
65 }
66 }
69 public static function get_dialogs()
70 {
71 $return ="";
72 $dialog_ids= "";
74 $seen = "";
75 if(isset($_POST['closed_msg_dialogs'])){
76 # $seen = $_POST['closed_msg_dialogs'];
77 }
79 if(isset($_SESSION['msg_dialogs']) && is_array($_SESSION['msg_dialogs']) && count($_SESSION['msg_dialogs'])){
81 /* Get frame one */
82 $smarty = get_smarty();
83 $smarty->assign("frame", true);
84 $smarty->assign("IE",preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT']));
85 $return = $smarty->fetch(get_template_path('msg_dialog.tpl'));
87 if(!$_SESSION['js']){
88 $dialog = array_pop($_SESSION['msg_dialogs']);
89 $return.= $dialog->execute();
90 }else{
91 foreach($_SESSION['msg_dialogs'] as $key => $dialog){
93 if(preg_match("/".$dialog->get_ID()."/",$seen)){
94 unset($_SESSION['msg_dialogs'][$key]);
95 }else{
96 $return.= $dialog->execute();
97 $dialog_ids= $dialog->get_ID().",".$dialog_ids;
98 }
99 unset($_SESSION['msg_dialogs'][$key]);
100 }
101 }
102 $dialog_ids = preg_replace("/,$/","",$dialog_ids);
104 $return .= "</div>";
105 $return .="<input type='hidden' style='width:400px;' name='pending_msg_dialogs' id='pending_msg_dialogs' value='".$dialog_ids."'>";
106 $return .="<input type='hidden' style='width:400px;' name='closed_msg_dialogs' id='closed_msg_dialogs' value=''>";
107 $return .="<input type='hidden' style='width:400px;' name='current_msg_dialogs' id='current_msg_dialogs' value=''>";
108 $return .="<input type='hidden' style='width:700px;' name='js_debug' id='js_debug'>";
109 }
110 return($return);
111 }
112 }
113 ?>