Viewer_AddBlocks('right',array('actions/ActionProfile/sidebar.tpl')); } protected function RegisterEvent() { $this->AddEventPreg('/^[\w\-\_]+$/i','/^(whois)?$/i','EventWhois'); $this->AddEventPreg('/^[\w\-\_]+$/i','/^favourites$/i','/^(page(\d+))?$/i','EventFavourite'); } /********************************************************************************** ************************ РЕАЛИЗАЦИЯ ЭКШЕНА *************************************** ********************************************************************************** */ /** * Выводит список избранноего юзера * */ protected function EventFavourite() { /** * Получаем логин из УРЛа */ $sUserLogin=$this->sCurrentEvent; /** * Проверяем есть ли такой юзер */ if (!($this->oUserProfile=$this->User_GetUserByLogin($sUserLogin))) { return parent::EventNotFound(); } /** * Передан ли номер страницы */ $iPage=$this->GetParamEventMatch(1,2) ? $this->GetParamEventMatch(1,2) : 1; /** * Получаем список избранных топиков */ $iCount=0; $aResult=$this->Topic_GetTopicsFavouriteByUserId($this->oUserProfile->getId(),$iCount,$iPage,BLOG_TOPIC_PER_PAGE); $aTopics=$aResult['collection']; /** * Формируем постраничность */ $aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,BLOG_TOPIC_PER_PAGE,4,DIR_WEB_ROOT.'/profile/'.$this->oUserProfile->getLogin().'/favourites'); /** * Загружаем переменные в шаблон */ $this->Viewer_Assign('aPaging',$aPaging); $this->Viewer_Assign('aTopics',$aTopics); $this->Viewer_AddHtmlTitle('Профиль '.$this->oUserProfile->getLogin()); $this->Viewer_AddHtmlTitle('Избранное'); /** * Устанавливаем шаблон вывода */ $this->SetTemplateAction('favourites'); } /** * Показывает инфу профиля * */ protected function EventWhois() { /** * Получаем логин из УРЛа */ $sUserLogin=$this->sCurrentEvent; /** * Проверяем есть ли такой юзер */ if (!($this->oUserProfile=$this->User_GetUserByLogin($sUserLogin))) { return parent::EventNotFound(); } /** * Получаем список друзей */ $aUsersFrend=$this->User_GetUsersFrend($this->oUserProfile->getId()); /** * Получаем список тех у кого в друзьях */ $aUsersSelfFrend=$this->User_GetUsersSelfFrend($this->oUserProfile->getId()); if (USER_USE_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); } /** * Получаем список блогов в которых состоит юзер */ $aBlogsUser=$this->Blog_GetRelationBlogUsersByUserId($this->oUserProfile->getId()); /** * Получаем список блогов которые создал юзер */ $aBlogsOwner=$this->Blog_GetBlogsByOwnerId($this->oUserProfile->getId()); /** * Загружаем переменные в шаблон */ $this->Viewer_Assign('aBlogsUser',$aBlogsUser); $this->Viewer_Assign('aBlogsOwner',$aBlogsOwner); $this->Viewer_Assign('aUsersFrend',$aUsersFrend); $this->Viewer_Assign('aUsersSelfFrend',$aUsersSelfFrend); $this->Viewer_AddHtmlTitle('Профиль '.$this->oUserProfile->getLogin()); $this->Viewer_AddHtmlTitle('Whois'); /** * Устанавливаем шаблон вывода */ $this->SetTemplateAction('whois'); } /** * Выполняется при завершении работы экшена * */ public function EventShutdown() { if (!$this->oUserProfile) { return ; } /** * Загружаем в шаблон необходимые переменные */ $iCountTopicFavourite=$this->Topic_GetCountTopicsFavouriteByUserId($this->oUserProfile->getId()); $iCountTopicUser=$this->Topic_GetCountTopicsPersonalByUser($this->oUserProfile->getId(),1); $iCountCommentUser=$this->Comment_GetCountCommentsByUserId($this->oUserProfile->getId()); $this->Viewer_Assign('oUserProfile',$this->oUserProfile); $this->Viewer_Assign('iCountTopicUser',$iCountTopicUser); $this->Viewer_Assign('iCountCommentUser',$iCountCommentUser); $this->Viewer_Assign('iCountTopicFavourite',$iCountTopicFavourite); } } ?>