mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-05-17 08:18:18 +03:00
добавлено управление пользователями в блогах
This commit is contained in:
parent
b67f7878a3
commit
8fe77caca3
|
@ -74,7 +74,7 @@ class ActionBlog extends Action {
|
|||
*
|
||||
* @var unknown_type
|
||||
*/
|
||||
protected $aBadBlogUrl=array('new','good','bad','edit','add');
|
||||
protected $aBadBlogUrl=array('new','good','bad','edit','add','admin');
|
||||
|
||||
/**
|
||||
* Инизиализация экшена
|
||||
|
@ -113,6 +113,7 @@ class ActionBlog extends Action {
|
|||
$this->AddEvent('new','EventNew');
|
||||
$this->AddEvent('add','EventAddBlog');
|
||||
$this->AddEvent('edit','EventEditBlog');
|
||||
$this->AddEvent('admin','EventAdminBlog');
|
||||
|
||||
$this->AddEventPreg('/^(\d+)\.html$/i','EventShowTopicPersonal');
|
||||
$this->AddEventPreg('/^[\w\-\_]+$/i','/^(\d+)\.html$/i','EventShowTopic');
|
||||
|
@ -202,8 +203,8 @@ class ActionBlog extends Action {
|
|||
/**
|
||||
* Меню
|
||||
*/
|
||||
$this->sMenuSubItemSelect='saved';
|
||||
$this->sMenuItemSelect='';
|
||||
$this->sMenuSubItemSelect='';
|
||||
$this->sMenuItemSelect='profile';
|
||||
|
||||
/**
|
||||
* Проверяем передан ли в УРЛе номер блога
|
||||
|
@ -227,6 +228,8 @@ class ActionBlog extends Action {
|
|||
}
|
||||
$this->Viewer_AddHtmlTitle($oBlog->getTitle());
|
||||
$this->Viewer_AddHtmlTitle('Редактирование блога');
|
||||
|
||||
$this->Viewer_Assign('oBlogEdit',$oBlog);
|
||||
/**
|
||||
* Устанавливаем шалон для вывода
|
||||
*/
|
||||
|
@ -272,6 +275,87 @@ class ActionBlog extends Action {
|
|||
}
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* Управление пользователями блога
|
||||
*
|
||||
* @return unknown
|
||||
*/
|
||||
protected function EventAdminBlog() {
|
||||
/**
|
||||
* Меню
|
||||
*/
|
||||
$this->sMenuItemSelect='admin';
|
||||
$this->sMenuSubItemSelect='';
|
||||
/**
|
||||
* Проверяем передан ли в УРЛе номер блога
|
||||
*/
|
||||
$sBlogId=$this->GetParam(0);
|
||||
if (!$oBlog=$this->Blog_GetBlogById($sBlogId)) {
|
||||
return parent::EventNotFound();
|
||||
}
|
||||
/**
|
||||
* Проверям авторизован ли пользователь
|
||||
*/
|
||||
if (!$this->User_IsAuthorization()) {
|
||||
$this->Message_AddErrorSingle('Для того чтобы изменить блог, сначало нужно войти под своим аккаунтом.','Нет доступа');
|
||||
return Router::Action('error');
|
||||
}
|
||||
/**
|
||||
* Явлется ли авторизованный пользователь хозяином блога
|
||||
*/
|
||||
if ($oBlog->getOwnerId()!=$this->oUserCurrent->getId() and !$this->oUserCurrent->isAdministrator()) {
|
||||
return parent::EventNotFound();
|
||||
}
|
||||
/**
|
||||
* Обрабатываем сохранение формы
|
||||
*/
|
||||
if (isset($_REQUEST['submit_blog_admin'])) {
|
||||
$aUserRank=getRequest('user_rank',array());
|
||||
if (!is_array($aUserRank)) {
|
||||
$aUserRank=array();
|
||||
}
|
||||
foreach ($aUserRank as $sUserId => $sRank) {
|
||||
if (!($oBlogUser=$this->Blog_GetRelationBlogUserByBlogIdAndUserId($oBlog->getId(),$sUserId))) {
|
||||
$this->Message_AddError('Что то не так','Ошибка');
|
||||
break;
|
||||
}
|
||||
|
||||
switch ($sRank) {
|
||||
case 'administrator':
|
||||
$oBlogUser->setIsAdministrator(1);
|
||||
$oBlogUser->setIsModerator(0);
|
||||
break;
|
||||
case 'moderator':
|
||||
$oBlogUser->setIsAdministrator(0);
|
||||
$oBlogUser->setIsModerator(1);
|
||||
break;
|
||||
default:
|
||||
$oBlogUser->setIsAdministrator(0);
|
||||
$oBlogUser->setIsModerator(0);
|
||||
break;
|
||||
}
|
||||
$this->Blog_UpdateRelationBlogUser($oBlogUser);
|
||||
$this->Message_AddNoticeSingle('Права сохранены');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Получаем список подписчиков блога
|
||||
*/
|
||||
$aBlogUsers=$this->Blog_GetRelationBlog($oBlog->getId());
|
||||
|
||||
$this->Viewer_AddHtmlTitle($oBlog->getTitle());
|
||||
$this->Viewer_AddHtmlTitle('Управление блогом');
|
||||
|
||||
$this->Viewer_Assign('oBlogEdit',$oBlog);
|
||||
$this->Viewer_Assign('aBlogUsers',$aBlogUsers);
|
||||
/**
|
||||
* Устанавливаем шалон для вывода
|
||||
*/
|
||||
$this->SetTemplateAction('admin');
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -205,7 +205,7 @@ class Blog extends Module {
|
|||
return $this->oMapperBlog->GetRelationBlogUsers($aFilter);
|
||||
}
|
||||
/**
|
||||
* Получает отношение юзера к блогу(сотосит в блоге или нет)
|
||||
* Получает отношение юзера к блогу(состоит в блоге или нет)
|
||||
*
|
||||
* @param unknown_type $sUserId
|
||||
* @return unknown
|
||||
|
@ -261,6 +261,22 @@ class Blog extends Module {
|
|||
);
|
||||
return $this->oMapperBlog->GetRelationBlogUsers($aFilter);
|
||||
}
|
||||
/**
|
||||
* Список тех кто состоит в блоге
|
||||
*
|
||||
* @param unknown_type $sBlogId
|
||||
* @return unknown
|
||||
*/
|
||||
public function GetRelationBlog($sBlogId) {
|
||||
$aFilter=array(
|
||||
'blog_id'=> $sBlogId,
|
||||
);
|
||||
return $this->oMapperBlog->GetRelationBlogUsers($aFilter);
|
||||
}
|
||||
|
||||
public function UpdateRelationBlogUser(BlogEntity_BlogUser $oBlogUser) {
|
||||
return $this->oMapperBlog->UpdateRelationBlogUser($oBlogUser);
|
||||
}
|
||||
/**
|
||||
* Получает список блогов по рейтингу
|
||||
*
|
||||
|
|
|
@ -88,6 +88,21 @@ class Mapper_Blog extends Mapper {
|
|||
return false;
|
||||
}
|
||||
|
||||
public function UpdateRelationBlogUser(BlogEntity_BlogUser $oBlogUser) {
|
||||
$sql = "UPDATE ".DB_TABLE_BLOG_USER."
|
||||
SET
|
||||
is_moderator= ?,
|
||||
is_administrator= ?
|
||||
WHERE
|
||||
blog_id = ?d
|
||||
AND
|
||||
user_id = ?d
|
||||
";
|
||||
if ($this->oDb->query($sql,$oBlogUser->getIsModerator(),$oBlogUser->getIsAdministrator(),$oBlogUser->getBlogId(),$oBlogUser->getUserId())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function GetRelationBlogUsers($aFilter) {
|
||||
$sWhere=' 1=1 ';
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
{include file='header.tpl'}
|
||||
|
||||
{include file='menu.action.tpl'}
|
||||
|
||||
|
||||
{if $sEvent=='add'}
|
||||
<h1>Создание нового блога</h1>
|
||||
{else}
|
||||
<h1>Управление блогом: <a href="{$DIR_WEB_ROOT}/blog/{$oBlogEdit->getUrl()}/" class="blog_headline_group">{$oBlogEdit->getTitle()}</a></h1>
|
||||
{include file='menu.blog_edit.tpl'}
|
||||
{/if}
|
||||
|
||||
{include file='system_message.tpl'}
|
||||
|
||||
|
|
61
templates/skin/habra/actions/ActionBlog/admin.tpl
Normal file
61
templates/skin/habra/actions/ActionBlog/admin.tpl
Normal file
|
@ -0,0 +1,61 @@
|
|||
{include file='header.tpl'}
|
||||
|
||||
|
||||
{if $sEvent=='add'}
|
||||
<h1>Создание нового блога</h1>
|
||||
{else}
|
||||
<h1>Управление блогом: <a href="{$DIR_WEB_ROOT}/blog/{$oBlogEdit->getUrl()}/" class="blog_headline_group">{$oBlogEdit->getTitle()}</a></h1>
|
||||
{include file='menu.blog_edit.tpl'}
|
||||
{/if}
|
||||
|
||||
{include file='system_message.tpl'}
|
||||
|
||||
<div class="backoffice">
|
||||
|
||||
|
||||
<form action="" method="POST" id="thisform" enctype="multipart/form-data">
|
||||
|
||||
<table width="100%" bgcolor="White" border="0" cellspacing="0" cellpadding="0" class="inbox">
|
||||
<tr>
|
||||
<td width="200px"></td>
|
||||
<td align="center">администратор</td>
|
||||
<td align="center">модератор</td>
|
||||
<td align="center">читатель</td>
|
||||
</tr>
|
||||
{foreach from=$aBlogUsers item=oBlogUser}
|
||||
<tr>
|
||||
<td><a href="{$DIR_WEB_ROOT}/profile/{$oBlogUser->getUserLogin()}/">{$oBlogUser->getUserLogin()}</a></td>
|
||||
<td align="center">
|
||||
<input type="radio" name="user_rank[{$oBlogUser->getUserId()}]" value="administrator" {if $oBlogUser->getIsAdministrator()}checked{/if}>
|
||||
</td>
|
||||
<td align="center">
|
||||
<input type="radio" name="user_rank[{$oBlogUser->getUserId()}]" value="moderator" {if $oBlogUser->getIsModerator()}checked{/if}>
|
||||
</td>
|
||||
<td align="center">
|
||||
<input type="radio" name="user_rank[{$oBlogUser->getUserId()}]" value="reader" {if !$oBlogUser->getIsAdministrator() and !$oBlogUser->getIsModerator()}checked{/if}>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
</table><br>
|
||||
|
||||
|
||||
|
||||
<p class="l-bot">
|
||||
<input type="submit" name="submit_blog_admin" value="сохранить">
|
||||
</p>
|
||||
|
||||
<div class="form_note">После нажатия на кнопку «Сохранить», права пользователей будут сохранены</div>
|
||||
|
||||
<p>Может быть, перейти на <a href="{$DIR_WEB_ROOT}/topic/add/">страницу создания топиков</a>?</p>
|
||||
<input type="hidden" name="blog_id" value="{$_aRequest.blog_id}">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
{include file='footer.tpl'}
|
||||
|
35
templates/skin/habra/menu.blog_edit.tpl
Normal file
35
templates/skin/habra/menu.blog_edit.tpl
Normal file
|
@ -0,0 +1,35 @@
|
|||
|
||||
<TABLE class=pagemenu id=pagemenuszd>
|
||||
<TBODY>
|
||||
<TR>
|
||||
{if $oUserCurrent}
|
||||
<TD class="width10 read_"><IMG height=35 alt=" " src="{$DIR_STATIC_SKIN}/img/red_ul.gif" width=10></TD>
|
||||
<TD class="subitem1 center read_" style="WIDTH: 14px">
|
||||
<A href="{$DIR_WEB_ROOT}/topic/add/"><IMG title=написать height=14 alt="написать" src="{$DIR_STATIC_SKIN}/img/new_habratopic.gif" width=14></A>
|
||||
</TD>
|
||||
<TD class="border2px width10 read_"></TD>
|
||||
{/if}
|
||||
|
||||
{assign var="sel" value=""}
|
||||
{if $sMenuItemSelect=='profile'}
|
||||
{assign var="sel" value="sel "}
|
||||
{/if}
|
||||
<TD class="{$sel}width10"></TD>
|
||||
<TD class="{$sel}subitem1 center">
|
||||
<A class=tags_f href="{$DIR_WEB_ROOT}/blog/edit/{$oBlogEdit->getId()}/">Профиль</A>
|
||||
</TD>
|
||||
<TD class="{$sel}border2px width10"></TD>
|
||||
|
||||
{assign var="sel" value=""}
|
||||
{if $sMenuItemSelect=='admin'}
|
||||
{assign var="sel" value="sel "}
|
||||
{/if}
|
||||
<TD class="{$sel}width10"></TD>
|
||||
<TD class="{$sel}subitem1 center">
|
||||
<A class=tags_f href="{$DIR_WEB_ROOT}/blog/admin/{$oBlogEdit->getId()}/">Пользователи</A>
|
||||
</TD>
|
||||
<TD class="{$sel}border2px width10"></TD>
|
||||
|
||||
</TR>
|
||||
</TBODY>
|
||||
</TABLE>
|
Loading…
Reference in a new issue