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

Поддержка Media для блогов и сообщений

This commit is contained in:
Mzhelskiy Maxim 2014-02-21 14:45:17 +07:00
parent 15e24d6553
commit c5ed85c7b1
7 changed files with 89 additions and 2 deletions

View file

@ -257,6 +257,10 @@ class ActionBlog extends Action {
* Получаем блог, это для получение полного пути блога, если он в будущем будет зависит от других сущностей(компании, юзер и т.п.)
*/
$oBlog->Blog_GetBlogById($oBlog->getId());
/**
* Фиксируем ID у media файлов
*/
$this->Media_ReplaceTargetTmpById('blog',$oBlog->getId());
/**
* Меняем количество блогов в категории
*/

View file

@ -378,6 +378,10 @@ class ActionTalk extends Action {
* Отправляем письмо
*/
if ($oTalk=$this->Talk_SendTalk($this->Text_Parser(strip_tags(getRequestStr('talk_title'))),$this->Text_Parser(getRequestStr('talk_text')),$this->oUserCurrent,$this->aUsersId)) {
/**
* Фиксируем ID у media файлов
*/
$this->Media_ReplaceTargetTmpById('talk',$oTalk->getId());
Router::Location(Router::GetPath('talk').'read/'.$oTalk->getId().'/');
} else {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));

View file

@ -834,6 +834,10 @@ class ModuleBlog extends Module {
* Удаляем голосование за блог
*/
$this->Vote_DeleteVoteByTarget($iBlogId, 'blog');
/**
* Удаляем медиа данные
*/
$this->Media_RemoveTarget('blog',$iBlogId,true);
/**
* Обновляем категорию блога
*/

View file

@ -47,6 +47,8 @@ class ModuleMedia extends ModuleORM {
protected $aTargetTypes=array(
'topic'=>array(),
'comment'=>array(),
'blog'=>array(),
'talk'=>array(),
);
/**
@ -747,6 +749,11 @@ class ModuleMedia extends ModuleORM {
}
return false;
}
/**
* Проверка владельца с типом "topic"
* Название метода формируется автоматически
@ -815,4 +822,68 @@ class ModuleMedia extends ModuleORM {
}
return false;
}
/**
* Проверка владельца с типом "blog"
* Название метода формируется автоматически
*
* @param int|null $iTargetId ID владельца, для новых объектов может быть не определен
* @param string $sAllowType Тип доступа, константа self::TYPE_CHECK_ALLOW_*
* @param array $aParams Дополнительные параметры, всегда есть ключ 'user'
*
* @return bool
*/
public function CheckTargetBlog($iTargetId,$sAllowType,$aParams) {
if (!$oUser=$aParams['user']) {
return false;
}
if ($sAllowType==self::TYPE_CHECK_ALLOW_ADD) {
if (is_null($iTargetId)) {
/**
* Разрешаем для всех новых блогов
*/
return true;
}
if ($oBlog=$this->Blog_GetBlogById($iTargetId)) {
/**
* Проверяем права на редактирование блога
*/
if ($this->ACL_IsAllowEditBlog($oBlog,$oUser)) {
return true;
}
}
} else {
return $this->CheckStandartMediaAllow($sAllowType,$aParams);
}
return false;
}
/**
* Проверка владельца с типом "talk"
* Название метода формируется автоматически
*
* @param int|null $iTargetId ID владельца, для новых объектов может быть не определен
* @param string $sAllowType Тип доступа, константа self::TYPE_CHECK_ALLOW_*
* @param array $aParams Дополнительные параметры, всегда есть ключ 'user'
*
* @return bool
*/
public function CheckTargetTalk($iTargetId,$sAllowType,$aParams) {
if (!$oUser=$aParams['user']) {
return false;
}
if ($sAllowType==self::TYPE_CHECK_ALLOW_ADD) {
if (is_null($iTargetId)) {
/**
* Разрешаем для всех новых блогов
*/
return true;
}
/**
* Редактировать сообщения нельзя
*/
return false;
} else {
return $this->CheckStandartMediaAllow($sAllowType,$aParams);
}
return false;
}
}

View file

@ -796,6 +796,10 @@ class ModuleTalk extends Module {
* При удалении комментариев они удаляются из избранного,прямого эфира и голоса за них
*/
$this->Comment_DeleteCommentByTargetId($iTalkId,'talk');
/**
* Удаляем медиа данные
*/
$this->Media_RemoveTarget('talk',$iTalkId,true);
}
}
?>

View file

@ -23,7 +23,7 @@
{block 'layout_content'}
{* Подключение редактора *}
{include 'forms/editor.init.tpl' sEditorType='comment'}
{include 'forms/editor.init.tpl' sEditorType='comment' sMediaTargetType='blog'}
<form method="post" enctype="multipart/form-data" class="js-form-validate">

View file

@ -5,7 +5,7 @@
{extends 'layouts/layout.user.messages.tpl'}
{block 'layout_content'}
{include 'forms/editor.init.tpl' sEditorType='comment'}
{include 'forms/editor.init.tpl' sEditorType='comment' sMediaTargetType='talk'}
{hook run='talk_add_begin'}