HOME


Mini Shell 1.0
DIR: /home/dhnidqcz/journal.africaprag.org/lib/pkp/classes/notification/
Upload File :
Current File : /home/dhnidqcz/journal.africaprag.org/lib/pkp/classes/notification/INotificationInfoProvider.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');
}