1
0
mirror of https://github.com/monstra-cms/monstra.git synced 2025-07-31 18:30:20 +02:00
Files
php-monstra/libraries/Gelato/Notification/Notification.php
2013-12-08 21:02:22 +04:00

141 lines
3.4 KiB
PHP

<?php
/**
* Gelato Library
*
* This source file is part of the Gelato Library. More information,
* documentation and tutorials can be found at http://gelato.monstra.org
*
* @package Gelato
*
* @author Romanenko Sergey / Awilum <awilum@msn.com>
* @copyright 2012-2014 Romanenko Sergey / Awilum <awilum@msn.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class Notification
{
/**
* Notifications session key
*
* @var string
*/
const SESSION_KEY = 'notifications';
/**
* Notifications array
*
* @var array
*/
private static $notifications = array();
/**
* Protected constructor since this is a static class.
*
* @access protected
*/
protected function __construct()
{
// Nothing here
}
/**
* Returns a specific variable from the Notifications array.
*
* <code>
* echo Notification::get('success');
* echo Notification::get('errors');
* </code>
*
* @param string $key Variable name
* @return mixed
*/
public static function get($key)
{
// Redefine arguments
$key = (string) $key;
// Return specific variable from the Notifications array
return isset(Notification::$notifications[$key]) ? Notification::$notifications[$key] : null;
}
/**
* Adds specific variable to the Notifications array.
*
* <code>
* Notification::set('success', 'Data has been saved with success!');
* Notification::set('errors', 'Data not saved!');
* </code>
*
* @param string $key Variable name
* @param mixed $value Variable value
*/
public static function set($key, $value)
{
// Redefine arguments
$key = (string) $key;
// Save specific variable to the Notifications array
$_SESSION[Notification::SESSION_KEY][$key] = $value;
}
/**
* Adds specific variable to the Notifications array for current page.
*
* <code>
* Notification::setNow('success', 'Success!');
* </code>
*
* @param string $var Variable name
* @param mixed $value Variable value
*/
public static function setNow($key, $value)
{
// Redefine arguments
$key = (string) $key;
// Save specific variable for current page only
Notification::$notifications[$key] = $value;
}
/**
* Clears the Notifications array.
*
* <code>
* Notification::clean();
* </code>
*
* Data that previous pages stored will not be deleted, just the data that
* this page stored itself.
*/
public static function clean()
{
$_SESSION[Notification::SESSION_KEY] = array();
}
/**
* Initializes the Notification service.
*
* <code>
* Notification::init();
* </code>
*
* This will read notification/flash data from the $_SESSION variable and load it into
* the $this->previous array.
*/
public static function init()
{
// Get notification/flash data...
if ( ! empty($_SESSION[Notification::SESSION_KEY]) && is_array($_SESSION[Notification::SESSION_KEY])) {
Notification::$notifications = $_SESSION[Notification::SESSION_KEY];
}
$_SESSION[Notification::SESSION_KEY] = array();
}
}