upload adapter für ckeditor

This commit is contained in:
st-server
2025-12-17 15:23:46 +01:00
parent ce50921d42
commit 5b145a9568

52
main.js
View File

@@ -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: [