예제 #1
0
 public static function addEntry($user, $id_user, $id_room)
 {
     $data = new StdClass();
     $data->user = $user;
     $data->id_user = $id_user;
     $data->message = 'entered the room';
     $data->id_room = $id_room;
     $data->reserved = 0;
     $data->type = 'entry';
     $data->to_user = 0;
     $data->timestamp = date('Y-m-d H:i:s');
     $fields = array_keys((array) $data);
     $alert_model = new MessagesModel();
     $alert_model->setFields($fields);
     $alert_model->setData($data);
     return $alert_model->insert();
 }
예제 #2
0
 /**
  * callback for deleting/updating messages
  *
  * @param object $args
  * @param object $action
  * @param object $mem_redirect
  * @param object $mem_resend
  * @access public
  * @return string
  */
 public function mailBoxCallback($args, $action, $mem_redirect, $mem_resend)
 {
     $BW_Rights = new MOD_right();
     $layoutkit = $count = $action->count;
     $return = $args->req;
     if (!APP_User::loggedIn()) {
         return $return;
     }
     if ($count < 0) {
         $mem_redirect->expired = true;
         return $return;
     }
     if ($mem_resend->already_sent_as) {
         $mem_redirect->already_sent_as = $mem_resend->already_sent_as;
         return $return;
     }
     // now finally try to send it.
     $words = new MOD_words();
     $model = new MessagesModel();
     $post = $args->post;
     if (isset($post['message-mark']) && count($post['message-mark']) > 0 && isset($post['submit_multi'])) {
         foreach ($post['message-mark'] as $message) {
             if (!($m = $model->getMessage($message))) {
                 $mem_redirect->problems = true;
                 return $return;
             } elseif ($post['submit_multi'] == 'delete') {
                 $result = $model->deleteMessage($m->id);
             } elseif ($post['submit_multi'] == 'markasread') {
                 $result = $model->markMessage($m->id);
             } elseif ($post['submit_multi'] == 'markasspam') {
                 $result = $model->moveMessage($m->id, 'Spam');
                 $model->updateSpamInfo($m->id, 'SpamSayMember', 'NotSpam', $m->SpamInfo);
             } elseif ($post['submit_multi'] == 'nospam') {
                 $result = $model->moveMessage($m->id, 'Normal');
                 $model->updateSpamInfo($m->id, 'NotSpam', array('SpamSayMember', 'SpamSayChecker'), $m->SpamInfo);
             } else {
                 $mem_redirect->problems = true;
                 return $return;
             }
         }
     } else {
         $result = false;
     }
     $mem_redirect->result = $result;
     return $return;
 }
예제 #3
0
            $send = true;
        } else {
            $to_user = 0;
            $send = true;
        }
    }
    // Send message
    if (isset($send) && (!isset($_SESSION['chat_login']['last_send']) || isset($_SESSION['chat_login']['last_send']) && time() >= $_SESSION['chat_login']['last_send'])) {
        // Last message sent
        $_SESSION['chat_login']['last_send'] = $_SERVER['REQUEST_TIME'];
        // Delete old messages
        $messages = new MessagesModel();
        $messages->setCond('timestamp < "' . date('Y-m-d H:i:s', strtotime('-' . TIME_MESSAGE_OLD . ' minutes')) . '"');
        $messages->delete();
        // Data
        $data = new StdClass();
        $data->user = Filters::convert($_SESSION['chat_login']['user']);
        $data->id_user = $_SESSION['chat_login']['id_user'];
        $data->message = Filters::convert($message);
        $data->to_user = $to_user;
        $data->id_room = $_SESSION['chat_login']['id_room'];
        $data->reserved = $reserved;
        $data->timestamp = date('Y-m-d H:i:s');
        $fields = array_keys((array) $data);
        // Insert message
        $messages = new MessagesModel();
        $messages->setFields($fields);
        $messages->setData($data);
        $messages->insert();
    }
}
예제 #4
0
 public function AllowDenyCategoryAction()
 {
     $request = Project::getRequest();
     $category = new BookmarksCategoryModel();
     $category->load($request->id);
     $category->active = $request->type;
     if ($request->rename) {
         $category->name = $request->name;
     }
     if ($category->save()) {
         // -- Отправка сообщения
         $admin = new UserModel();
         $admin->loadAdmin();
         $view = new BaseSiteView();
         $view->setTemplate('mail', 'bookmarks_category_allowdeny.tpl.php');
         $view->assign('category', $category);
         $view->assign('type', $request->type);
         $view->assign('comment', $request->comment);
         $body = $view->parse();
         $message = new MessagesModel();
         $message->sendMessage($admin->id, $category->user_id, 'Ответ на запрос на создание категории в закладках', $body);
         // ---------------------
     }
     $this->_view->CloseCategoryForm();
     $this->_view->parse();
 }
예제 #5
0
<?php

require_once 'app/autoload.php';
// Checks if is logged user
if (isset($_SESSION['chat_login']['id_user'])) {
    // Return
    $return = '';
    // Disables users stranded
    UsersModel::userDeleteIdle();
    // Condition
    $condition = '(to_user = 0 OR id_user = '******'chat_login']['id_user'] . ' ';
    $condition .= 'OR to_user = '******'chat_login']['id_user'] . ' ';
    $condition .= 'OR (to_user != ' . $_SESSION['chat_login']['id_user'] . ' AND reserved = 0) ';
    $condition .= 'OR (id_user = 0 AND to_user = 0)) ';
    // Load messages
    $messages = new MessagesModel();
    $messages->setCond($condition);
    $messages->setCond('id_room = ' . $_SESSION['chat_login']['id_room']);
    $messages->setCond('timestamp >= "' . date('Y-m-d H:i:s', $_SESSION['chat_login']['last']) . '"');
    $messages->setOrderBy('timestamp ASC');
    $load = $messages->load_all();
    $_SESSION['chat_login']['last'] = $_SERVER['REQUEST_TIME'];
    $_SESSION['chat_login']['messages'] = isset($_SESSION['chat_login']['messages']) ? $_SESSION['chat_login']['messages'] : array();
    $_SESSION['chat_login']['last_message'] = isset($_SESSION['chat_login']['last_message']) ? $_SESSION['chat_login']['last_message'] : $_SERVER['REQUEST_TIME'];
    foreach ($load as $line) {
        if (in_array($line['id'], $_SESSION['chat_login']['messages'])) {
            continue;
        } else {
            $_SESSION['chat_login']['messages'][] = $line['id'];
            if ($_SERVER['REQUEST_TIME'] > $_SESSION['chat_login']['last_message'] + 120) {
                $_SESSION['chat_login']['last_message'] = $_SERVER['REQUEST_TIME'];
예제 #6
0
 public function FriendAction()
 {
     $request = Project::getRequest();
     $this->_view->clearFlashMessages();
     $user = Project::getUser()->getDbUser();
     $userModel = new UserModel();
     $friendModel = new FriendModel();
     $messagesModel = new MessagesModel();
     $isDefAction = true;
     //$this -> _view -> addFlashMessage(FM::ERROR, "Выберите из списка друзей или введите имя вручную");
     if ($request->messageAction == "changeGroup") {
         $group_id = $request->group_id;
         $friendGroup = $friendModel->getFriendGroupById($group_id);
         if ($friendGroup) {
             $isDefAction = false;
             if ($request->save_group) {
                 $group_name = $request->group_name;
                 if (!$friendModel->isDublicateGroup($user->id, htmlspecialchars($group_name))) {
                     $friendModel->changeOneValue('friend_group', $group_id, 'name', htmlspecialchars($group_name));
                     Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend'));
                 } else {
                     $this->_view->addFlashMessage(FM::ERROR, "Группа с таким именем уже существует");
                 }
             } elseif ($request->del_group) {
                 $friendModel->changeFriendsGroup($user->id, $group_id, 0);
                 $friendModel->delOneRecord('friend_group', $group_id);
                 Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend'));
             } else {
                 $group_name = $friendGroup['name'];
             }
             $this->_view->assign('pageAction', 'changeGroup');
             $this->_view->assign('groupName', $group_name);
         }
         $this->_view->assign('group_id', $group_id);
     } elseif ($request->messageAction == "changeFriend") {
         $friend_table_id = $request->friend_table_id;
         $friend = $friendModel->getFriendById($friend_table_id);
         if ($friend) {
             if ($request->save_friend) {
                 $friendModel->load($friend_table_id);
                 $friendModel->group_id = $request->group_id;
                 $friendModel->note = htmlspecialchars($request->note);
                 $friendModel->save();
                 Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend'));
             }
             $isDefAction = false;
             $this->_view->assign('pageAction', 'changeFriend');
             $this->_view->assign('friend', $friend);
             $this->_view->assign('aFriendGroups', $friendModel->getUserFriendGroups($user->id));
         }
     } elseif ($request->messageAction == "addGroupFriend") {
         if ($request->add_group) {
             if (!$friendModel->isDublicateGroup($user->id, htmlspecialchars($request->group_name))) {
                 $friendModel->addFriendGroup($user->id, $request->group_name, null);
                 Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend'));
             } else {
                 $this->_view->addFlashMessage(null, "Группа с таким именем уже существует");
             }
         } elseif ($request->add_friend) {
             $friend = $userModel->getUserByLogin($request->friend_name);
             if ($friend && $friendModel->isFriend($user->id, $friend['id'])) {
                 $this->_view->addFlashMessage(FM::ERROR, "Этот пользователь уже добавлен в Ваши друзья");
             } elseif ($friend) {
                 $friendModel->load(0);
                 $friendModel->friend_id = $friend['id'];
                 $friendModel->user_id = $user->id;
                 $friendModel->group_id = 0;
                 $friendModel->save();
                 Project::getResponse()->redirect(Project::getRequest()->createUrl('Messages', 'Friend'));
             } else {
                 $this->_view->addFlashMessage(FM::ERROR, "Пользователя с таким именем нет");
             }
         }
     }
     if ($isDefAction) {
         $this->_view->assign('pageAction', 'main');
     }
     $aGroupMessagesCount = array();
     $aGroupMessagesCount['all'] = array("new" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 0), "read" => $messagesModel->getCountMessagesToUser($user->id, -1, 1, 1));
     $this->_view->assign('aGroupMessagesCount', $aGroupMessagesCount);
     $aFriendGroups = $friendModel->getUserFriendGroups($user->id);
     $this->_view->assign('tab_list', TabController::getOwnTabs(false, true, false, false, false, false, false, false, false, false));
     $this->_view->assign('aFriendGroups', $aFriendGroups);
     $this->_view->assign('user_id', $user->id);
     $this->_view->FriendPage();
     $this->_view->parse();
 }