mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-08 01:14:24 +03:00
264 lines
7.3 KiB
PHP
264 lines
7.3 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
|
||
*
|
||
---------------------------------------------------------
|
||
*/
|
||
|
||
set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__));
|
||
require_once('mapper/Blog.mapper.class.php');
|
||
|
||
/**
|
||
* Модуль для работы с блогами
|
||
*
|
||
*/
|
||
class Blog extends Module {
|
||
protected $oMapperBlog;
|
||
protected $oUserCurrent=null;
|
||
|
||
/**
|
||
* Инициализация
|
||
*
|
||
*/
|
||
public function Init() {
|
||
$this->oMapperBlog=new Mapper_Blog($this->Database_GetConnect());
|
||
$this->oMapperBlog->SetUserCurrent($this->User_GetUserCurrent());
|
||
$this->oUserCurrent=$this->User_GetUserCurrent();
|
||
}
|
||
/**
|
||
* Получить персональный блог юзера
|
||
*
|
||
* @param Entity_User $oUser
|
||
* @return unknown
|
||
*/
|
||
public function GetPersonalBlogByUser(UserEntity_User $oUser) {
|
||
return $this->oMapperBlog->GetPersonalBlogByUser($oUser);
|
||
}
|
||
/**
|
||
* Получить блог по айдишнику(номеру)
|
||
*
|
||
* @param unknown_type $sBlogId
|
||
* @return unknown
|
||
*/
|
||
public function GetBlogById($sBlogId) {
|
||
return $this->oMapperBlog->GetBlogById($sBlogId);
|
||
}
|
||
/**
|
||
* Получить блог по УРЛу
|
||
*
|
||
* @param unknown_type $sBlogUrl
|
||
* @return unknown
|
||
*/
|
||
public function GetBlogByUrl($sBlogUrl) {
|
||
$s2=-1;
|
||
if ($this->oUserCurrent) {
|
||
$s2=$this->oUserCurrent->getId();
|
||
}
|
||
if (false === ($data = $this->Cache_Get("blog_url_{$sBlogUrl}_{$s2}"))) {
|
||
if ($data = $this->oMapperBlog->GetBlogByUrl($sBlogUrl)) {
|
||
$this->Cache_Set($data, "blog_url_{$sBlogUrl}_{$s2}", array("blog_update_{$data->getId()}",'blog_new'), 60*5);
|
||
} else {
|
||
$this->Cache_Set($data, "blog_url_{$sBlogUrl}_{$s2}", array('blog_update','blog_new'), 60*5);
|
||
}
|
||
}
|
||
return $data;
|
||
}
|
||
/**
|
||
* Создаёт персональный блог
|
||
*
|
||
* @param Entity_User $oUser
|
||
* @return unknown
|
||
*/
|
||
public function CreatePersonalBlog(UserEntity_User $oUser) {
|
||
$oBlog=new BlogEntity_Blog();
|
||
$oBlog->setOwnerId($oUser->getId());
|
||
$oBlog->setTitle('Блог им. '.$oUser->getLogin());
|
||
$oBlog->setType('personal');
|
||
$oBlog->setDescription('Это ваш персональный блог.');
|
||
$oBlog->setDateAdd(date("Y-m-d H:i:s"));
|
||
$oBlog->setLimitRatingTopic(-1000);
|
||
$oBlog->setUrl(null);
|
||
return $this->AddBlog($oBlog);
|
||
}
|
||
/**
|
||
* Добавляет блог
|
||
*
|
||
* @param BlogEntity_Blog $oBlog
|
||
* @return unknown
|
||
*/
|
||
public function AddBlog(BlogEntity_Blog $oBlog) {
|
||
if ($sId=$this->oMapperBlog->AddBlog($oBlog)) {
|
||
$oBlog->setId($sId);
|
||
//чистим зависимые кеши
|
||
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('blog_new'));
|
||
return $oBlog;
|
||
}
|
||
return false;
|
||
}
|
||
/**
|
||
* Обновляет блог
|
||
*
|
||
* @param BlogEntity_Blog $oBlog
|
||
* @return unknown
|
||
*/
|
||
public function UpdateBlog(BlogEntity_Blog $oBlog) {
|
||
$oBlog->setDateEdit(date("Y-m-d H:i:s"));
|
||
$res=$this->oMapperBlog->UpdateBlog($oBlog);
|
||
if ($res) {
|
||
//чистим зависимые кеши
|
||
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('blog_update',"blog_update_{$oBlog->getId()}"));
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
/**
|
||
* Добавляет голосование за блог
|
||
*
|
||
* @param BlogEntity_BlogVote $oBlogVote
|
||
* @return unknown
|
||
*/
|
||
public function AddBlogVote(BlogEntity_BlogVote $oBlogVote) {
|
||
if ($this->oMapperBlog->AddBlogVote($oBlogVote)) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
/**
|
||
* Добавляет отношение юзера к блогу, по сути присоединяет к блогу
|
||
*
|
||
* @param BlogEntity_BlogUser $oBlogUser
|
||
* @return unknown
|
||
*/
|
||
public function AddRelationBlogUser(BlogEntity_BlogUser $oBlogUser) {
|
||
if ($this->oMapperBlog->AddRelationBlogUser($oBlogUser)) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
/**
|
||
* Удалет отношение юзера к блогу, по сути отключает от блога
|
||
*
|
||
* @param BlogEntity_BlogUser $oBlogUser
|
||
* @return unknown
|
||
*/
|
||
public function DeleteRelationBlogUser(BlogEntity_BlogUser $oBlogUser) {
|
||
if ($this->oMapperBlog->DeleteRelationBlogUser($oBlogUser)) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
/**
|
||
* Получает список блогов по хозяину
|
||
*
|
||
* @param unknown_type $sUserId
|
||
* @return unknown
|
||
*/
|
||
public function GetBlogsByOwnerId($sUserId) {
|
||
return $this->oMapperBlog->GetBlogsByOwnerId($sUserId);
|
||
}
|
||
/**
|
||
* Получает список отновшений блога к юзеру(пользователей блога)
|
||
*
|
||
* @param unknown_type $sBlogId
|
||
* @return unknown
|
||
*/
|
||
public function GetRelationBlogUsersByBlogId($sBlogId) {
|
||
$aFilter=array(
|
||
'blog_id'=> $sBlogId,
|
||
'is_moderator' => 0,
|
||
'is_administrator' => 0,
|
||
);
|
||
return $this->oMapperBlog->GetRelationBlogUsers($aFilter);
|
||
}
|
||
/**
|
||
* Получает отношение юзера к блогу(сотосит в блоге или нет)
|
||
*
|
||
* @param unknown_type $sUserId
|
||
* @return unknown
|
||
*/
|
||
public function GetRelationBlogUsersByUserId($sUserId) {
|
||
$aFilter=array(
|
||
'user_id'=> $sUserId
|
||
);
|
||
return $this->oMapperBlog->GetRelationBlogUsers($aFilter);
|
||
}
|
||
/**
|
||
* Состоит ли юзер в конкретном блоге
|
||
*
|
||
* @param unknown_type $sBlogId
|
||
* @param unknown_type $sUserId
|
||
* @return unknown
|
||
*/
|
||
public function GetRelationBlogUserByBlogIdAndUserId($sBlogId,$sUserId) {
|
||
$aFilter=array(
|
||
'blog_id'=> $sBlogId,
|
||
'user_id' => $sUserId
|
||
);
|
||
if ($aBlogUser=$this->oMapperBlog->GetRelationBlogUsers($aFilter)) {
|
||
return $aBlogUser[0];
|
||
}
|
||
return false;
|
||
}
|
||
/**
|
||
* Список модеро вблога
|
||
*
|
||
* @param unknown_type $sBlogId
|
||
* @return unknown
|
||
*/
|
||
public function GetBlogModeratorsByBlogId($sBlogId) {
|
||
$aFilter=array(
|
||
'blog_id'=> $sBlogId,
|
||
'is_moderator' => 1,
|
||
'is_administrator' => 0,
|
||
);
|
||
return $this->oMapperBlog->GetRelationBlogUsers($aFilter);
|
||
}
|
||
/**
|
||
* Список админов блога
|
||
*
|
||
* @param unknown_type $sBlogId
|
||
* @return unknown
|
||
*/
|
||
public function GetBlogAdministratorsByBlogId($sBlogId) {
|
||
$aFilter=array(
|
||
'blog_id'=> $sBlogId,
|
||
'is_moderator' => 0,
|
||
'is_administrator' => 1,
|
||
);
|
||
return $this->oMapperBlog->GetRelationBlogUsers($aFilter);
|
||
}
|
||
/**
|
||
* Получает список блогов по рейтингу
|
||
*
|
||
* @param unknown_type $iLimit
|
||
* @return unknown
|
||
*/
|
||
public function GetBlogsRating($iLimit=20) {
|
||
if (false === ($data = $this->Cache_Get("blog_rating_{$iLimit}"))) {
|
||
$data = $this->oMapperBlog->GetBlogsRating($iLimit);
|
||
$this->Cache_Set($data, "blog_rating_{$iLimit}", array("blog_update","blog_new"), 60*5);
|
||
}
|
||
return $data;
|
||
}
|
||
/**
|
||
* Получает голосование за блог(проверяет голосовал ли юзер за этот блог)
|
||
*
|
||
* @param unknown_type $sBlogId
|
||
* @param unknown_type $sUserId
|
||
* @return unknown
|
||
*/
|
||
public function GetBlogVote($sBlogId,$sUserId) {
|
||
return $this->oMapperBlog->GetBlogVote($sBlogId,$sUserId);
|
||
}
|
||
}
|
||
?>
|