Salut à tous,

j'espère que je poste dans la bonne section...

J'essaye en vain d'implementer tinyMCE 4 sur le plugin CakePHP-Media de Grafikart. Tout se passe bien jusqu'à ce que j'essaye d'insérer une image dans un contenu.
A ce moment là, je me retrouve avec cette erreur dans la console :

win.send_to_tinymce is not a function

Voici les différents codes que j'ai ajouté (au niveau de tinymce.js) :

jQuery(function($){
    var buttons = "bold italic underline strikethrough blockquote bullist numlist alignleft aligncenter alignright alignjustify link unlink image";
    if( $('#explorer').length == 0 ){
        buttons = buttons.replace('image,','');
    }
    $('textarea.tinymce').each(function(){
        tinymce.init({
            selector: 'textarea.tinymce',
            language: "fr_FR",
            relative_urls: false,
            skin: 'portfolio',
            height: 300,
            plugins: [
                    "autoresize autolink autosave link image imageinsert lists charmap print preview hr pagebreak spellchecker",
                    "searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
                    "contextmenu directionality template textcolor paste textcolor"
                ],

            toolbar1: buttons,
            toolbar2: "formatselect outdent indent removeformat charmap undo redo code",
            toolbar3: "",
            menubar: false,
            toolbar_items_size: 'medium',
            paste_as_text: true,
            imageinsert_explorer: $('#explorer').val() + '/editor:tinymce?id=' + $(this).attr('id'),
            imageinsert_edit: $('#explorer').val() + '/editor:tinymce?id=' + $(this).attr('id'),           
        });
    })

    function send_to_tinymce(content, win){
        var ed = tinymce.activeEditor;
        ed.insertContent(content);
        ed.windowManager.close(win);
    }

});

Au niveau du plugin imageinsert :

tinymce.PluginManager.add('imageinsert', function(ed, url){ 
    ed.addButton('image', {
        title: 'Insérer/Editer une image',
        icon: 'image',
        onclick: function(){
            var el = ed.selection.getNode();
            var url = tinymce.activeEditor.settings.imageinsert_explorer;

            if(el.nodeName == 'IMG'){
                url = tinymce.activeEditor.settings.imageinsert_edit;
                url += '?src='+ed.dom.getAttrib(el, 'src')+'&alt='+ed.dom.getAttrib(el, 'alt')+'&class='+ed.dom.getAttrib(el, 'class');

            }

            ed.windowManager.open({ 
                title: 'Insérer/Editer une image',          
                url: url,
                width: 1000,
                height: 600         
            });                     
        }
    });
});

Et la partie du code qui pose problème au niveau de la vue index.ctp du plugin Media (ligne 6) :

$('a.submit').on('click', function(){
            var $this = $(this);
            var html = createHtmlElement($this);
            var editor = '<?php echo $editor; ?>';
            var win = (!window.frameElement && window.dialogArguments) || opener || parent || top;
            win.send_to_<?php echo $editor; ?>(html, window, "<?php echo $id; ?>");
            return false;
        });

Si vous avez une idée, je suis preneur...

5 réponses


Romano83
Auteur
Réponse acceptée

Au final, je m'auto réponds, il fallait mettre la fonction send_to_tinymce au niveau du plugin...

BOnjour,

Peux-tu m'expliquer ce que tu as fait pour que les images enreigstré dans ta db s'affiche sur tinymce ?
J'ai exactemenT le même problème, si ce n'est que je n'ai pas encore écrit de javascript...puisque je ne connais pas ce language..^^
Merci d'avance

Romano83
Auteur

Salut The-Devil,
je ne comprends pas trop ce que tu veux dire :

Peux-tu m'expliquer ce que tu as fait pour que les images enreigstré dans ta db s'affiche sur tinymce ?

Par contre, si tu ne connais pas le JS, tu risque de galérer...

Ce que je voulais dire c'est: Que faut-il faire pour pouvoir afficher les images uploader dans webroot sur tinymce ?
Actuellement je développe un petit site d'information, et j'utilse tinymce pour permettre aux utilisateurs d'écrire des articles.
Mais à ce jour, impossible d'afficher correctement les images uploader depuis tinymce. Et impossible d'afficher les images dans la page détails d'un article.

Bien à toi,

The-Devil

Romano83
Auteur

Si tu développe sous CakePHP, tu peux utiliser le plugin Media que Grafikart a développé (pour la version 2.x de CakePHP). Il fonctionne très bien et est très simple d'utilisation.
Sinon, il me semble qu'il y a un tuto en PHP où il explique comment implementer un système comme tu veux faire.

Après, tu peux déjà poster le code que tu as écrit pour qu'on y jete un oeil et t'aider au mieux dans ton problème parce que là, c'est un peu difficile de répondre à tes questions sans avoir de code...