From 9a6524d63d64e8ce4e3fbdacbf1e2c8b1f76b3b0 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sun, 19 Nov 2023 21:29:15 +0900 Subject: [PATCH] Allow pre-setting upload_target_type for each editor --- modules/communication/communication.view.php | 1 + modules/editor/editor.model.php | 22 ++++++++++++++------ modules/file/file.controller.php | 6 ++++++ modules/file/queries/insertFile.xml | 1 + modules/member/member.admin.view.php | 1 + modules/member/member.view.php | 2 ++ 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/modules/communication/communication.view.php b/modules/communication/communication.view.php index a1458d11b..47f91fa74 100644 --- a/modules/communication/communication.view.php +++ b/modules/communication/communication.view.php @@ -297,6 +297,7 @@ class CommunicationView extends communication if ($option->allow_fileupload) { $option->module_srl = MemberView::getInstance()->getMemberModuleSrl(); + $option->upload_target_type = 'msg'; } $editor = $oEditorModel->getEditor(getNextSequence(), $option); $editor = $editor . "\n" . '' . "\n"; diff --git a/modules/editor/editor.model.php b/modules/editor/editor.model.php index 2af47c429..02e12074a 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -263,13 +263,13 @@ class EditorModel extends Editor // Set upload config in session $upload_config = []; - if (isset($option->allowed_filesize) && $option->allowed_filesize > 0) + $upload_config_keys = ['allowed_filesize', 'allowed_extensions', 'upload_target_type']; + foreach ($upload_config_keys as $key) { - $upload_config['allowed_filesize'] = $option->allowed_filesize; - } - if (isset($option->allowed_extensions) && !empty($option->allowed_extensions)) - { - $upload_config['allowed_extensions'] = $option->allowed_extensions; + if (isset($option->$key) && !empty($option->$key)) + { + $upload_config[$key] = $option->$key; + } } FileController::setUploadInfo($option->editor_sequence, $upload_target_srl, $option->module_srl ?? 0, $upload_config); @@ -455,6 +455,16 @@ class EditorModel extends Editor } } + // Preset upload target type + if ($type === 'document') + { + $option->upload_target_type = 'doc'; + } + elseif ($type === 'comment') + { + $option->upload_target_type = 'com'; + } + // Other settings $option->primary_key_name = $primary_key_name; $option->content_key_name = $content_key_name; diff --git a/modules/file/file.controller.php b/modules/file/file.controller.php index 63118c9aa..a7cb51603 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -1042,6 +1042,12 @@ class FileController extends File } } + // Set upload target type + if ($editor_sequence && isset($_SESSION['upload_info'][$editor_sequence]->upload_target_type)) + { + $args->upload_target_type = strval($_SESSION['upload_info'][$editor_sequence]->upload_target_type); + } + $oDB = DB::getInstance(); $oDB->begin(); diff --git a/modules/file/queries/insertFile.xml b/modules/file/queries/insertFile.xml index f4bdc9317..de6bc9d21 100644 --- a/modules/file/queries/insertFile.xml +++ b/modules/file/queries/insertFile.xml @@ -5,6 +5,7 @@ + diff --git a/modules/member/member.admin.view.php b/modules/member/member.admin.view.php index 2905943d6..740e9e292 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -440,6 +440,7 @@ class MemberAdminView extends Member if ($option->allow_fileupload) { $option->module_srl = MemberView::getInstance()->getMemberModuleSrl(); + $option->upload_target_type = 'sig'; } if ($member_config->member_max_filesize) { diff --git a/modules/member/member.view.php b/modules/member/member.view.php index a43969d4f..dd6e6da53 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -358,6 +358,7 @@ class MemberView extends Member if ($option->allow_fileupload) { $option->module_srl = $this->getMemberModuleSrl(); + $option->upload_target_type = 'sig'; } if ($member_config->member_max_filesize) { @@ -480,6 +481,7 @@ class MemberView extends Member if ($option->allow_fileupload) { $option->module_srl = $this->getMemberModuleSrl(); + $option->upload_target_type = 'sig'; } if ($member_config->member_max_filesize) {