summaryrefslogtreecommitdiffstats
path: root/inc/message.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/message.inc.php')
-rw-r--r--inc/message.inc.php47
1 files changed, 27 insertions, 20 deletions
diff --git a/inc/message.inc.php b/inc/message.inc.php
index 9197e4c2..119bb2ba 100644
--- a/inc/message.inc.php
+++ b/inc/message.inc.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
class Message
{
private static $list = array();
@@ -11,40 +13,39 @@ class Message
* yet, it will be added to the queue, otherwise it will be added
* in place during rendering.
*/
- public static function addError($id)
+ public static function addError(string $id, ...$params): void
{
- self::add('danger', $id, func_get_args());
+ self::add('danger', $id, $params);
}
- public static function addWarning($id)
+ public static function addWarning(string $id, ...$params): void
{
- self::add('warning', $id, func_get_args());
+ self::add('warning', $id, $params);
}
- public static function addInfo($id)
+ public static function addInfo(string $id, ...$params): void
{
- self::add('info', $id, func_get_args());
+ self::add('info', $id, $params);
}
- public static function addSuccess($id)
+ public static function addSuccess(string $id, ...$params): void
{
- self::add('success', $id, func_get_args());
+ self::add('success', $id, $params);
}
/**
* Internal function that adds a message. Used by
* addError/Success/Info/... above.
*/
- private static function add($type, $id, $params)
+ private static function add(string $type, string $id, array $params): void
{
if (strstr($id, '.') === false) {
$id = Page::getModule()->getIdentifier() . '.' . $id;
}
- if (count($params) > 1 && $params[1] === true) {
- $params = array_slice($params, 2);
+ if (!empty($params) && $params[0] === true) {
+ $params = array_slice($params, 1);
$linkModule = true;
} else {
- $params = array_slice($params, 1);
$linkModule = false;
}
switch ($type) {
@@ -63,6 +64,7 @@ class Message
default:
$icon = '';
}
+ ArrayUtil::forceType($params, 'string');
self::$list[] = array(
'type' => $type,
'icon' => $icon,
@@ -70,7 +72,9 @@ class Message
'params' => $params,
'link' => $linkModule
);
- if (self::$flushed) self::renderList();
+ if (self::$flushed) {
+ self::renderList();
+ }
}
/**
@@ -78,7 +82,7 @@ class Message
* After calling this, any further calls to add* will be rendered in
* place in the current page output.
*/
- public static function renderList()
+ public static function renderList(): void
{
self::$flushed = true;
if (empty(self::$list))
@@ -122,7 +126,7 @@ class Message
* Get all queued messages, flushing the queue.
* Useful in api/ajax mode.
*/
- public static function asString()
+ public static function asString(): string
{
$return = '';
foreach (self::$list as $item) {
@@ -145,17 +149,20 @@ class Message
* Deserialize any messages from the current HTTP request and
* place them in the message queue.
*/
- public static function fromRequest()
+ public static function fromRequest(): void
{
$messages = is_array($_REQUEST['message']) ? $_REQUEST['message'] : array($_REQUEST['message']);
foreach ($messages as $message) {
$data = explode('|', $message);
+ if (count($data) < 2)
+ continue;
if (substr($data[0], -1) === '@') {
$data[0] = substr($data[0], 0, -1);
- array_splice($data, 1, 0, true);
+ array_splice($data, 2, 0, true);
}
- if (count($data) < 2 || !preg_match('/^(danger|warning|info|success)$/', $data[0])) continue;
- self::add($data[0], $data[1], array_slice($data, 1));
+ if (!preg_match('/^(danger|warning|info|success)$/', $data[0]))
+ continue;
+ self::add($data[0], $data[1], array_slice($data, 2));
}
}
@@ -163,7 +170,7 @@ class Message
* Turn the current message queue into a serialized version,
* suitable for appending to a GET or POST request
*/
- public static function toRequest()
+ public static function toRequest(): string
{
$parts = array();
foreach (array_merge(self::$list, self::$alreadyDisplayed) as $item) {