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;
15 public function __construct($s_title,$s_message,$i_type)
16 {
17 if(!in_array($i_type,array(INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG))){
18 trigger_error("Invalid msg_dialog type.");
19 $i_type = INFO_DIALOG;
20 }
22 $this->i_ID = preg_replace("/[^0-9]*/","",microtime());
23 $this->s_Title = $s_title;
24 $this->s_Message = $s_message;
25 $this->i_Type = $i_type;
26 if(!isset($_SESSION['msg_dialogs'])){
27 $_SESSION['msg_dialogs'] = array();
28 }
29 $_SESSION['msg_dialogs'][] = $this;
30 }
32 public static function display($s_title,$s_message,$i_type = INFO_DIALOG)
33 {
34 $box = new msg_dialog($s_title,$s_message,$i_type);
35 }
37 public function get_ID()
38 {
39 return($this->i_ID);
40 }
42 public function execute()
43 {
44 $smarty = get_smarty();
45 $smarty->assign("i_Type",$this->i_Type);
46 $smarty->assign("s_Message",$this->s_Message);
47 $smarty->assign("s_Title",$this->s_Title);
48 $smarty->assign("i_ID",$this->i_ID);
49 $smarty->assign("IE",preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT']));
50 return($smarty->fetch(get_template_path('msg_dialog.tpl')));
51 }
54 public function is_confirmed()
55 {
56 if(isset($_POST['MSG_OK'.$this->i_ID])){
57 return(TRUE);
58 }else{
59 return(FALSE);
60 }
61 }
64 public static function get_dialogs()
65 {
66 $return ="";
67 $dialog_ids= "";
69 $seen = "";
70 if(isset($_POST['closed_msg_dialogs'])){
71 # $seen = $_POST['closed_msg_dialogs'];
72 }
74 if(isset($_SESSION['msg_dialogs']) && is_array($_SESSION['msg_dialogs'])){
76 foreach($_SESSION['msg_dialogs'] as $key => $dialog){
78 if(preg_match("/".$dialog->get_ID()."/",$seen)){
79 unset($_SESSION['msg_dialogs'][$key]);
80 }else{
81 $return.= $dialog->execute();
82 $dialog_ids= $dialog->get_ID().",".$dialog_ids;
83 }
84 unset($_SESSION['msg_dialogs'][$key]);
85 }
86 }
87 $dialog_ids = preg_replace("/,$/","",$dialog_ids);
89 $return .="<input type='hidden' style='width:400px;' name='pending_msg_dialogs' id='pending_msg_dialogs' value='".$dialog_ids."'>";
90 $return .="<input type='hidden' style='width:400px;' name='closed_msg_dialogs' id='closed_msg_dialogs' value=''>";
91 $return .="<input type='hidden' style='width:400px;' name='current_msg_dialogs' id='current_msg_dialogs' value=''>";
92 return($return);
93 }
94 }
95 ?>