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...
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
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
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...