Die offizielle Dokumentation ist nicht klar - wie kann ein benutzerdefinierter Dateibrowser / Uploader korrekt in CKEditor integriert werden? (v3 - nicht FCKEditor)
Registrieren Sie zunächst Ihren benutzerdefinierten Browser / Uploader, wenn Sie CKEditor instanziieren. Sie können verschiedene URLs für einen Bildbrowser im Vergleich zu einem allgemeinen Dateibrowser festlegen.
<script type="text/javascript">
CKEDITOR.replace('content', {
filebrowserBrowseUrl : '/browser/browse/type/all',
filebrowserUploadUrl : '/browser/upload/type/all',
filebrowserImageBrowseUrl : '/browser/browse/type/image',
filebrowserImageUploadUrl : '/browser/upload/type/image',
filebrowserWindowWidth : 800,
filebrowserWindowHeight : 500
});
</script>
Ihr benutzerdefinierter Code erhält einen GET-Parameter namens CKEditorFuncNum. Speichern Sie es - das ist Ihre Rückruffunktion. Nehmen wir an, Sie setzen es ein $callback
.
Wenn jemand eine Datei auswählt, führen Sie dieses JavaScript aus, um CKEditor darüber zu informieren, welche Datei ausgewählt wurde:
window.opener.CKEDITOR.tools.callFunction(<?php echo $callback; ?>,url)
Wobei "url" die URL der ausgewählten Datei ist. Ein optionaler dritter Parameter kann Text sein, der in einem Standard-Warndialog angezeigt werden soll, z. B. "unzulässige Datei" oder ähnliches. Setzen Sie die URL auf eine leere Zeichenfolge, wenn der dritte Parameter eine Fehlermeldung ist.
Auf der Registerkarte "Upload" von CKEditor wird eine Datei im Feld "Upload" gesendet - in PHP an $ _FILES ['upload']. CKEditor möchte, dass Ihr Server einen vollständigen JavaScript-Block ausgibt:
$output = '<html><body><script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$callback.', "'.$url.'","'.$msg.'");</script></body></html>';
echo $output;
Auch hier müssen Sie den Rückrufparameter, die URL der Datei und optional eine Nachricht angeben. Wenn die Nachricht eine leere Zeichenfolge ist, wird nichts angezeigt. Wenn die Nachricht ein Fehler ist, sollte die URL eine leere Zeichenfolge sein.
Die offizielle CKEditor-Dokumentation ist in all dem unvollständig, aber wenn Sie die obigen Anweisungen befolgen, funktioniert sie wie ein Champion.
Ich habe ein kleines Tutorial über die Integration des im alten FCKEditor verfügbaren FileBrowser in CKEditor veröffentlicht.
http://www.mixedwaves.com/2010/02/integrating-fckeditor-filemanager-in-ckeditor/
Es enthält schrittweise Anleitungen dazu und ist ziemlich einfach. Ich hoffe, dass jeder, der danach sucht, dieses Tutorial hilfreich findet.
quelle
Ich habe den Lernprozess einfach selbst durchlaufen. Ich habe es herausgefunden, aber ich stimme zu, dass die Dokumentation so geschrieben ist, dass sie mich irgendwie einschüchtert. Der große "Aha" -Moment für mich war zu verstehen, dass CKeditor zum Surfen lediglich ein neues Fenster öffnet und einige Parameter in der URL bereitstellt. Sie können zusätzliche Parameter hinzufügen. Beachten Sie jedoch, dass Sie für Ihre Werte encodeURIComponent () verwenden müssen.
Ich rufe den Browser und den Uploader mit an
Für den Browser verwenden Sie im geöffneten Fenster (browse.php) php & js, um eine Liste mit Auswahlmöglichkeiten bereitzustellen, und rufen dann auf Ihrem bereitgestellten Onclick-Handler eine CKeditor-Funktion mit zwei Argumenten auf, der URL / dem Pfad zum ausgewählten Bild und CKEditorFuncNum bereitgestellt von CKeditor in der URL:
In ähnlicher Weise ruft der Uploader einfach die von Ihnen angegebene URL auf, z. B. upload.php , und liefert erneut $ _GET ['CKEditorFuncNum']. Das Ziel ist ein Iframe. Nachdem Sie die Datei aus $ _FILES gespeichert haben, geben Sie Ihr Feedback wie folgt an CKeditor weiter:
Unten finden Sie ein einfach zu verstehendes benutzerdefiniertes Browserskript. Während Benutzer nicht auf dem Server navigieren können, können Sie beim Aufrufen des Browsers angeben, aus welchem Verzeichnis Bilddateien abgerufen werden sollen.
Es ist alles eher eine einfache Codierung, daher sollte es in allen relativ modernen Browsern funktionieren.
CKeditor öffnet lediglich ein neues Fenster mit der angegebenen URL
// ========= vollständiger Code unten für browse.php
quelle
Ich habe eine Weile versucht, dies herauszufinden, und hier ist, was ich getan habe. Ich habe es sehr einfach aufgeschlüsselt, da ich es brauchte.
Geben Sie direkt unter Ihrem ckeditor-Textbereich die Upload-Datei wie folgt ein >>>>
'und dann füge deine Upload-Datei hinzu, hier ist meine, die in ASP geschrieben ist. Wenn Sie PHP usw. verwenden, ersetzen Sie einfach den ASP durch Ihr Upload-Skript, stellen Sie jedoch sicher, dass die Seite dasselbe ausgibt.
quelle
Dies ist der Ansatz, den ich verwendet habe. Es ist ganz einfach und funktioniert gut.
Im Stammverzeichnis des CK-Editors befindet sich eine Datei mit dem Namen config.js
Ich habe dies hinzugefügt (Sie benötigen das Querystring-Zeug nicht, dies ist nur für unseren Dateimanager). Ich habe auch einige Skins und Änderungen der angezeigten Standardschaltflächen hinzugefügt:
Dann nennt unser Dateimanager Folgendes:
quelle
Ein Artikel bei zerokspot mit dem Titel Benutzerdefinierte Dateibrowser-Rückrufe in CKEditor 3.0 behandelt dies. Der relevanteste Abschnitt wird unten zitiert:
quelle
Registrieren Sie zunächst Ihren benutzerdefinierten Browser / Uploader, wenn Sie CKEditor instanziieren.
Code für die Upload-Datei (ckFileUpload.php) und legen Sie die Upload-Datei im Stammverzeichnis Ihres Projekts ab.
Die Dokumentation zum Ck-Editor ist nicht klar, nachdem ich eine Menge F & E für das Hochladen von benutzerdefinierten Dateien durchgeführt habe. Endlich habe ich diese Lösung gefunden. Es funktioniert für mich und ich hoffe, es wird auch anderen helfen.
quelle
Für Leute, die sich über eine Servlet / JSP-Implementierung wundern, gehen Sie wie folgt vor ... Ich werde das Upload-Bild auch unten erläutern.
1) Stellen Sie zunächst sicher, dass Sie den Dateibrowser und die Uploadimage- Variable zu Ihrer Datei config.js hinzugefügt haben . Machen Sie auch die haben upload und Dateibrowser Ordner innerhalb der Plug - in zu Ordner.
2) In diesem Teil bin ich gestolpert:
In der Dokumentation der Ckeditor-Website heißt es, dass Sie diese beiden Methoden anwenden müssen:
Wenn Sie also ckeditor in page editor.jsp initialisiert haben, müssen Sie einen Dateibrowser (mit grundlegendem HTML / css / javascript) auf der Seite filebrowser.jsp erstellen .
editor.jsp (alles, was Sie brauchen, ist dies in Ihrem Skript-Tag) Diese Seite öffnet filebrowser.jsp in einem Mini-Fenster, wenn Sie auf die Schaltfläche Server durchsuchen klicken.
filebrowser.jsp (ist der von Ihnen erstellte benutzerdefinierte Dateibrowser, der die oben genannten Methoden enthält)
3) Das FileBrowser-Servlet
4) UploadImage-Servlet
Gehen Sie zurück zu Ihrer config.js-Datei für ckeditor und fügen Sie die folgende Zeile hinzu:
Dann können Sie auch Dateien ziehen und ablegen:
Und das ist alles Leute. Hoffe es hilft jemandem.
quelle