Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Bonjour,
Je suis en train d’essayer d'adapter mon plugin galleryinsert au nouvel éditeur CKE mais cela ne va pas sans mal :)
J'ai bien regardé le post de nikrou et j'avoue que ça m'a bien aidé mais si je comprend bien cela demande tout de même pas mal de changement sur les plugins existants.
Aujourd’hui le popup de mon plugin est géré par un fichier popup.php appelé par un window.open en fonction de trois modes wiki, whtml et wysiwyg puis le retour de ce popup est intégré au billet par des this.encloseSelection ou des document.createTextNode en fonction du mode d'édition.
Pensez-vous qu'il soit possible de conserver au maximum l'architecture d'un plugin actuel avec CKEditor ? Est-ce qu'on peut utiliser une fenetre externe ou est-ce qu'on est obligés de passer par un CKEDITOR.dialog ?
Merci d'avance pour votre aide
a+
Fred
Hors ligne
Bonjour,
non tu peux continuer à utiliser une fenêtre externe comme pour le gestionnaire de média par exemple.
Je préfère être atteint de parkinson plutôt qu'alzheimer : je prefère renverser un peu de ma bière plutôt qu'oublier de la boire !
Présentez vos photos simplement avec Phyxo !
Hors ligne
ok c'est bon je ne sais pas si j'ai tout fait dans les règles de l'art mais ça a l'air de marcher :)
j'ajoute donc un bouton avec un
$core->addBehavior('ckeditorExtraPlugins', array('GalleryInsertBehaviors', 'ckeditorExtraPlugins'));
class GalleryInsertBehaviors
{
public static function ckeditorExtraPlugins(ArrayObject $extraPlugins, $context)
{
$extraPlugins[] = array(
'name' => 'GalleryInsert',
'button' => 'GalleryInsert',
'url' => DC_ADMIN_URL.'index.php?pf=GalleryInsert/cke-addon/'
);
}
}
dans le répertoire cke-addon je crée un fichier plugin.js contenant la commande d'ouverture du popup
CKEDITOR.plugins.add('GalleryInsert', {
init: function(editor) {
popup_params={'width':760,'height':500};
open_url='plugin.php?p=GalleryInsert&popup=1';
editor.addCommand('GalleryInsertCommand', {
exec:function(editor){
$.toolbarPopup(open_url,popup_params);
}
});
editor.ui.addButton("GalleryInsert", {
label: "GalleryInsert",
icon: this.path+'icon.png',
command: 'GalleryInsertCommand',
toolbar: 'insert'
});
}
});
et dans le fichier popup du plugin au moment de sortir le résultat je fais un test pour savoir où insérer le résultat
if ((window.opener.the_toolbar !== undefined)) {
var tb = window.opener.the_toolbar;
var data = tb.elements.GalleryInsert.data;
data.texte = texte;
tb.elements.GalleryInsert.fncall[tb.mode].call(tb);
}
if ((window.opener.CKEDITOR !== undefined)) {
var editor_name=window.opener.$.getEditorName();
var editor=window.opener.CKEDITOR.instances[editor_name];
editor.insertText(texte);
}
Hors ligne
Vous n'êtes pas identifié(e).