diff --git a/common/constants.php b/common/constants.php index 3f8faaae1..5432d14e3 100644 --- a/common/constants.php +++ b/common/constants.php @@ -3,7 +3,7 @@ /** * RX_VERSION is the version number of the Rhymix CMS. */ -define('RX_VERSION', '2.1.15'); +define('RX_VERSION', '2.1.16'); /** * RX_MICROTIME is the startup time of the current script, in microseconds since the Unix epoch. diff --git a/common/js/plugins/ckeditor/ckeditor/plugins/rx_paste/plugin.js b/common/js/plugins/ckeditor/ckeditor/plugins/rx_paste/plugin.js index a2c2a26be..de53074e3 100644 --- a/common/js/plugins/ckeditor/ckeditor/plugins/rx_paste/plugin.js +++ b/common/js/plugins/ckeditor/ckeditor/plugins/rx_paste/plugin.js @@ -24,6 +24,7 @@ CKEDITOR.plugins.add('rx_paste', { const dataValue = event.data.dataValue; const dataTransfer = event.data.dataTransfer; const filesCount = dataTransfer.getFilesCount(); + const isFileTransfer = dataTransfer.isFileTransfer() || String(dataValue).match(/^]+>$/); // Replace iframe code in pasted text. if (method === 'paste' && dataValue && dataValue.replace) { @@ -33,7 +34,7 @@ CKEDITOR.plugins.add('rx_paste', { } // Check if the pasted data contains any files. - if (filesCount && dataTransfer.isFileTransfer()) { + if (filesCount && isFileTransfer) { event.stop(); for (let i = 0; i < filesCount; i++) { uploadFile(dataTransfer.getFile(i)); diff --git a/modules/admin/lang/en.php b/modules/admin/lang/en.php index 0b1fc8062..fd86f1d05 100644 --- a/modules/admin/lang/en.php +++ b/modules/admin/lang/en.php @@ -87,7 +87,7 @@ $lang->cmd_admin_default_from_name_help = 'This name will be used in all outgoin $lang->cmd_admin_default_from_email_help = 'This e-mail address will be used in all outgoing e-mails.
If you are using SMTP or an external API, please check "Apply to All" to avoid having your e-mails treated as spam.'; $lang->cmd_admin_default_reply_to_help = 'This e-mail will receive replies. Please leave it empty if it is the same as the address above.
Some sending methods may not support a separate Reply-To address.'; $lang->cmd_admin_default_from_phone_help = 'This number will be used in all outgoing SMS notifications.
Some SMS gateways may require that you pre-register your phone number. In that case, you should also check "Apply to All".'; -$lang->cmd_admin_sms_dummy_driver_help = 'Select "Dummy" if you are not going to send any SMS.'; +$lang->cmd_admin_sms_dummy_driver_help = 'This option does not send any SMS, but may log them. Use this option for testing.'; $lang->cmd_admin_sms_sender_key_help = 'The sender key is used for Alimtalk. Please leave it empty if you do not use Alimtalk.'; $lang->cmd_admin_allow_split_sms_help = 'Split long texts into multiple SMS in order to prevent clipping.
This only applies to gateways that cannot send LMS/MMS. Otherwise, long texts will be automatically converted to LMS/MMS.'; $lang->cmd_admin_allow_split_lms_help = 'Split very long texts into multiple LMS/MMS in order to prevent clipping.
This may increase your LMS/MMS cost significantly.'; diff --git a/modules/admin/lang/ko.php b/modules/admin/lang/ko.php index 2dead02bc..2f754dac0 100644 --- a/modules/admin/lang/ko.php +++ b/modules/admin/lang/ko.php @@ -86,7 +86,7 @@ $lang->cmd_admin_default_from_name_help = '가입환영 메일, 인증메일, $lang->cmd_admin_default_from_email_help = '가입환영 메일, 인증메일, 알림 등을 발송할 때 사용할 메일 주소입니다.
SMTP 또는 외부 API 사용시 일괄 적용 옵션을 선택하지 않으면 스팸으로 취급될 가능성이 높아지니 주의하십시오.'; $lang->cmd_admin_default_reply_to_help = '받는이가 "답장"을 클릭했을 때 발신자 주소가 아닌 다른 주소로 답장을 받을 수 있습니다.
발송 방법에 따라 이 기능을 지원하지 않을 수도 있습니다.'; $lang->cmd_admin_default_from_phone_help = 'SMS 알림을 발송할 때 사용할 번호입니다.
국내 서비스 사용시 API 제공 업체에 발신자 번호를 미리 등록하고, 일괄 적용 옵션을 사용하시기 바랍니다.'; -$lang->cmd_admin_sms_dummy_driver_help = 'SMS를 사용하지 않는 경우 Dummy를 선택하십시오.'; +$lang->cmd_admin_sms_dummy_driver_help = 'SMS를 발송하지 않고 로그 기록만 합니다. 테스트 중 원치 않는 SMS가 발송되는 것을 막기 위해 사용할 수 있는 옵션입니다.'; $lang->cmd_admin_sms_sender_key_help = '알림톡 발송에 필요한 Sender Key입니다. 알림톡을 사용하지 않는 경우 비워 두시기 바랍니다.'; $lang->cmd_admin_allow_split_sms_help = '긴 내용을 SMS로 발송할 때 잘리지 않도록 2개 이상의 SMS로 분할 발송합니다.
LMS/MMS를 사용할 수 있는 경우 자동 변경되므로, LMS/MMS 사용이 불가능한 서비스에만 해당됩니다.'; $lang->cmd_admin_allow_split_lms_help = '매우 긴 내용을 LMS 또는 MMS로 발송할 때 잘리지 않도록 2개 이상의 LMS 또는 MMS로 분할 발송합니다.
내용이 지나치게 긴 경우 비용이 많이 발생할 수 있으니 주의하십시오.'; diff --git a/modules/advanced_mailer/lang/en.php b/modules/advanced_mailer/lang/en.php index ad0c195b1..25bd9990f 100644 --- a/modules/advanced_mailer/lang/en.php +++ b/modules/advanced_mailer/lang/en.php @@ -88,7 +88,7 @@ $lang->cmd_advanced_mailer_exception_group = 'Exception Group'; $lang->cmd_advanced_mailer_use_exceptions = 'Exception domains'; $lang->cmd_advanced_mailer_use_exceptions_yes = 'Test with exceptions as configured'; $lang->cmd_advanced_mailer_use_exceptions_no = 'Ignore exceptions and only test the default sending method'; -$lang->msg_advanced_mailer_about_dummy = 'Dummy does not actually send any email, but logs them. Use this option for testing.'; +$lang->msg_advanced_mailer_about_dummy = 'This option does not actually send any email, but may log them. Use this option for testing.'; $lang->msg_advanced_mailer_about_dummy_exceptions = 'Caution: if you have set up exception domains, unwanted email may be sent using other methods.'; $lang->msg_advanced_mailer_about_mailfunction = 'This method uses the mail() function that comes with PHP itself. It has very low deliverability.
This option may be deprecated in the future, so please use a different sending method if at all possible.'; $lang->msg_advanced_mailer_sending_method_is_invalid = 'Please select a valid sending method.'; diff --git a/modules/advanced_mailer/lang/ko.php b/modules/advanced_mailer/lang/ko.php index a177fc86d..daa686211 100644 --- a/modules/advanced_mailer/lang/ko.php +++ b/modules/advanced_mailer/lang/ko.php @@ -88,7 +88,7 @@ $lang->cmd_advanced_mailer_exception_group = '예외 그룹'; $lang->cmd_advanced_mailer_use_exceptions = '예외 도메인 설정'; $lang->cmd_advanced_mailer_use_exceptions_yes = '예외 설정을 적용하여 테스트'; $lang->cmd_advanced_mailer_use_exceptions_no = '무시하고 기본 발송 방법만 테스트'; -$lang->msg_advanced_mailer_about_dummy = '메일을 발송하지 않고 로그 기록만 하도록 강제합니다. 테스트 중 원치 않는 메일이 발송되는 것을 막기 위해 사용할 수 있습니다.'; +$lang->msg_advanced_mailer_about_dummy = '메일을 발송하지 않고 로그 기록만 합니다. 테스트 중 원치 않는 메일이 발송되는 것을 막기 위해 사용할 수 있습니다.'; $lang->msg_advanced_mailer_about_dummy_exceptions = '이 옵션을 선택하더라도 예외 도메인을 지정한 경우 메일이 발송될 수 있으니 주의하십시오.'; $lang->msg_advanced_mailer_about_mailfunction = 'PHP에 내장된 mail() 함수를 사용합니다. 발송 성공률이 매우 낮습니다.
이 옵션은 추후 지원되지 않을 수 있으니, 가능하면 다른 방식을 선택하시기 바랍니다.'; $lang->msg_advanced_mailer_sending_method_is_invalid = '올바른 발송 방법을 선택해 주십시오.'; diff --git a/modules/editor/tpl/js/editor.app.js b/modules/editor/tpl/js/editor.app.js index a0d1a0769..67df8c8d1 100644 --- a/modules/editor/tpl/js/editor.app.js +++ b/modules/editor/tpl/js/editor.app.js @@ -174,7 +174,14 @@ function getAutoSavedSrl(ret_obj) { instance.insertHtml(text, 'html'); }; - // 자동저장 필드가 있다면 자동 저장 기능 활성화 + // Automatically update content input value #445 + instance.on('change', function(e) { + if (window.editorRelKeys[data.editorSequence].content) { + window.editorRelKeys[data.editorSequence].content.value = e.editor.getData(); + } + }); + + // Enable autosave if (typeof(fo_obj._saved_doc_title) !== 'undefined') { editorEnableAutoSave(fo_obj, editor_sequence); } diff --git a/modules/menu/menu.mobile.php b/modules/menu/menu.mobile.php index 5332f8027..d486f857a 100644 --- a/modules/menu/menu.mobile.php +++ b/modules/menu/menu.mobile.php @@ -61,8 +61,11 @@ class MenuMobile extends moduleObject } } - if(file_exists($menu_info->php_file)) @include($menu_info->php_file); - if(is_array($menu->list)) + if (isset($menu_info->php_file) && file_exists($menu_info->php_file)) + { + @include($menu_info->php_file); + } + if (isset($menu->list) && is_array($menu->list)) { foreach($menu->list as $menu_item) { diff --git a/modules/module/module.model.php b/modules/module/module.model.php index cdca65eea..473185703 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -634,7 +634,7 @@ class ModuleModel extends Module if (count($mid) == 1 && ($first_mid = array_first($mid)) && isset(self::$_mid_map[$first_mid])) { - return array($first_mid => self::$_mid_map[$first_mid]); + return array($assoc ? $first_mid : 0 => self::$_mid_map[$first_mid]); } $args = new stdClass; diff --git a/modules/tag/tag.controller.php b/modules/tag/tag.controller.php index 3e3083fce..69797f56f 100644 --- a/modules/tag/tag.controller.php +++ b/modules/tag/tag.controller.php @@ -14,6 +14,7 @@ class TagController extends Tag { if (empty($obj->tags)) { + $obj->tags = ''; return; } @@ -24,7 +25,7 @@ class TagController extends Tag } else { - $obj->tags = null; + $obj->tags = ''; } }