mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-05 16:04:24 +03:00
169 lines
5.6 KiB
PHP
169 lines
5.6 KiB
PHP
<?
|
||
/*-------------------------------------------------------
|
||
*
|
||
* LiveStreet Engine Social Networking
|
||
* Copyright © 2008 Mzhelskiy Maxim
|
||
*
|
||
*--------------------------------------------------------
|
||
*
|
||
* Official site: www.livestreet.ru
|
||
* Contact e-mail: rus.engine@gmail.com
|
||
*
|
||
* GNU General Public License, version 2:
|
||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||
*
|
||
---------------------------------------------------------
|
||
*/
|
||
|
||
/**
|
||
* Обрабатывает профайл юзера, т.е. УРЛ вида /profile/login/
|
||
*
|
||
*/
|
||
class ActionProfile extends Action {
|
||
/**
|
||
* Логин юзера из УРЛа
|
||
*
|
||
* @var unknown_type
|
||
*/
|
||
protected $sUserLogin=null;
|
||
/**
|
||
* Объект юзера чей профиль мы смотрим
|
||
*
|
||
* @var unknown_type
|
||
*/
|
||
protected $oUserProfile;
|
||
|
||
public function Init() {
|
||
$this->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);
|
||
}
|
||
}
|
||
?>
|