Пример #1
0
 /**
  * Показывает инфу профиля
  *
  */
 protected function EventWhois()
 {
     /**
      * Получаем логин из УРЛа
      */
     $sUserLogin = $this->sCurrentEvent;
     /**
      * Проверяем есть ли такой юзер
      */
     if (!($this->oUserProfile = $this->User_GetUserByLogin($sUserLogin))) {
         return parent::EventNotFound();
     }
     /**
      * Получаем список друзей
      */
     $aUsersFriend = $this->User_GetUsersFriend($this->oUserProfile->getId());
     if (Config::Get('general.reg.invite')) {
         /**
          * Получаем список тех кого пригласил юзер
          */
         $aUsersInvite = $this->User_GetUsersInvite($this->oUserProfile->getId());
         $this->Viewer_Assign('aUsersInvite', $aUsersInvite);
         /**
          * Получаем того юзера, кто пригласил текущего
          */
         $oUserInviteFrom = $this->User_GetUserInviteFrom($this->oUserProfile->getId());
         $this->Viewer_Assign('oUserInviteFrom', $oUserInviteFrom);
     }
     /**
      * Получаем список юзеров блога
      */
     $aBlogUsers = $this->Blog_GetBlogUsersByUserId($this->oUserProfile->getId(), ModuleBlog::BLOG_USER_ROLE_USER);
     $aBlogModerators = $this->Blog_GetBlogUsersByUserId($this->oUserProfile->getId(), ModuleBlog::BLOG_USER_ROLE_MODERATOR);
     $aBlogAdministrators = $this->Blog_GetBlogUsersByUserId($this->oUserProfile->getId(), ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR);
     /**
      * Получаем список блогов которые создал юзер
      */
     $aBlogsOwner = $this->Blog_GetBlogsByOwnerId($this->oUserProfile->getId());
     /**
      * Вызов хуков
      */
     $this->Hook_Run('profile_whois_show', array("oUserProfile" => $this->oUserProfile));
     /**
      * Загружаем переменные в шаблон
      */
     $this->Viewer_Assign('aBlogUsers', $aBlogUsers);
     $this->Viewer_Assign('aBlogModerators', $aBlogModerators);
     $this->Viewer_Assign('aBlogAdministrators', $aBlogAdministrators);
     $this->Viewer_Assign('aBlogsOwner', $aBlogsOwner);
     $this->Viewer_Assign('aUsersFriend', $aUsersFriend);
     $this->Viewer_AddHtmlTitle($this->Lang_Get('user_menu_profile') . ' ' . $this->oUserProfile->getLogin());
     $this->Viewer_AddHtmlTitle($this->Lang_Get('user_menu_profile_whois'));
     /**
      * Устанавливаем шаблон вывода
      */
     $this->SetTemplateAction('whois');
 }
Пример #2
0
 /**
  * Выполняет отправку приглашения в блог 
  * (по внутренней почте и на email)
  *
  * @param ModuleBlog_EntityBlog $oBlog
  * @param ModuleUser_EntityUser $oUser
  */
 protected function SendBlogInvite($oBlog, $oUser)
 {
     $sTitle = $this->Lang_Get('blog_user_invite_title', array('blog_title' => $oBlog->getTitle()));
     require_once Config::Get('path.root.engine') . '/lib/external/XXTEA/encrypt.php';
     $sCode = $oBlog->getId() . '_' . $oUser->getId();
     $sCode = rawurlencode(base64_encode(xxtea_encrypt($sCode, Config::Get('module.blog.encrypt'))));
     $aPath = array('accept' => Router::GetPath('blog') . 'invite/accept/?code=' . $sCode, 'reject' => Router::GetPath('blog') . 'invite/reject/?code=' . $sCode);
     $sText = $this->Lang_Get('blog_user_invite_text', array('login' => $this->oUserCurrent->getLogin(), 'accept_path' => $aPath['accept'], 'reject_path' => $aPath['reject'], 'blog_title' => $oBlog->getTitle()));
     $oTalk = $this->Talk_SendTalk($sTitle, $sText, $this->oUserCurrent, array($oUser), false, false);
     /**
      * Отправляем пользователю заявку
      */
     $this->Notify_SendBlogUserInvite($oUser, $this->oUserCurrent, $oBlog, Router::GetPath('talk') . 'read/' . $oTalk->getId() . '/');
     /**
      * Удаляем отправляющего юзера из переписки
      */
     $this->Talk_DeleteTalkUserByArray($oTalk->getId(), $this->oUserCurrent->getId());
 }
Пример #3
0
 /**
  * Выводит список комментариев которые написал юзер
  *	 
  */
 protected function EventComments()
 {
     /**
      * Получаем логин из УРЛа
      */
     $sUserLogin = $this->sCurrentEvent;
     /**
      * Проверяем есть ли такой юзер
      */
     if (!($this->oUserProfile = $this->User_GetUserByLogin($sUserLogin))) {
         return parent::EventNotFound();
     }
     /**
      * Передан ли номер страницы
      */
     $iPage = $this->GetParamEventMatch(1, 2) ? $this->GetParamEventMatch(1, 2) : 1;
     /**
      * Получаем список комментов
      */
     $aResult = $this->Comment_GetCommentsByUserId($this->oUserProfile->getId(), 'topic', $iPage, Config::Get('module.comment.per_page'));
     $aComments = $aResult['collection'];
     /**
      * Формируем постраничность
      */
     $aPaging = $this->Viewer_MakePaging($aResult['count'], $iPage, Config::Get('module.comment.per_page'), 4, Router::GetPath('my') . $this->oUserProfile->getLogin() . '/comment');
     /**
      * Загружаем переменные в шаблон
      */
     $this->Viewer_Assign('aPaging', $aPaging);
     $this->Viewer_Assign('aComments', $aComments);
     $this->Viewer_AddHtmlTitle($this->Lang_Get('user_menu_publication') . ' ' . $this->oUserProfile->getLogin());
     $this->Viewer_AddHtmlTitle($this->Lang_Get('user_menu_publication_comment'));
     /**
      * Устанавливаем шаблон вывода
      */
     $this->SetTemplateAction('comment');
 }
Пример #4
0
 /**
  * Добавление нового участника разговора (ajax)
  *
  * @return null
  */
 public function AjaxAddTalkUser()
 {
     $this->Viewer_SetResponseAjax();
     $sUsers = getRequest('users', null, 'post');
     $idTalk = getRequest('idTalk', null, 'post');
     // Если пользователь не авторизирован, возвращаем ошибку
     if (!$this->User_IsAuthorization()) {
         $this->Message_AddErrorSingle($this->Lang_Get('need_authorization'), $this->Lang_Get('error'));
         return;
     }
     // Если разговор не найден, или пользователь не является его автором (или админом),
     // возвращаем ошибку
     if (!($oTalk = $this->Talk_GetTalkById($idTalk)) || $oTalk->getUserId() != $this->oUserCurrent->getId() && !$this->oUserCurrent->isAdministrator()) {
         $this->Message_AddErrorSingle($this->Lang_Get('talk_not_found'), $this->Lang_Get('error'));
         return;
     }
     // Получаем список всех участников разговора
     $aTalkUsers = $oTalk->getTalkUsers();
     $aUsers = explode(',', $sUsers);
     // Получаем список пользователей, которые не принимают письма
     $aUserInBlacklist = $this->Talk_GetBlacklistByTargetId($this->oUserCurrent->getId());
     // Обрабатываем добавление по каждому переданному логину пользователя
     foreach ($aUsers as $sUser) {
         $sUser = trim($sUser);
         if ($sUser == '') {
             continue;
         }
         // Попытка добавить себя
         if (strtolower($sUser) == strtolower($this->oUserCurrent->getLogin())) {
             $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('talk_speaker_add_self'));
             continue;
         }
         if (($oUser = $this->User_GetUserByLogin($sUser)) && $oUser->getActivate() == 1) {
             if (!in_array($oUser->getId(), $aUserInBlacklist)) {
                 if (array_key_exists($oUser->getId(), $aTalkUsers)) {
                     switch ($aTalkUsers[$oUser->getId()]->getUserActive()) {
                         // Если пользователь ранее был удален админом разговора,
                         // то добавляем его снова
                         case ModuleTalk::TALK_USER_DELETE_BY_AUTHOR:
                             if ($this->Talk_AddTalkUser(Engine::GetEntity('Talk_TalkUser', array('talk_id' => $idTalk, 'user_id' => $oUser->getId(), 'date_last' => null, 'talk_user_active' => ModuleTalk::TALK_USER_ACTIVE)))) {
                                 $this->Notify_SendTalkNew($oUser, $this->oUserCurrent, $oTalk);
                                 $aResult[] = array('bStateError' => false, 'sMsgTitle' => $this->Lang_Get('attention'), 'sMsg' => $this->Lang_Get('talk_speaker_add_ok', array('login', $sUser)), 'sUserId' => $oUser->getId(), 'sUserLogin' => $oUser->getLogin(), 'sUserLink' => $oUser->getUserWebPath());
                                 $bState = true;
                             } else {
                                 $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('system_error'));
                             }
                             break;
                             // Если пользователь является активным участником разговора,
                             // возвращаем ошибку
                         // Если пользователь является активным участником разговора,
                         // возвращаем ошибку
                         case ModuleTalk::TALK_USER_ACTIVE:
                             $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('talk_speaker_user_already_exist', array('login' => $sUser)));
                             break;
                             // Если пользователь удалил себя из разговора самостоятельно,
                             // то блокируем повторное добавление
                         // Если пользователь удалил себя из разговора самостоятельно,
                         // то блокируем повторное добавление
                         case ModuleTalk::TALK_USER_DELETE_BY_SELF:
                             $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('talk_speaker_delete_by_self', array('login' => $sUser)));
                             break;
                         default:
                             $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('system_error'));
                     }
                 } elseif ($this->Talk_AddTalkUser(Engine::GetEntity('Talk_TalkUser', array('talk_id' => $idTalk, 'user_id' => $oUser->getId(), 'date_last' => null, 'talk_user_active' => ModuleTalk::TALK_USER_ACTIVE)))) {
                     $this->Notify_SendTalkNew($oUser, $this->oUserCurrent, $oTalk);
                     $aResult[] = array('bStateError' => false, 'sMsgTitle' => $this->Lang_Get('attention'), 'sMsg' => $this->Lang_Get('talk_speaker_add_ok', array('login', $sUser)), 'sUserId' => $oUser->getId(), 'sUserLogin' => $oUser->getLogin(), 'sUserLink' => $oUser->getUserWebPath());
                     $bState = true;
                 } else {
                     $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('system_error'));
                 }
             } else {
                 // Добавляем пользователь не принимает сообщения
                 $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('talk_user_in_blacklist', array('login' => $sUser)));
             }
         } else {
             // Пользователь не найден в базе данных или не активен
             $aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('error'), 'sMsg' => $this->Lang_Get('user_not_found', array('login' => $sUser)));
         }
     }
     // Передаем во вьевер массив результатов обработки по каждому пользователю
     $this->Viewer_AssignAjax('aUsers', $aResult);
 }