Set proper module_srl and mid when uploading in member and communication modules

This commit is contained in:
Kijin Sung 2023-11-02 21:22:43 +09:00
parent f6a02fd006
commit e1cfb09652
5 changed files with 82 additions and 3 deletions

View file

@ -91,8 +91,8 @@
var chunkStatus = true;
var defaultFormData = {
"editor_sequence": data.editorSequence,
"upload_target_srl" : data.uploadTargetSrl,
"mid" : window.current_mid,
"upload_target_srl" : data.uploadTargetSrl ? data.uploadTargetSrl : 0,
"mid" : window.current_mid ? window.current_mid : window.editor_mid,
"act": 'procFileUpload'
};

View file

@ -293,6 +293,12 @@ class CommunicationView extends communication
{
$option->editor_toolbar_hide = 'Y';
}
if ($option->allow_fileupload)
{
$oMemberView = MemberView::getInstance();
$option->module_srl = $oMemberView->getMemberModuleSrl();
$option->mid = $oMemberView->getMemberModulePrefix();
}
$editor = $oEditorModel->getEditor(getNextSequence(), $option);
$editor = $editor . "\n" . '<input type="hidden" name="temp_srl" value="" />' . "\n";
Context::set('editor', $editor);

View file

@ -251,13 +251,25 @@ class EditorModel extends Editor
}
Context::set('file_config',$file_config);
// Configure upload status such as file size
$upload_status = FileModel::getUploadStatus();
Context::set('upload_status', $upload_status);
// Upload enabled (internally caching)
FileController::setUploadInfo($option->editor_sequence, $upload_target_srl, $option->module_srl ?? 0);
// Set editor mid
if (!empty($option->mid))
{
Context::addHtmlFooter('<script> var editor_mid = ' . json_encode($option->mid) . '; </script>');
}
// Check if the file already exists
if($upload_target_srl) $files_count = FileModel::getFilesCount($upload_target_srl);
if ($upload_target_srl)
{
$files_count = FileModel::getFilesCount($upload_target_srl);
}
}
Context::set('files_count', (int)$files_count);

View file

@ -433,6 +433,16 @@ class MemberAdminView extends Member
$option->editor_toolbar_hide = 'Y';
$option->editor_skin = $member_config->signature_editor_skin;
$option->sel_editor_colorset = $member_config->sel_editor_colorset;
if (!$option->allow_html)
{
$option->editor_skin = 'textarea';
}
if ($option->allow_fileupload)
{
$oMemberView = MemberView::getInstance();
$option->module_srl = $oMemberView->getMemberModuleSrl();
$option->mid = $oMemberView->getMemberModulePrefix();
}
Context::set('editor', getModel('editor')->getEditor($member_info->member_srl, $option));
}

View file

@ -93,6 +93,47 @@ class MemberView extends Member
return false;
}
/**
* Get the member mid (prefix)
*
* @return string
*/
public function getMemberModulePrefix(): string
{
if (!$this->member_config)
{
$this->member_config = MemberModel::getMemberConfig();
}
if (!empty($this->member_config->mid))
{
return $this->member_config->mid;
}
else
{
return '';
}
}
/**
* Get the module_srl for the member mid.
*
* @return int
*/
public function getMemberModuleSrl(): int
{
if (!$this->member_config)
{
$this->member_config = MemberModel::getMemberConfig();
}
if (!empty($this->member_config->mid))
{
return ModuleModel::getModuleInfoByMid($this->member_config->mid)->module_srl ?? 0;
}
else
{
return 0;
}
}
/**
* Module index
*/
@ -334,6 +375,11 @@ class MemberView extends Member
{
$option->editor_skin = 'textarea';
}
if ($option->allow_fileupload)
{
$option->module_srl = $this->getMemberModuleSrl();
$option->mid = $this->getMemberModulePrefix();
}
Context::set('editor', getModel('editor')->getEditor(0, $option));
}
@ -448,6 +494,11 @@ class MemberView extends Member
{
$option->editor_skin = 'textarea';
}
if ($option->allow_fileupload)
{
$option->module_srl = $this->getMemberModuleSrl();
$option->mid = $this->getMemberModulePrefix();
}
Context::set('editor', getModel('editor')->getEditor($member_info->member_srl, $option));
}