La documentation officielle est loin d'être claire - quelle est la bonne façon d'intégrer un navigateur / téléchargeur de fichiers personnalisé avec CKEditor? (v3 - pas FCKEditor)
Commencez par enregistrer votre navigateur / téléchargeur personnalisé lorsque vous instanciez CKEditor. Vous pouvez désigner différentes URL pour un navigateur d'images par rapport à un navigateur de fichiers général.
<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>
Votre code personnalisé recevra un paramètre GET appelé CKEditorFuncNum. Enregistrez-le - c'est votre fonction de rappel. Disons que vous le mettez dans $callback
.
Quand quelqu'un sélectionne un fichier, exécutez ce JavaScript pour informer CKEditor quel fichier a été sélectionné:
window.opener.CKEDITOR.tools.callFunction(<?php echo $callback; ?>,url)
Où "url" est l'URL du fichier choisi. Un troisième paramètre facultatif peut être le texte que vous souhaitez afficher dans une boîte de dialogue d'alerte standard, comme "fichier illégal" ou quelque chose. Définissez url sur une chaîne vide si le troisième paramètre est un message d'erreur.
L'onglet "upload" de CKEditor soumettra un fichier dans le champ "upload" - en PHP, qui va à $ _FILES ['upload']. Ce que CKEditor veut que votre serveur produise est un bloc JavaScript complet:
$output = '<html><body><script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$callback.', "'.$url.'","'.$msg.'");</script></body></html>';
echo $output;
Encore une fois, vous devez lui donner ce paramètre de rappel, l'URL du fichier et éventuellement un message. Si le message est une chaîne vide, rien ne s'affichera; si le message est une erreur, alors url doit être une chaîne vide.
La documentation officielle de CKEditor est incomplète sur tout cela, mais si vous suivez ce qui précède, cela fonctionnera comme un champion.
J'ai publié un petit tutoriel sur l'intégration du FileBrowser disponible dans l'ancien FCKEditor dans CKEditor.
http://www.mixedwaves.com/2010/02/integrating-fckeditor-filemanager-in-ckeditor/
Il contient des instructions étape par étape pour le faire et c'est assez simple. J'espère que toute personne à la recherche de cela trouvera ce tutoriel utile.
la source
Je viens de passer par le processus d'apprentissage moi-même. Je l'ai compris, mais je suis d'accord que la documentation est rédigée d'une manière qui m'intimidait un peu. Le grand moment "aha" pour moi a été de comprendre que pour la navigation, tout ce que fait CKeditor est d'ouvrir une nouvelle fenêtre et de fournir quelques paramètres dans l'url. Il vous permet d'ajouter des paramètres supplémentaires, mais sachez que vous devrez utiliser encodeURIComponent () sur vos valeurs.
J'appelle le navigateur et le téléchargeur avec
Pour le navigateur , dans la fenêtre ouverte (parcourir.php), vous utilisez php & js pour fournir une liste de choix puis sur votre gestionnaire onclick fourni, vous appelez une fonction CKeditor avec deux arguments, l'url / chemin vers l'image sélectionnée et CKEditorFuncNum fourni par CKeditor dans l'url:
De la même manière, l' uploader appelle simplement l'url que vous fournissez, par exemple upload.php , et fournit à nouveau $ _GET ['CKEditorFuncNum']. La cible est une iframe donc, après avoir enregistré le fichier de $ _FILES, vous transmettez vos commentaires à CKeditor comme suit:
Vous trouverez ci-dessous un script de navigateur personnalisé simple à comprendre. Bien qu'il ne permette pas aux utilisateurs de naviguer sur le serveur, il vous permet d'indiquer dans quel répertoire extraire les fichiers image lors de l'appel du navigateur.
C'est un codage assez basique, donc cela devrait fonctionner dans tous les navigateurs relativement modernes.
CKeditor ouvre simplement une nouvelle fenêtre avec l'url fournie
// ========= code complet ci-dessous pour parcourir.php
la source
J'ai passé un moment à essayer de comprendre celui-ci et voici ce que j'ai fait. Je l'ai décomposé très simplement car c'est ce dont j'avais besoin.
Directement sous votre zone de texte ckeditor, entrez le fichier de téléchargement comme ceci >>>>
'puis ajoutez votre fichier de téléchargement, voici le mien qui est écrit en ASP. Si vous utilisez PHP, etc., remplacez simplement l'ASP par votre script de téléchargement, mais assurez-vous que la page affiche la même chose.
la source
C'est l'approche que j'ai utilisée. C'est assez simple et fonctionne très bien.
Dans le répertoire racine de l'éditeur CK, il y a un fichier nommé config.js
J'ai ajouté ceci (vous n'avez pas besoin de la chaîne de requête, c'est juste pour notre gestionnaire de fichiers). J'ai également inclus un skinning et la modification des boutons par défaut affichés:
Ensuite, notre gestionnaire de fichiers appelle ceci:
la source
Un article sur zerokspot intitulé Rappels de navigateur de fichiers personnalisés dans CKEditor 3.0 gère cela. La section la plus pertinente est citée ci-dessous:
la source
Commencez par enregistrer votre navigateur / téléchargeur personnalisé lorsque vous instanciez CKEditor.
Code pour le fichier de téléchargement (ckFileUpload.php) et placez le fichier de téléchargement sur le répertoire racine de votre projet.
La documentation de Ck-editor n'est pas claire après avoir fait beaucoup de R&D pour le téléchargement de fichiers personnalisés, j'ai enfin trouvé cette solution. Cela fonctionne pour moi et j'espère que cela sera également utile aux autres.
la source
Pour les personnes qui s'interrogent sur une implémentation Servlet / JSP, voici comment procéder ... J'expliquerai également uploadimage ci-dessous.
1) Assurez-vous d'abord que vous avez ajouté le navigateur de fichiers et la variable uploadimage à votre fichier config.js. Assurez-vous également de télécharger l' image et le navigateur de fichiers dossier dans le dossier plugins.
2) Cette partie est là où ça m'a fait trébucher:
La documentation du site Web de Ckeditor indique que vous devez utiliser ces deux méthodes:
Donc, si vous avez initialisé ckeditor dans la page editor.jsp, vous devez créer un navigateur de fichiers (avec html / css / javascript de base) dans la page filebrowser.jsp .
editor.jsp (tout ce dont vous avez besoin est ceci dans votre balise de script) Cette page ouvrira filebrowser.jsp dans une mini-fenêtre lorsque vous cliquez sur le bouton Parcourir le serveur.
filebrowser.jsp (est le navigateur de fichiers personnalisé que vous avez créé et qui contiendra les méthodes mentionnées ci-dessus)
3) Le servlet FileBrowser
4) Servlet UploadImage
Revenez à votre fichier config.js pour ckeditor et ajoutez la ligne suivante:
Ensuite, vous pouvez également faire glisser et déposer des fichiers:
Et ce sont tous les gens. J'espère que ça aide quelqu'un.
la source