upload adapter für ckeditor
This commit is contained in:
52
main.js
52
main.js
@@ -3,6 +3,54 @@
|
||||
* https://ckeditor.com/ckeditor-5/builder/#installation/NoNgNARATAdAnDADBSBWKUDsBGTjMAsiU6iAHBtgQMzZlVn2EjWYlTkhkiLKQAmAUxSIwwbGAkTRo7AF1Ig6kX4BjKBDlA==
|
||||
*/
|
||||
|
||||
export default class SCCUploadAdapter {
|
||||
constructor(loader, uploadUrl = 'upload.php') {
|
||||
this.loader = loader;
|
||||
this.uploadUrl = uploadUrl;
|
||||
}
|
||||
|
||||
// Startet den Upload
|
||||
upload() {
|
||||
return this.loader.file
|
||||
.then(file => new Promise((resolve, reject) => {
|
||||
const data = new FormData();
|
||||
data.append('upload', file);
|
||||
|
||||
// Optional: cr_id über GET oder FormData
|
||||
const crId = this.loader.crId || 0;
|
||||
const url = `${this.uploadUrl}?cr_id=${crId}`;
|
||||
|
||||
fetch(url, {
|
||||
method: 'POST',
|
||||
body: data
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(json => {
|
||||
if (json && json.url) {
|
||||
resolve({ default: json.url });
|
||||
} else if (json && json.error) {
|
||||
reject(json.error);
|
||||
} else {
|
||||
reject('Unbekannter Upload-Fehler.');
|
||||
}
|
||||
})
|
||||
.catch(err => reject(err));
|
||||
}));
|
||||
}
|
||||
|
||||
// Optional: Upload abbrechen
|
||||
abort() {
|
||||
// Fetch API unterstützt AbortController, wenn gewünscht
|
||||
}
|
||||
}
|
||||
|
||||
function SCCUploadAdapterPlugin(editor) {
|
||||
editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
|
||||
return new SCCUploadAdapter(loader, 'changereq.php?action=upload'+(window.ckUploadParams||'')); // URL zu deinem Upload-Endpunkt
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
import {
|
||||
ClassicEditor,
|
||||
Autosave,
|
||||
@@ -102,6 +150,7 @@ const editorConfig = {
|
||||
'emoji',
|
||||
'horizontalLine',
|
||||
'link',
|
||||
'uploadImage',
|
||||
'mediaEmbed',
|
||||
'insertTable',
|
||||
'highlight',
|
||||
@@ -176,7 +225,8 @@ const editorConfig = {
|
||||
TextTransformation,
|
||||
Title,
|
||||
TodoList,
|
||||
Underline
|
||||
Underline,
|
||||
SCCUploadAdapterPlugin
|
||||
],
|
||||
balloonToolbar: ['bold', 'italic', '|', 'link', '|', 'bulletedList', 'numberedList'],
|
||||
blockToolbar: [
|
||||
|
||||
Reference in New Issue
Block a user