From: Mischa POSLAWSKY Date: Thu, 14 Jun 2018 16:33:58 +0000 (+0200) Subject: edit: support ckeditor uploadUrl protocol X-Git-Tag: v3.1~5 X-Git-Url: http://git.shiar.net/minimedit.git/commitdiff_plain/364ee580b23554250b1e632f64ebde486aa62a86 edit: support ckeditor uploadUrl protocol --- diff --git a/edit.js b/edit.js index 049bbd0..b7ce591 100644 --- a/edit.js +++ b/edit.js @@ -65,11 +65,12 @@ CKEDITOR.on('instanceCreated', function (event) { editor.on('configLoaded', function () { var config = editor.config; config.language = 'nl'; - config.extraPlugins = 'sourcedialog,inlinesave,placeholder'; + config.extraPlugins = 'sourcedialog,inlinesave,placeholder,uploadimage'; config.format_tags = 'h2;h3;h4;p'; config.allowedContent = true; config.entities = false; // keep unicode config.filebrowserImageUploadUrl = '/edit?output=ckescript'; + config.uploadUrl = '/edit?output=ckjson'; config.pasteFilter = pastefilter; config.contentsCss = document.styleSheets[0].href; config.toolbar = [ diff --git a/edit/index.php b/edit/index.php index 19c02d9..5c5ee3d 100644 --- a/edit/index.php +++ b/edit/index.php @@ -5,8 +5,10 @@ if (empty($User['admin'])) abort("geen beheersrechten", '401 unauthorised'); if ($_FILES) { + $response = ['uploaded' => 0]; try { $img = @$_FILES['upload']; + $response['fileName'] = $img['name']; if (!$img or $img['error'] !== UPLOAD_ERR_OK) throw new Exception('bestand niet goed ontvangen: '.$img['error']); @@ -16,22 +18,33 @@ if ($_FILES) { } $target = $datadir.'/'.$img['name']; + $response['url'] = str_replace('%2F', '/', urlencode($target)); if (!@move_uploaded_file($img['tmp_name'], $target)) { throw new Exception('bestand kon niet worden opgeslagen'); } + $response['uploaded']++; } catch (Exception $e) { - abort($e->getMessage(), '409 upload error'); + $response['error'] = ['message' => $e->getMessage()]; } switch (@$_GET['output']) { + case 'ckjson': + print json_encode($response); + exit; case 'ckescript': + if (empty($response['url'])) break; printf('', - "{$_GET['CKEditorFuncNum']}, '$target'" + "{$_GET['CKEditorFuncNum']}, '{$response['url']}'" ); break; default: - abort($target); + if (empty($response['url'])) break; + print $target; + } + + if (isset($response['error'])) { + abort($response['error']['message'], '409 upload error'); } exit; }