mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 00:53:50 +00:00
Enhance - add message stash/pop (#2660)
add new methods to messages class to let it take care of stash and pop of the messages update login.php to use new methods tweak html function to put the $_SESSION['message'] in the stack so there is only one code point to maintain for rendering
This commit is contained in:
19
login.php
19
login.php
@@ -30,17 +30,9 @@
|
||||
ini_set("session.cookie_httponly", True);
|
||||
if (!isset($_SESSION)) { session_start(); }
|
||||
|
||||
//retain message
|
||||
if (isset($_SESSION["message"])) {
|
||||
$message_mood = $_SESSION["message_mood"];
|
||||
$message = $_SESSION["message"];
|
||||
}
|
||||
else {
|
||||
$message_mood = null;
|
||||
$message = null;
|
||||
$_SESSION["message"] = null;
|
||||
$_SESSION["message_mood"] = null;
|
||||
}
|
||||
//retain messages
|
||||
$messagse = new messages;
|
||||
$messages->stash();
|
||||
|
||||
//destroy session
|
||||
session_unset();
|
||||
@@ -69,10 +61,7 @@
|
||||
require_once "resources/require.php";
|
||||
|
||||
//restore message
|
||||
if ($message != '') {
|
||||
$_SESSION["message_mood"] = $message_mood;
|
||||
$_SESSION["message"] = $message;
|
||||
}
|
||||
$messages->pop();
|
||||
|
||||
//use custom login, if present, otherwise use default login
|
||||
if (file_exists($_SERVER["PROJECT_ROOT"]."/themes/".$_SESSION['domain']['template']['name']."/login.php")){
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
|
||||
if (!class_exists('messages')) {
|
||||
class messages {
|
||||
|
||||
private $messages;
|
||||
|
||||
static function add($message, $mood = NULL, $delay = NULL) {
|
||||
$_SESSION["messages"][] = array(message => $message, mood => $mood, delay => $delay);
|
||||
@@ -36,15 +38,8 @@ if (!class_exists('messages')) {
|
||||
$html = "${spacer}//render the messages\n";
|
||||
$spacer .="\t";
|
||||
if (strlen($_SESSION['message']) > 0) {
|
||||
$message_text = addslashes($_SESSION['message']);
|
||||
$message_mood = $_SESSION['message_mood'] ?: 'default';
|
||||
$message_delay = $_SESSION['message_delay'];
|
||||
|
||||
$html .= "${spacer}display_message('".str_replace(array("\r\n", "\n", "\r"),'\\n', $message_text)."', '".$message_mood."'";
|
||||
if ($message_delay != '') {
|
||||
$html .= ", '".$message_delay."'";
|
||||
}
|
||||
$html .= ");\n";
|
||||
add($_SESSION['message'], $_SESSION['message_mood'], $_SESSION['message_delay']);
|
||||
unset($_SESSION['message'], $_SESSION['message_mood'], $_SESSION['message_delay']);
|
||||
}
|
||||
if(count($_SESSION['messages']) > 0 ){
|
||||
foreach ($_SESSION['messages'] as $message) {
|
||||
@@ -65,6 +60,35 @@ if (!class_exists('messages')) {
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
|
||||
public function stash() {
|
||||
if (strlen($_SESSION['message']) > 0) {
|
||||
add($_SESSION['message'], $_SESSION['message_mood'], $_SESSION['message_delay']);
|
||||
unset($_SESSION['message'], $_SESSION['message_mood'], $_SESSION['message_delay']);
|
||||
}
|
||||
if (is_array($this->messages)) {
|
||||
if (is_array($_SESSION["messages"])) {
|
||||
$this->messages = array_merge($this->messages, $_SESSION["messages"]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$this->messages = $_SESSION["messages"];
|
||||
}
|
||||
unset($_SESSION['messages']);
|
||||
}
|
||||
|
||||
public function pop() {
|
||||
if (is_array($_SESSION["messages"])) {
|
||||
if (is_array($this->messages)) {
|
||||
$_SESSION["messages"] = array_merge($_SESSION["messages"], $this->messages);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$_SESSION["messages"] = $this->messages;
|
||||
}
|
||||
unset($this->messages);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user