/** * Рассылает уведомления о новом топике подписчикам блогов * * @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(); } } }