108 lines
2.8 KiB
PHP
108 lines
2.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/notification/INotificationInfoProvider.php
|
|
*
|
|
* Copyright (c) 2014-2021 Simon Fraser University
|
|
* Copyright (c) 2000-2021 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class INotificationInfoProvider
|
|
*
|
|
* @ingroup notification
|
|
*
|
|
* @brief Interface to retrieve notification presentation information.
|
|
*/
|
|
|
|
namespace PKP\notification;
|
|
|
|
use APP\notification\Notification;
|
|
use PKP\core\PKPRequest;
|
|
|
|
define('NOTIFICATION_STYLE_CLASS_WARNING', 'notifyWarning');
|
|
define('NOTIFICATION_STYLE_CLASS_INFORMATION', 'notifyInfo');
|
|
define('NOTIFICATION_STYLE_CLASS_SUCCESS', 'notifySuccess');
|
|
define('NOTIFICATION_STYLE_CLASS_ERROR', 'notifyError');
|
|
define('NOTIFICATION_STYLE_CLASS_FORM_ERROR', 'notifyFormError');
|
|
define('NOTIFICATION_STYLE_CLASS_FORBIDDEN', 'notifyForbidden');
|
|
define('NOTIFICATION_STYLE_CLASS_HELP', 'notifyHelp');
|
|
|
|
interface INotificationInfoProvider
|
|
{
|
|
/**
|
|
* Get a URL for the notification.
|
|
*
|
|
* @param PKPRequest $request
|
|
* @param Notification $notification
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getNotificationUrl($request, $notification);
|
|
|
|
/**
|
|
* Get the notification message. Only return translated locale
|
|
* key strings.
|
|
*
|
|
* @param PKPRequest $request
|
|
* @param Notification $notification
|
|
*
|
|
* @return string|array
|
|
*/
|
|
public function getNotificationMessage($request, $notification);
|
|
|
|
/**
|
|
* Get the notification contents. Content is anything that's
|
|
* more than text, like presenting link actions inside fetched
|
|
* template files.
|
|
*
|
|
* @param PKPRequest $request
|
|
* @param Notification $notification
|
|
*
|
|
* @return string|array
|
|
*/
|
|
public function getNotificationContents($request, $notification);
|
|
|
|
/**
|
|
* Get the notification title.
|
|
*
|
|
* @param Notification $notification
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getNotificationTitle($notification);
|
|
|
|
/**
|
|
* Get the notification style class.
|
|
*
|
|
* @param Notification $notification
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getStyleClass($notification);
|
|
|
|
/**
|
|
* Get the notification icon class.
|
|
*
|
|
* @param Notification $notification
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getIconClass($notification);
|
|
|
|
/**
|
|
* Whether any notification with the passed notification type
|
|
* is visible to all users or not.
|
|
*
|
|
* @param int $notificationType
|
|
* @param int $assocType Application::ASSOC_TYPE_...
|
|
* @param int $assocId
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isVisibleToAllUsers($notificationType, $assocType, $assocId);
|
|
}
|
|
|
|
if (!PKP_STRICT_MODE) {
|
|
class_alias('\PKP\notification\INotificationInfoProvider', '\INotificationInfoProvider');
|
|
}
|