Bonjour à tous
Je viens ici afin d'avoir un peu d'aide pour m'aiguiller dans la création d'un plugin ckeditor (v4).
Je dispose d'un module interne à mon projet web codé en PHP et autres technologies dont le but est d'uploader des vidéos sur YouTube. Chaque vidéo, chaque fois qu'elles sont validées par un administrateur, doivent pouvoir être inclus dans le texte généré par le WYSIWYG.
Par défaut, mon module PHP stocke dans ma base de donnée, l'id de l'utilisateur ayant envoyé la vidéo.
Je souhaiterais donc créer un plugin CKeditor,
Voici l'idée de fonctionnement de ce dernier.
Fonctionnement normal (pour un rédacteur)
- L'utilisateur souhaitant inclure une vidéo, dans son article, clique sur un des boutons de la toolbar.
- Cela ouvre une boite de dialogue listant les vidéos de cet utilisateur
- La sélection de la vidéo de son choix inclus directement le code html Iframe de cette vidéo.
Fonctionnement avancé (pour un administrateur)
- L'utilisateur souhaitant inclure une vidéo, dans son article, clique sur un des boutons de la toolbar.
- Cela ouvre une boite de dialogue listant les vidéos de lui-même, mais un système permet de récupérer la vidéo d'un autre article.
- La sélection de la vidéo de son choix inclus directement le code html Iframe de cette vidéo.
Pour la première partie, j'y suis à peu près arrivée.
Pour la seconde partie, je suis bloqué aussi bien pour le fonctionnement normal comme avancé.
Et pour la troisième partie, je n'ai même pas commencé.
Mon problème est pour cette seconde partie. Je ne vois pas comment faire, surtout pour le mode avancé.
J'ai initialement pensé à un système ajax qui chargerait un json généré avec la liste de l'utilisateur authentifié.
Par contre, dans le cas où c'est un des administrateurs qui rédige pour un autre rédacteur, je souhaiterais que ce soit l'administrateur qui choisisse les vidéos du rédacteur de son choix.
Il faudra donc que je trouve un moyen de récupérer la valeur en cours d'un champ précis de la page appelante. Voici ce que j'ai testé en cherchant:
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part var user_id = document.querySelector('#user_id').value;
Hors, je ne sais pas si je m'y prends bien dans cette histoire.
Voici le début de mon code source:
plugin.js
Et mon fichier dialog.js:
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CKEDITOR.plugins.add('youtube', { icons: this.path + 'icons/youtube.png', init: function (editor) { editor.ui.addButton('Ajouter une vidéo', { label: 'Ajouter une vidéo dans mon article', command: 'addVideo', toolbar: 'insert', icon: this.path + 'icons/youtube.png' }); editor.addCommand('addVideo', new CKEDITOR.dialogCommand('addVideoDialog')); CKEDITOR.dialog.add('addVideoDialog', this.path + 'dialogs/addvideo.js'); } });
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 CKEDITOR.dialog.add('addVideoDialog', function (editor) { var user_id = document.querySelector('#user_id').value; return { title: 'Sélectionner la vidéo de votre choix', minWidth: 1000, minHeight: 500, contents: [ { elements: [ { type : 'html', html : 'Sélectionner la vidéo que vous souhaitez inclure dans votre article.' }, { type: 'html', html : "L\'utilisateur est : " + user_id, } ] } ], }; });
Pourriez-vous me donner un peu d'aide, ou du moins m'orienter pour le codage de ce plugin?
Je vous remercie par avance.
lemirandais
Partager