/** * Обновляет блог в БД * * @param ModuleBlog_EntityBlog $oBlog Объект блога * @return bool */ public function UpdateBlog(ModuleBlog_EntityBlog $oBlog) { $sql = "UPDATE " . Config::Get('db.table.blog') . " \n\t\t\tSET \n\t\t\t\tblog_title= ?,\n\t\t\t\tblog_description= ?,\n\t\t\t\tblog_type= ?,\n\t\t\t\tblog_date_edit= ?,\n\t\t\t\tblog_rating= ?f,\n\t\t\t\tblog_count_vote = ?d,\n\t\t\t\tblog_count_user= ?d,\n\t\t\t\tblog_count_topic= ?d,\n\t\t\t\tblog_limit_rating_topic= ?f ,\n\t\t\t\tblog_url= ?,\n\t\t\t\tblog_avatar= ?\n\t\t\tWHERE\n\t\t\t\tblog_id = ?d\n\t\t"; if ($this->oDb->query($sql, $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateEdit(), $oBlog->getRating(), $oBlog->getCountVote(), $oBlog->getCountUser(), $oBlog->getCountTopic(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getAvatar(), $oBlog->getId())) { return true; } return false; }
/** * Выполняет отправку приглашения в блог * (по внутренней почте и на 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()); }
/** * Отправляет юзеру уведомление о новом топике в блоге, в котором он состоит * * @param ModuleUser_EntityUser $oUserTo Объект пользователя кому отправляем * @param ModuleTopic_EntityTopic $oTopic Объект топика * @param ModuleBlog_EntityBlog $oBlog Объект блога * @param ModuleUser_EntityUser $oUserTopic Объект пользователя, написавшего топик * @return bool */ public function SendNotifyTopicNewToSubscribeBlog(ModuleUser_EntityUser $oUserTo, ModuleTopic_EntityTopic $oTopic, ModuleBlog_EntityBlog $oBlog, ModuleUser_EntityUser $oUserTopic) { /** * Проверяем можно ли юзеру рассылать уведомление */ if (!$oUserTo->getSettingsNoticeNewTopic()) { return false; } $this->Notify_Send($oUserTo, 'topic_new.tpl', $this->Lang_Get('emails.topic_new.subject') . ' «' . htmlspecialchars($oBlog->getTitle()) . '»', array('oUserTo' => $oUserTo, 'oTopic' => $oTopic, 'oBlog' => $oBlog, 'oUserTopic' => $oUserTopic)); return true; }
/** * Выполняет отправку приглашения в блог * (по внутренней почте и на email) * * @param ModuleBlog_EntityBlog $oBlog * @param ModuleUser_EntityUser $oUser */ protected function SendBlogInvite($oBlog, $oUser) { $sTitle = E::ModuleLang()->Get('blog_user_invite_title', array('blog_title' => $oBlog->getTitle())); F::IncludeLib('XXTEA/encrypt.php'); // Формируем код подтверждения в URL $sCode = $oBlog->getId() . '_' . $oUser->getId(); $sCode = rawurlencode(base64_encode(xxtea_encrypt($sCode, Config::Get('module.blog.encrypt')))); $aPath = array('accept' => R::GetPath('blog') . 'invite/accept/?code=' . $sCode, 'reject' => R::GetPath('blog') . 'invite/reject/?code=' . $sCode); // Сформируем название типа блога на языке приложения. // Это может быть либо название, либо текстовка. $sBlogType = mb_strtolower(preg_match('~^\\{\\{(.*)\\}\\}$~', $sBlogType = $oBlog->getBlogType()->getTypeName(), $aMatches) ? E::ModuleLang()->Get($aMatches[1]) : $sBlogType, 'UTF-8'); $sText = E::ModuleLang()->Get('blog_user_invite_text', array('login' => $this->oUserCurrent->getLogin(), 'accept_path' => $aPath['accept'], 'reject_path' => $aPath['reject'], 'blog_title' => $oBlog->getTitle(), 'blog_type' => $sBlogType)); $oTalk = E::ModuleTalk()->SendTalk($sTitle, $sText, $this->oUserCurrent, array($oUser), false, false); // Отправляем пользователю заявку E::ModuleNotify()->SendBlogUserInvite($oUser, $this->oUserCurrent, $oBlog, R::GetPath('talk') . 'read/' . $oTalk->getId() . '/'); // Удаляем отправляющего юзера из переписки E::ModuleTalk()->DeleteTalkUserByArray($oTalk->getId(), $this->oUserCurrent->getId()); }
/** * Обновляет блог в БД * * @param ModuleBlog_EntityBlog $oBlog Объект блога * * @return bool */ public function UpdateBlog($oBlog) { $sql = "\n UPDATE ?_blog\n SET\n blog_title = ?,\n blog_description = ?,\n blog_type = ?,\n blog_date_edit = ?,\n blog_rating = ?f,\n blog_count_vote = ?d,\n blog_count_user = ?d,\n blog_count_topic = ?d,\n blog_limit_rating_topic = ?f ,\n blog_url = ?,\n blog_avatar = ?\n WHERE\n blog_id = ?d\n "; $bResult = $this->oDb->query($sql, $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateEdit(), $oBlog->getRating(), $oBlog->getCountVote(), $oBlog->getCountUser(), $oBlog->getCountTopic(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getAvatar(), $oBlog->getId()); return $bResult !== false; }
/** * Обновляет блог в БД * * @param ModuleBlog_EntityBlog $oBlog Объект блога * @return bool */ public function UpdateBlog(ModuleBlog_EntityBlog $oBlog) { $sql = "UPDATE " . Config::Get('db.table.blog') . "\n\t\t\tSET \n\t\t\t\tblog_title= ?,\n\t\t\t\tblog_description= ?,\n\t\t\t\tblog_type= ?,\n\t\t\t\tblog_date_edit= ?,\n\t\t\t\tblog_count_vote = ?d,\n\t\t\t\tblog_count_user= ?d,\n\t\t\t\tblog_count_topic= ?d,\n\t\t\t\tblog_limit_rating_topic= ?f ,\n\t\t\t\tblog_url= ?,\n\t\t\t\tblog_skip_index= ?d,\n\t\t\t\tblog_avatar= ?\n\t\t\tWHERE\n\t\t\t\tblog_id = ?d\n\t\t"; $res = $this->oDb->query($sql, $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateEdit(), $oBlog->getCountVote(), $oBlog->getCountUser(), $oBlog->getCountTopic(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getSkipIndex(), $oBlog->getAvatar(), $oBlog->getId()); return $this->IsSuccessful($res); }