mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-26 11:40:48 +03:00
Постраничность пользователей в управлении блогом
This commit is contained in:
parent
531945a0c5
commit
96c47f8f6a
|
@ -119,7 +119,7 @@ class ActionBlog extends Action {
|
|||
$this->AddEvent('add','EventAddBlog');
|
||||
$this->AddEvent('edit','EventEditBlog');
|
||||
$this->AddEvent('delete','EventDeleteBlog');
|
||||
$this->AddEvent('admin','EventAdminBlog');
|
||||
$this->AddEventPreg('/^admin$/i','/^\d+$/i','/^(page(\d+))?$/i','EventAdminBlog');
|
||||
$this->AddEvent('invite','EventInviteBlog');
|
||||
|
||||
$this->AddEvent('ajaxaddcomment','AjaxAddComment');
|
||||
|
@ -415,19 +415,30 @@ class ActionBlog extends Action {
|
|||
}
|
||||
$this->Blog_UpdateBlog($oBlog);
|
||||
}
|
||||
/**
|
||||
* Текущая страница
|
||||
*/
|
||||
$iPage= $this->GetParamEventMatch(1,2) ? $this->GetParamEventMatch(1,2) : 1;
|
||||
/**
|
||||
* Получаем список подписчиков блога
|
||||
*/
|
||||
$aBlogUsers=$this->Blog_GetBlogUsersByBlogId(
|
||||
$aResult=$this->Blog_GetBlogUsersByBlogId(
|
||||
$oBlog->getId(),
|
||||
array(
|
||||
ModuleBlog::BLOG_USER_ROLE_BAN,
|
||||
ModuleBlog::BLOG_USER_ROLE_USER,
|
||||
ModuleBlog::BLOG_USER_ROLE_MODERATOR,
|
||||
ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR
|
||||
)
|
||||
),$iPage,Config::Get('module.blog.users_per_page')
|
||||
);
|
||||
|
||||
$aBlogUsers=$aResult['collection'];
|
||||
|
||||
/**
|
||||
* Формируем постраничность
|
||||
*/
|
||||
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.blog.users_per_page'),4,Router::GetPath('blog')."admin/{$oBlog->getId()}");
|
||||
$this->Viewer_Assign('aPaging',$aPaging);
|
||||
|
||||
$this->Viewer_AddHtmlTitle($oBlog->getTitle());
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('blog_admin'));
|
||||
|
||||
|
@ -443,8 +454,8 @@ class ActionBlog extends Action {
|
|||
* и добавляем блок-форму для приглашения
|
||||
*/
|
||||
if($oBlog->getType()=='close') {
|
||||
$aBlogUsersInvited=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_INVITE);
|
||||
$this->Viewer_Assign('aBlogUsersInvited',$aBlogUsersInvited);
|
||||
$aBlogUsersInvited=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_INVITE,null);
|
||||
$this->Viewer_Assign('aBlogUsersInvited',$aBlogUsersInvited['collection']);
|
||||
$this->Viewer_AddBlock('right','actions/ActionBlog/invited.tpl');
|
||||
}
|
||||
}
|
||||
|
@ -770,9 +781,12 @@ class ActionBlog extends Action {
|
|||
/**
|
||||
* Получаем список юзеров блога
|
||||
*/
|
||||
$aBlogUsers=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_USER);
|
||||
$aBlogModerators=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_MODERATOR);
|
||||
$aBlogAdministrators=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR);
|
||||
$aBlogUsersResult=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_USER);
|
||||
$aBlogUsers=$aBlogUsersResult['collection'];
|
||||
$aBlogModeratorsResult=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_MODERATOR);
|
||||
$aBlogModerators=$aBlogModeratorsResult['collection'];
|
||||
$aBlogAdministratorsResult=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR);
|
||||
$aBlogAdministrators=$aBlogAdministratorsResult['collection'];
|
||||
|
||||
/**
|
||||
* Для админов проекта получаем список блогов и передаем их во вьювер
|
||||
|
@ -1069,9 +1083,10 @@ class ActionBlog extends Action {
|
|||
}
|
||||
|
||||
/**
|
||||
* Получаем список пользователей блога (любого статуса)
|
||||
* Получаем список пользователей блога (любого статуса)
|
||||
* Это полный АХТУНГ - исправить!
|
||||
*/
|
||||
$aBlogUsers = $this->Blog_GetBlogUsersByBlogId(
|
||||
$aBlogUsersResult = $this->Blog_GetBlogUsersByBlogId(
|
||||
$oBlog->getId(),
|
||||
array(
|
||||
ModuleBlog::BLOG_USER_ROLE_BAN,
|
||||
|
@ -1080,8 +1095,9 @@ class ActionBlog extends Action {
|
|||
ModuleBlog::BLOG_USER_ROLE_USER,
|
||||
ModuleBlog::BLOG_USER_ROLE_MODERATOR,
|
||||
ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR
|
||||
)
|
||||
),null // пока костылем
|
||||
);
|
||||
$aBlogUsers=$aBlogUsersResult['collection'];
|
||||
$aUsers=explode(',',$sUsers);
|
||||
|
||||
$aResult=array();
|
||||
|
|
|
@ -375,7 +375,7 @@ class ModuleBlog extends Module {
|
|||
* @param (null|int|array) $iRole
|
||||
* @return array
|
||||
*/
|
||||
public function GetBlogUsersByBlogId($sBlogId,$iRole=null) {
|
||||
public function GetBlogUsersByBlogId($sBlogId,$iRole=null,$iPage=1,$iPerPage=100) {
|
||||
$aFilter=array(
|
||||
'blog_id'=> $sBlogId,
|
||||
);
|
||||
|
@ -383,23 +383,23 @@ class ModuleBlog extends Module {
|
|||
$aFilter['user_role']=$iRole;
|
||||
}
|
||||
$s=serialize($aFilter);
|
||||
if (false === ($data = $this->Cache_Get("blog_relation_user_by_filter_$s"))) {
|
||||
$data = $this->oMapperBlog->GetBlogUsers($aFilter);
|
||||
$this->Cache_Set($data, "blog_relation_user_by_filter_$s", array("blog_relation_change_blog_{$sBlogId}"), 60*60*24*3);
|
||||
if (false === ($data = $this->Cache_Get("blog_relation_user_by_filter_{$s}_{$iPage}_{$iPerPage}"))) {
|
||||
$data = array('collection'=>$this->oMapperBlog->GetBlogUsers($aFilter,$iCount,$iPage,$iPerPage),'count'=>$iCount);
|
||||
$this->Cache_Set($data, "blog_relation_user_by_filter_{$s}_{$iPage}_{$iPerPage}", array("blog_relation_change_blog_{$sBlogId}"), 60*60*24*3);
|
||||
}
|
||||
/**
|
||||
* Достаем дополнительные данные, для этого формируем список юзеров и делаем мульти-запрос
|
||||
*/
|
||||
if ($data) {
|
||||
if ($data['collection']) {
|
||||
$aUserId=array();
|
||||
foreach ($data as $oBlogUser) {
|
||||
foreach ($data['collection'] as $oBlogUser) {
|
||||
$aUserId[]=$oBlogUser->getUserId();
|
||||
}
|
||||
$aUsers=$this->User_GetUsersAdditionalData($aUserId);
|
||||
$aBlogs=$this->Blog_GetBlogsAdditionalData($sBlogId);
|
||||
|
||||
$aResults=array();
|
||||
foreach ($data as $oBlogUser) {
|
||||
foreach ($data['collection'] as $oBlogUser) {
|
||||
if (isset($aUsers[$oBlogUser->getUserId()])) {
|
||||
$oBlogUser->setUser($aUsers[$oBlogUser->getUserId()]);
|
||||
} else {
|
||||
|
@ -412,7 +412,7 @@ class ModuleBlog extends Module {
|
|||
}
|
||||
$aResults[$oBlogUser->getUserId()]=$oBlogUser;
|
||||
}
|
||||
$data=$aResults;
|
||||
$data['collection']=$aResults;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
|
|
@ -126,7 +126,7 @@ class ModuleBlog_MapperBlog extends Mapper {
|
|||
return false;
|
||||
}
|
||||
|
||||
public function GetBlogUsers($aFilter) {
|
||||
public function GetBlogUsers($aFilter,&$iCount=null,$iCurrPage=null,$iPerPage=null) {
|
||||
$sWhere=' 1=1 ';
|
||||
if (isset($aFilter['blog_id'])) {
|
||||
$sWhere.=" AND bu.blog_id = ".(int)$aFilter['blog_id'];
|
||||
|
@ -148,11 +148,17 @@ class ModuleBlog_MapperBlog extends Mapper {
|
|||
FROM
|
||||
".Config::Get('db.table.blog_user')." as bu
|
||||
WHERE
|
||||
".$sWhere."
|
||||
;
|
||||
";
|
||||
".$sWhere." ";
|
||||
|
||||
if (is_null($iCurrPage)) {
|
||||
$aRows=$this->oDb->select($sql);
|
||||
} else {
|
||||
$sql.=" LIMIT ?d, ?d ";
|
||||
$aRows=$this->oDb->selectPage($iCount,$sql,($iCurrPage-1)*$iPerPage, $iPerPage);
|
||||
}
|
||||
|
||||
$aBlogUsers=array();
|
||||
if ($aRows=$this->oDb->select($sql)) {
|
||||
if ($aRows) {
|
||||
foreach ($aRows as $aUser) {
|
||||
$aBlogUsers[]=Engine::GetEntity('Blog_BlogUser',$aUser);
|
||||
}
|
||||
|
|
|
@ -1241,7 +1241,8 @@ class ModuleTopic extends Module {
|
|||
* @param unknown_type $oUserTopic
|
||||
*/
|
||||
public function SendNotifyTopicNew($oBlog,$oTopic,$oUserTopic) {
|
||||
$aBlogUsers=$this->Blog_GetBlogUsersByBlogId($oBlog->getId());
|
||||
$aBlogUsersResult=$this->Blog_GetBlogUsersByBlogId($oBlog->getId(),null,null); // нужно постранично пробегаться по всем
|
||||
$aBlogUsers=$aBlogUsersResult['collection'];
|
||||
foreach ($aBlogUsers as $oBlogUser) {
|
||||
if ($oBlogUser->getUserId()==$oUserTopic->getId()) {
|
||||
continue;
|
||||
|
|
|
@ -154,6 +154,7 @@ $config['acl']['vote']['comment']['limit_time'] = 60*60*24*5; // ог
|
|||
*/
|
||||
// Модуль Blog
|
||||
$config['module']['blog']['per_page'] = 20; // Число блогов на страницу
|
||||
$config['module']['blog']['users_per_page'] = 20; // Число пользователей блога на страницу
|
||||
$config['module']['blog']['personal_good'] = -5; // Рейтинг топика в персональном блоге ниже которого он считается плохим
|
||||
$config['module']['blog']['collective_good'] = -3; // рейтинг топика в коллективных блогах ниже которого он считается плохим
|
||||
$config['module']['blog']['index_good'] = 8; // Рейтинг топика выше которого(включительно) он попадает на главную
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
|
||||
<input type="submit" name="submit_blog_admin" value="{$aLang.blog_admin_users_submit}" />
|
||||
</form>
|
||||
<br>
|
||||
{include file='paging.tpl' aPaging=$aPaging}
|
||||
{else}
|
||||
{$aLang.blog_admin_users_empty}
|
||||
{/if}
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
|
||||
<input type="submit" name="submit_blog_admin" value="{$aLang.blog_admin_users_submit}" />
|
||||
</form>
|
||||
<br>
|
||||
{include file='paging.tpl' aPaging=$aPaging}
|
||||
{else}
|
||||
{$aLang.blog_admin_users_empty}
|
||||
{/if}
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
|
||||
<input type="submit" name="submit_blog_admin" value="{$aLang.blog_admin_users_submit}">
|
||||
</form>
|
||||
<br>
|
||||
{include file='paging.tpl' aPaging=$aPaging}
|
||||
{else}
|
||||
{$aLang.blog_admin_users_empty}
|
||||
{/if}
|
||||
|
|
Loading…
Reference in a new issue