/**
 * Notification Page
 *
 * @return mixed data;
 * @access public
 */
function ossn_notification_page($pages)
{
    $page = $pages[0];
    if (empty($page)) {
        ossn_error_page();
    }
    header('Content-Type: application/json');
    switch ($page) {
        case 'notification':
            $get = new OssnNotifications();
            $notifications['notifications'] = $get->get(ossn_loggedin_user()->guid, true);
            $notifications['seeall'] = ossn_site_url("notifications/all");
            if (!empty($notifications['notifications'])) {
                $data = ossn_view('components/OssnNotifications/pages/notification/notification', $notifications);
                echo json_encode(array('type' => 1, 'data' => $data));
            } else {
                echo json_encode(array('type' => 0, 'data' => '<div class="ossn-no-notification">Nothing to show</div>'));
            }
            break;
        case 'friends':
            $friends['friends'] = ossn_loggedin_user()->getFriendRequests();
            $friends_count = count($friends['friends']);
            if ($friends_count > 0 && !empty($friends['friends'])) {
                $data = ossn_view('components/OssnNotifications/pages/notification/friends', $friends);
                echo json_encode(array('type' => 1, 'data' => $data));
            } else {
                echo json_encode(array('type' => 0, 'data' => '<div class="ossn-no-notification">Nothing to show</div>'));
            }
            break;
        case 'messages':
            $OssnMessages = new OssnMessages();
            $params['recent'] = $OssnMessages->recentChat(ossn_loggedin_user()->guid);
            $data = ossn_view('components/OssnMessages/templates/message-with-notifi', $params);
            if (!empty($params['recent'])) {
                echo json_encode(array('type' => 1, 'data' => $data));
            } else {
                echo json_encode(array('type' => 0, 'data' => '<div class="ossn-no-notification">Nothing to show</div>'));
            }
            break;
        case 'read':
            if (!empty($pages[1])) {
                $notification = new OssnNotifications();
                $guid = $notification->getbyGUID($pages[1]);
                if ($guid->owner_guid == ossn_loggedin_user()->guid) {
                    $notification->setViewed($pages[1]);
                    $url = urldecode(input('notification'));
                    header("Location: {$url}");
                } else {
                    redirect();
                }
            } else {
                redirect();
            }
            break;
        case 'count':
            if (!ossn_isLoggedIn()) {
                ossn_error_page();
            }
            $notification = new OssnNotifications();
            $messages = new OssnMessages();
            $count_notif = $notification->countNotification(ossn_loggedin_user()->guid);
            $count_messages = $messages->countUNREAD(ossn_loggedin_user()->guid);
            if (!$count_notif) {
                $count_notif = 0;
            }
            $friends = ossn_loggedin_user()->getFriendRequests();
            $friends_c = 0;
            if (count($friends) > 0 && !empty($friends)) {
                $friends_c = count($friends);
            }
            echo json_encode(array('notifications' => $count_notif, 'messages' => $count_messages, 'friends' => $friends_c));
            break;
        default:
            ossn_error_page();
            break;
    }
}
Esempio n. 2
0
function ossn_messages_page($pages)
{
    if (!ossn_isLoggedin()) {
        ossn_error_page();
    }
    $OssnMessages = new OssnMessages();
    $page = $pages[0];
    if (empty($page)) {
        $page = 'messages';
    }
    switch ($page) {
        case 'message':
            $username = $pages[1];
            if (!empty($username)) {
                $user = ossn_user_by_username($username);
                if (empty($user->guid)) {
                    ossn_error_page();
                }
                $title = ossn_print('ossn:message:between', array($user->fullname));
                $OssnMessages->markViewed($user->guid, ossn_loggedin_user()->guid);
                $params['data'] = $OssnMessages->get(ossn_loggedin_user()->guid, $user->guid);
                $params['user'] = $user;
                $params['recent'] = $OssnMessages->recentChat(ossn_loggedin_user()->guid);
                $contents = array('content' => ossn_plugin_view('messages/pages/view', $params));
                $content = ossn_set_page_layout('media', $contents);
                echo ossn_view_page($title, $content);
            } else {
                ossn_error_page();
            }
            break;
        case 'all':
            $params['recent'] = $OssnMessages->recentChat(ossn_loggedin_user()->guid);
            $active = $params['recent'][0];
            if (isset($active->message_to) && $active->message_to == ossn_loggedin_user()->guid) {
                $getuser = $active->message_from;
            }
            if (isset($active->message_from) && $active->message_from == ossn_loggedin_user()->guid) {
                $getuser = $active->message_to;
            }
            if (isset($getuser)) {
                $user = ossn_user_by_guid($getuser);
                $OssnMessages->markViewed($getuser, ossn_loggedin_user()->guid);
                $params['data'] = $OssnMessages->get(ossn_loggedin_user()->guid, $getuser);
                $params['user'] = $user;
            }
            $contents = array('content' => ossn_plugin_view('messages/pages/messages', $params));
            if (!isset($getuser)) {
                $contents = array('content' => ossn_plugin_view('messages/pages/messages-none'));
            }
            $title = ossn_print('messages');
            $content = ossn_set_page_layout('media', $contents);
            echo ossn_view_page($title, $content);
            break;
        case 'getnew':
            $username = $pages[1];
            $guid = ossn_user_by_username($username)->guid;
            $messages = $OssnMessages->getNew($guid, ossn_loggedin_user()->guid);
            if ($messages) {
                foreach ($messages as $message) {
                    $user = ossn_user_by_guid($message->message_from);
                    $message = $message->message;
                    $params['user'] = $user;
                    $params['message'] = $message;
                    echo ossn_plugin_view('messages/templates/message-send', $params);
                }
                $OssnMessages->markViewed($guid, ossn_loggedin_user()->guid);
                echo '<script>Ossn.playSound();</script>';
            }
            break;
        case 'getrecent':
            $params['recent'] = $OssnMessages->recentChat(ossn_loggedin_user()->guid);
            echo ossn_plugin_view('messages/templates/message-with', $params);
            break;
        default:
            ossn_error_page();
            break;
    }
}
Esempio n. 3
0
/**
 * Notification Page
 *
 * @return mixed data;
 * @access public
 */
function ossn_notification_page($pages)
{
    $page = $pages[0];
    if (empty($page)) {
        ossn_error_page();
    }
    header('Content-Type: application/json');
    switch ($page) {
        case 'notification':
            $get = new OssnNotifications();
            //removed true as second arg of get() as second arg is introduced in v2.0
            $notifications['notifications'] = $get->get(ossn_loggedin_user()->guid);
            $notifications['seeall'] = ossn_site_url("notifications/all");
            $clearall = ossn_plugin_view('output/url', array('action' => true, 'href' => ossn_site_url('action/notification/mark/allread'), 'class' => 'ossn-notification-mark-read', 'text' => ossn_print('ossn:notifications:mark:as:read')));
            if (!empty($notifications['notifications'])) {
                $data = ossn_plugin_view('notifications/pages/notification/notification', $notifications);
                echo json_encode(array('type' => 1, 'data' => $data, 'extra' => $clearall));
            } else {
                echo json_encode(array('type' => 0, 'data' => '<div class="ossn-no-notification">' . ossn_print('ossn:notification:no:notification') . '</div>'));
            }
            break;
        case 'friends':
            $friends['friends'] = ossn_loggedin_user()->getFriendRequests();
            $friends_count = count($friends['friends']);
            if ($friends_count > 0 && !empty($friends['friends'])) {
                $data = ossn_plugin_view('notifications/pages/notification/friends', $friends);
                echo json_encode(array('type' => 1, 'data' => $data));
            } else {
                echo json_encode(array('type' => 0, 'data' => '<div class="ossn-no-notification">' . ossn_print('ossn:notification:no:notification') . '</div>'));
            }
            break;
        case 'messages':
            $OssnMessages = new OssnMessages();
            $params['recent'] = $OssnMessages->recentChat(ossn_loggedin_user()->guid);
            $data = ossn_plugin_view('messages/templates/message-with-notifi', $params);
            if (!empty($params['recent'])) {
                echo json_encode(array('type' => 1, 'data' => $data));
            } else {
                echo json_encode(array('type' => 0, 'data' => '<div class="ossn-no-notification">' . ossn_print('ossn:notification:no:notification') . '</div>'));
            }
            break;
        case 'read':
            if (!empty($pages[1])) {
                $notification = new OssnNotifications();
                $guid = $notification->getbyGUID($pages[1]);
                if ($guid->owner_guid == ossn_loggedin_user()->guid) {
                    $notification->setViewed($pages[1]);
                    $url = urldecode(input('notification'));
                    header("Location: {$url}");
                } else {
                    redirect();
                }
            } else {
                redirect();
            }
            break;
        case 'count':
            if (!ossn_isLoggedIn()) {
                ossn_error_page();
            }
            $notification = new OssnNotifications();
            $messages = new OssnMessages();
            $count_notif = $notification->countNotification(ossn_loggedin_user()->guid);
            $count_messages = $messages->countUNREAD(ossn_loggedin_user()->guid);
            if (!$count_notif) {
                $count_notif = 0;
            }
            $friends = ossn_loggedin_user()->getFriendRequests();
            $friends_c = 0;
            if (count($friends) > 0 && !empty($friends)) {
                $friends_c = count($friends);
            }
            echo json_encode(array('notifications' => $count_notif, 'messages' => $count_messages, 'friends' => $friends_c));
            break;
        default:
            ossn_error_page();
            break;
    }
}