1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

add cache

This commit is contained in:
Mzhelskiy Maxim 2010-01-08 18:59:17 +00:00
parent 42bdc334ee
commit 65bc1d85d9
2 changed files with 48 additions and 38 deletions

View file

@ -632,26 +632,27 @@ class LsBlog extends Module {
if ($oUser->isAdministrator()) {
return $this->GetBlogs();
}
/**
* Заносим блоги, созданные пользователем
*/
$aOpenBlogsUser=array();
$aOpenBlogsUser=$this->GetBlogsByOwnerId($oUser->getId());
/**
* Добавляем блоги, в которых состоит пользователь
* (читателем, модератором, или администратором)
*/
$aBlogUsers=$this->GetBlogUsersByUserId($oUser->getId());
foreach ($aBlogUsers as $oBlogUser) {
$oBlog=$oBlogUser->getBlog();
if($oBlogUser->getUserRole()>self::BLOG_USER_ROLE_GUEST) {
$aOpenBlogsUser[$oBlog->getId()]=$oBlog;
}
}
return $aOpenBlogsUser;
if (false === ($aOpenBlogsUser = $this->Cache_Get("blog_accessible_user_{$oUser->getId()}"))) {
/**
* Заносим блоги, созданные пользователем
*/
$aOpenBlogsUser=array();
$aOpenBlogsUser=$this->GetBlogsByOwnerId($oUser->getId());
/**
* Добавляем блоги, в которых состоит пользователь
* (читателем, модератором, или администратором)
*/
$aBlogUsers=$this->GetBlogUsersByUserId($oUser->getId());
foreach ($aBlogUsers as $oBlogUser) {
$oBlog=$oBlogUser->getBlog();
if($oBlogUser->getUserRole()>self::BLOG_USER_ROLE_GUEST) {
$aOpenBlogsUser[$oBlog->getId()]=$oBlog;
}
}
$this->Cache_Set($aOpenBlogsUser, "blog_accessible_user_{$oUser->getId()}", array('blog_new','blog_update',"blog_relation_change_{$oUser->getId()}"), 60*60*24);
}
return $aOpenBlogsUser;
}
/**
@ -665,26 +666,36 @@ class LsBlog extends Module {
if ($oUser&&$oUser->isAdministrator()) {
return array();
}
$aCloseBlogs=array();
$aCloseBlogs = $this->oMapperBlog->GetCloseBlogs();
if(!$oUser) {
return $aCloseBlogs;
}
/**
* Получаем массив идентификаторов блогов,
* которые являются откытыми для данного пользователя
*/
$aOpenBlogs = array();
$aBlogUsers=$this->GetBlogUsersByUserId($oUser->getId());
foreach ($aBlogUsers as $oBlogUser) {
$oBlog=$oBlogUser->getBlog();
if($oBlogUser->getUserRole()>self::BLOG_USER_ROLE_GUEST) {
$aOpenBlogs[]=$oBlog->getId();
$sUserId=$oUser ? $oUser->getId() : 'quest';
if (false === ($aCloseBlogs = $this->Cache_Get("blog_inaccessible_user_{$sUserId}"))) {
$aCloseBlogs=array();
$aCloseBlogs = $this->oMapperBlog->GetCloseBlogs();
if($oUser) {
/**
* Получаем массив идентификаторов блогов,
* которые являются откытыми для данного пользователя
*/
$aOpenBlogs = array();
$aBlogUsers=$this->GetBlogUsersByUserId($oUser->getId());
foreach ($aBlogUsers as $oBlogUser) {
$oBlog=$oBlogUser->getBlog();
if($oBlogUser->getUserRole()>self::BLOG_USER_ROLE_GUEST) {
$aOpenBlogs[]=$oBlog->getId();
}
}
$aCloseBlogs=array_diff($aCloseBlogs,$aOpenBlogs);
}
// Сохраняем в кеш
if ($oUser) {
$this->Cache_Set($aCloseBlogs, "blog_inaccessible_user_{$sUserId}", array('blog_new','blog_update',"blog_relation_change_{$oUser->getId()}"), 60*60*24);
} else {
$this->Cache_Set($aCloseBlogs, "blog_inaccessible_user_{$sUserId}", array('blog_new','blog_update'), 60*60*24*3);
}
}
return array_diff($aCloseBlogs,$aOpenBlogs);
return $aCloseBlogs;
}
/**

View file

@ -438,8 +438,7 @@ class LsUser extends Module {
if ($this->oUserCurrent) {
return;
}
if (isset($_COOKIE['key'])) {
$sKey=$_COOKIE['key'];
if (isset($_COOKIE['key']) and $sKey=$_COOKIE['key']) {
if ($oUser=$this->GetUserBySessionKey($sKey)) {
$this->Authorization($oUser);
} else {