Leitgedanken/msd2/myoos/admin/includes/classes/class_message_stack.php
2023-01-23 11:03:31 +01:00

95 lines
2.9 KiB
PHP

<?php
/* ----------------------------------------------------------------------
$Id: class_message_stack.php,v 1.1 2007/06/08 14:58:10 r23 Exp $
MyOOS [Shopsystem]
https://www.oos-shop.de
Copyright (c) 2003 - 2019 by the MyOOS Development Team.
----------------------------------------------------------------------
Based on:
File: message_stack.php,v 1.5 2002/11/22 18:45:46 dgw_
----------------------------------------------------------------------
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
----------------------------------------------------------------------
Released under the GNU General Public License
----------------------------------------------------------------------
Example usage:
$messageStack = new messageStack();
$messageStack->add('Error: Error 1', 'error');
$messageStack->add('Error: Error 2', 'warning');
if ($messageStack->size > 0) echo $messageStack->output();
---------------------------------------------------------------------- */
/** ensure this file is being included by a parent file */
defined( 'OOS_VALID_MOD' ) or die( 'Direct Access to this location is not allowed.' );
class messageStack {
var $size = 0;
public function __construct() {
$this->errors = array();
if (isset($_SESSION['messageToStack'])) {
for ($i = 0, $n = sizeof($_SESSION['messageToStack']); $i < $n; $i++) {
$this->add($_SESSION['messageToStack'][$i]['text'], $_SESSION['messageToStack'][$i]['type']);
}
unset($_SESSION['messageToStack']);
}
}
public function add($message, $type = 'error') {
if ($type == 'error') {
$this->errors[] = array('params' => 'alert-danger', 'text' => $message);
} elseif ($type == 'warning') {
$this->errors[] = array('params' => 'alert-warning', 'text' => $message);
} elseif ($type == 'success') {
$this->errors[] = array('params' => 'alert-success', 'text' => $message);
} else {
$this->errors[] = array('params' => 'alert-info', 'text' => $message);
}
$this->size++;
}
public function add_session($message, $type = 'error') {
if (!isset($_SESSION['messageToStack'])) {
$_SESSION['messageToStack'] = array();
}
$_SESSION['messageToStack'][] = array('text' => $message, 'type' => $type);
}
public function reset() {
$this->errors = array();
$this->size = 0;
}
public function output() {
$sMessageBox = '';
$aContents = $this->errors;
for ($i = 0, $n = count($aContents); $i < $n; $i++) {
$sMessageBox .= '<div class="alert';
if (isset($aContents[$i]['params']) && oos_is_not_null($aContents[$i]['params'])) {
$sMessageBox .= ' ' . $aContents[$i]['params'];
}
$sMessageBox .= '" role="alert">';
if (isset($aContents[$i]['text']) && oos_is_not_null($aContents[$i]['text'])) {
$sMessageBox .= ' ' . $aContents[$i]['text'];
}
$sMessageBox .= '</div>' . "\n";
}
return $sMessageBox;
}
}