Merci beaucoup pour ce superbe plugin grafikart et prbaron,
j'ai un grand problème pour mon niveau;J'ai bien essayé toutes les suggestions proposées dans le forum et j'ai bien fait l'installation du plugin et il fonctionne bien avec l'iframe donc
<?php echo $this->Media->iframe('Post', $this->request->data'Post']'id']); ?>
mais lorsque j'essai
<?php echo $this->Media->ckeditor('content'); ?>
ou
<?php echo $this->Media->tinymce('content'); ?>
le wysiwyg tinyMCE s'affiche bien mais sans le boutton d'ajout d'un media à moins que je commentes la ligne
buttons = buttons.replace('image,','');
dans "tiny_mce.js" et j'ai aussi remarqué que le textarea contenant le wysiwyg prennait comme name "data[content]" au lieu de "data[Post][content]" comme ça l'est pour les autres champs. Lorsque je clique sur l'icone pour inserer une image la popup s'ouvre avec le contenu de la même page donc celui de admin/posts/edit/id. J'utilise la version 2.3.0 de cakePHP
Merci
OK, merci beaucoup pour ton aide Grafikart, J'ai pu resoudre ce problème en modifiant [code]<?php echo $this->Media->tinymce('content'); ?>[/code] par [code]<?php echo $this->Media->tinymce('Post.content'); ?>[/code] Je l'ai vu sur ce post [url=http://www.grafikart.fr/forum/topic/5436]Forum[/url]. Excuses moi, mais j'ai encore deux autres soucis: - le drag and drop ne fonctionne pas sous Mozilla mais il fonctionne bien sous Chrome, - Comment faire de même pour le boutton video(media) sous tinyMCE, pour ne permettre que l'ajout des videos liés au post comme ça l'est pour les images. Un grand merci encore Grafikart!!
oui il l'est, voici les codes sources - admin_edit.ctp:: [code]
Edit a post<?php echo $this->form->create('Post'); ?><?php echo $this->form->input('name',array('label'=>'Title'));?><?php echo $this->Media->ckeditor('content'); ?><?php //echo $this->Media->tinymce('content'); ?><?php echo $this->form->input('id');?><?php echo $this->form->input('type',array('value'=>'page', 'type'=>'hidden'));?><?php echo $this->form->end('Send'); ?> [/code] - PostsController.php: [code]<?php class PostsController extends AppController{
public $uses = array('Post');
/**
*RequestAction, permet d'avoir la liste des contenus pour le menu
**/
function menu(){
$pages = $this->Post->find('all', array('fields'=>array('id','slug','name') )); return $pages; } /** *Permet d'afficher une page **/ function show($id = null, $slug = null){ if(!$id) throw new NotFoundException('Page not found'); $page = $this->Post->find('first',array('conditions'=>array('id'=>$id))); if (empty($page)) throw new NotFoundException('Page not found'); if ($slug != $page['Post']['slug']) $this->redirect($page['Post']['link'],301); $d['page'] = current($page); $this->set($d); } /** *Permet d'afficher une page **/ function admin_index(){ $d['pages'] = $this->Paginate('Post'); $this->set($d); } function admin_edit($id = null){ $this->helpers[] = 'Media.Media'; if($this->request->is('put') || $this->request->is('post')){ if($this->Post->save($this->request->data)){ $this->Session->setFlash('The post has been updated', 'notif'); $this->redirect(array('action'=>'index')); } }elseif($id){ $this->Post->id = $id; $this->request->data = $this->Post->read(); } } function admin_delete($id){ $this->Session->setFlash('The post has been deleted', 'notif'); $this->Post->delete($id); $this->redirect($this->referer()); } } [/code] - et Post.php:- [code]
et voici ce qui est dans la barre d'adresse de la popup lorsque j'utilise tinyMCE
"http://localhost/cakephp/admin/posts/edit/undefined/editor:tinymce?id=content".
J'ai le même problème, celui du undefined id comme message d'erreur dans le iframe, et je ne parviens pas à localiser la source.
Également si je mets le $this->Media->iframe ça fonctionne, mais ensuite avec ckeditor ça ne fonctionne plus.
Lorsque je debug, j'ai beaucoup de clés avec comme valeur "array([maximum depth reached])" ce qui me semble anormal.
Je comprends que c'est le 'Post']'id'] qui ne se rends pas, mais par où commencer pour chercher la cause?
Merci d'avance!
Oui merci mon ID était bien défini dans l'édition. J'ai trouvé mon erreur, très loin d'où je cherchais et en même temps j'avais le nez en plein dedans! Je me suis aperçu que sur un autre controller où j'utilise également le Media Plugin avec ckeditor, tout fonctionne donc mon hypothèse du problème causé par une variable, le iframe ou ssl a été écartée. En comparant mes 2 pages d'édition j'ai aperçu une différence, celle sur laquelle tout fonctionne ne comprends pas de lien pour supprimer le contenu, j'ai retiré mon lien de suppression sur la page qui ne fonctionnait pas, et tout a fonctionné de nouveau. En quoi un lien de suppression peut-il interférer avec le ckeditor et Media Plugin... il était bêtement en dehors de mon objet de form, je l'avais déplacé pour des raisons visuelles/opérationnelles et il se trouvait avant mon $this->Form->create et ça causait que mon formulaire n'avait pas de balise de fermeture semble-t-il. Étrangement, si je faisais un edit ou un delete tout fonctionnait quand même.
Bref, tout ça pour dire que c'était une erreur de débutant, si j'avais validé mon code généré au début et que j'avais constaté que mon html n'était pas valide j'aurais compris et trouvé plus vite mais souvent on oublie les trucs élémentaires et on cherche trop loin pour rien!
Merci tout de même pour l'assistance!