<?php
/**
* XOOPS Notifications
*
* You may not change or alter any portion of this comment or credits
* of supporting developers from this source code or any supporting source code
* which is considered copyrighted (c) material of the original comment or credit authors.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright (c) 2000-2016 XOOPS Project (www.xoops.org)
* @license GNU GPL 2 (http://www.gnu.org/licenses/gpl-2.0.html)
* @package kernel
* @subpackage Xoop Notifications Select
* @since 2.0.0
* @author Kazumi Ono (AKA onokazu) http://www.myweb.ne.jp/, http://jp.xoops.org/
*/
defined('XOOPS_ROOT_PATH') || exit('Restricted access');
include_once $GLOBALS['xoops']->path('include/notification_constants.php');
include_once $GLOBALS['xoops']->path('include/notification_functions.php');
$xoops_notification = array();
$xoops_notification['show'] = isset($xoopsModule) && is_object($xoopsUser) && notificationEnabled('inline') ? 1 : 0;
if ($xoops_notification['show']) {
xoops_loadLanguage('notification');
$categories =& notificationSubscribableCategoryInfo();
$event_count = 0;
if (!empty($categories)) {
/* @var XoopsNotificationHandler $notification_handler */
$notification_handler = xoops_getHandler('notification');
foreach ($categories as $category) {
$section['name'] = $category['name'];
$section['title'] = $category['title'];
$section['description'] = $category['description'];
$section['itemid'] = $category['item_id'];
$section['events'] = array();
$subscribed_events = $notification_handler->getSubscribedEvents($category['name'], $category['item_id'], $xoopsModule->getVar('mid'), $xoopsUser->getVar('uid'));
foreach (notificationEvents($category['name'], true) as $event) {
if (!empty($event['admin_only']) && !$xoopsUser->isAdmin($xoopsModule->getVar('mid'))) {
continue;
}
if (!empty($event['invisible'])) {
continue;
}
$subscribed = in_array($event['name'], $subscribed_events) ? 1 : 0;
$section['events'][$event['name']] = array(
'name' => $event['name'],
'title' => $event['title'],
'caption' => $event['caption'],
'description' => $event['description'],
'subscribed' => $subscribed);
++$event_count;
}
$xoops_notification['categories'][$category['name']] = $section;
}
$xoops_notification['target_page'] = 'notification_update.php';
$xoops_notification['redirect_script'] = xoops_getenv('PHP_SELF');
$xoopsTpl->assign(array(
'lang_activenotifications' => _NOT_ACTIVENOTIFICATIONS,
'lang_notificationoptions' => _NOT_NOTIFICATIONOPTIONS,
'lang_updateoptions' => _NOT_UPDATEOPTIONS,
'lang_updatenow' => _NOT_UPDATENOW,
'lang_category' => _NOT_CATEGORY,
'lang_event' => _NOT_EVENT,
'lang_events' => _NOT_EVENTS,
'lang_checkall' => _NOT_CHECKALL,
'lang_notificationmethodis' => _NOT_NOTIFICATIONMETHODIS,
'lang_change' => _NOT_CHANGE,
'editprofile_url' => XOOPS_URL . '/edituser.php?uid=' . $xoopsUser->getVar('uid')));
switch ($xoopsUser->getVar('notify_method')) {
case XOOPS_NOTIFICATION_METHOD_DISABLE:
$xoopsTpl->assign('user_method', _NOT_DISABLE);
break;
case XOOPS_NOTIFICATION_METHOD_PM:
$xoopsTpl->assign('user_method', _NOT_PM);
break;
case XOOPS_NOTIFICATION_METHOD_EMAIL:
$xoopsTpl->assign('user_method', _NOT_EMAIL);
break;
}
} else {
$xoops_notification['show'] = 0;
}
if ($event_count == 0) {
$xoops_notification['show'] = 0;
}
}
$xoopsTpl->assign('xoops_notification', $xoops_notification);
|