Ejemplo n.º 1
0
 /**
  * Рассылает уведомления о новом топике подписчикам блогов
  *
  * @param ModuleTopic_EntityTopic $oTopic Объект топика
  * @param ModuleUser_EntityUser $oUserTopic Объект пользователя
  */
 public function SendNotifyTopicNew($oTopic, $oUserTopic)
 {
     /**
      * Сначала отправляем подписчикам блогов
      */
     $iPage = 1;
     $aBlogs = $oTopic->getBlogsId();
     $aUserIdSend = array($oUserTopic->getId());
     while ($aBlogUsersResult = $this->Blog_GetBlogUsersByBlogId($aBlogs, null, $iPage, 50) and $aBlogUsersResult['collection']) {
         $aBlogUsers = $aBlogUsersResult['collection'];
         foreach ($aBlogUsers as $oBlogUser) {
             if (in_array($oBlogUser->getUserId(), $aUserIdSend)) {
                 continue;
             }
             $this->SendNotifyTopicNewToSubscribeBlog($oBlogUser->getUser(), $oTopic, $oBlogUser->getBlog(), $oUserTopic);
             $aUserIdSend[] = $oBlogUser->getUserId();
         }
         $iPage++;
     }
     /**
      * Теперь отправляем авторам блогов
      */
     $aBlogs = $this->Blog_GetBlogsAdditionalData($aBlogs);
     foreach ($aBlogs as $oBlog) {
         if ($oBlog->getOwnerId() != $oUserTopic->getId() and !in_array($oBlog->getOwnerId(), $aUserIdSend)) {
             $this->SendNotifyTopicNewToSubscribeBlog($oBlog->getOwner(), $oTopic, $oBlog, $oUserTopic);
             $aUserIdSend[] = $oBlog->getOwnerId();
         }
     }
 }