Bonsoir,
j'ai un souci qui me prend le chou depuis un moment:
Dans tinymce lorsque j'upload une image de mon DD et l'insère puis que je click sur celle ci pour modifier son positionnement dans le textarea,la popup s'ouvre sur la bonne page(admin_show) mais lorsque c'est une image qui vient d'un site et que je l'upload puis que click sur celle ci pour modifier son placement ds le textarea,la popup s'ouvre sur la page d'acceuil de mon site au lieu d'admin_show.
ça me fait cela que pour les image dont le src et de type :"http://www...."

je crois avoir cerné le souci pr le image de style src="http://....",en faite je sais pas pourquoi mais pour ces images la popup est redirigé avec le routing : Router::connect('/', array('controller' => 'pages', 'action' => 'show',blog)) ,de mon fichier routes.
hors si je met Router::connect('/', array('controller' => 'medias', 'action' => 'show','admin'=>true)) ,là ça fonctionne.
mais du coup ce routing n'est pas bon si on veut accéder a l'acceuil du site :(

je vous donne code d'editor_plugin.js :

(function(){
    tinymce.create('tinymce.plugins.image',{

        init : function(ed, url){
            ed.addCommand('open_image',function(){

                var el = ed.selection.getNode();
                var url = ed.settings.image_explorer;
                if(el.nodeName == 'IMG'){
                    url = ed.settings.image_edit; 
                    url += '?src='+ed.dom.getAttrib(el,'src')+'&alt='+ed.dom.getAttrib(el,'alt')+'&class='+ed.dom.getAttrib(el,'class');
                }
                ed.windowManager.open({
                    file : url,
                    id : 'image',
                    width: 1000,
                    height: 600,
                    inline:true,
                    title:'Insérer une image'
                },{
                    plugin_url : url
                });
            });
            ed.addButton('image',{
                title:'Insérer un image',
                cmd :'open_image'
            })
        }
    });
    tinymce.PluginManager.add('image',tinymce.plugins.image);
})();

et le admin_edit.ctp de post :

<div class="posts form">
<?php echo $this->Form->create('Post');?>
    <fieldset>
        <legend><?php echo __('Admin Edit Post'); ?></legend>
    <?php
        echo $this->Form->input('id');
        echo $this->Form->input('name');
        echo $this->Form->input('slug');
        echo $this->Form->input('online');
        echo $this->Form->input('content');
        echo $this->Form->input('page_id');
        echo $this->Form->input('category_id');
    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit'));?>
</div>
<div class="actions">
    <h3><?php echo __('Actions'); ?></h3>
    <ul>
        <li><?php echo $this->Form->postLink( __('Delete'), array('action' => 'delete', $this->Form->value('Post.id')), null,__ ('Are you sure you want to delete # %s?', $this->Form->value('Post.id'))); ?></li>
        <li><?php echo $this->Html->link(__('List Posts'), array('action' => 'index'));?></li>
        <li><?php echo $this->Html->link(__('List Pages'), array('controller' => 'pages', 'action' => 'index')); ?> </li>
        <li><?php echo $this->Html->link(__('New Page'), array('controller' => 'pages', 'action' => 'add')); ?> </li>
        <li><?php echo $this->Html->link(__('List Categories'), array('controller' => 'categories', 'action' => 'index')); ?> </li>
        <li><?php echo $this->Html->link(__('New Category'), array('controller' => 'categories', 'action' => 'add')); ?> </li>
        <li><?php echo $this->Html->link(__('List Media'), array('controller' => 'media', 'action' => 'index')); ?> </li>
        <li><?php echo $this->Html->link(__('New Media'), array('controller' => 'media', 'action' => 'add')); ?> </li>
    </ul>
</div>

<?php echo $this->Html->script('tiny_mce/tiny_mce.js',array('inline'=>false)); ?>
<?php $this->Html->scriptStart(array('inline'=>false)); ?>
    tinyMCE.init({
        mode:'textareas',
        theme:'advanced',
        plugins:'inlinepopups,paste,image,media',
        theme_advanced_buttons1: 'bold,italic,underline,|,justifyleft,justifyright,justifycenter,justifyfull,|,bullist,numlist,|,link,unlink,image,|,formatselect,code,|,media',
        theme_advanced_buttons2:'',
        theme_advanced_buttons3: '',
        theme_advanced_buttons4:'',
        theme_advanced_toolbar_location:'top',
        theme_advanced_statusbar_location:'bottom',
        theme_advanced_resizing:true,
        paste_remove_styles:true,
        paste_remove_spans:true,
        image_edit : '<?php echo $this->Html->url(array('controller'=>'medias','action'=>'show')); ?>',
        relative_urls :false,
        content_css : '<?php echo $this->Html->url('/css/wysiwyg.css'); ?>',
        paste_strip_class_attributes:"all",
        image_explorer : '<?php echo $this->Html->url(array('controller'=>'medias','action'=>'index',$this->request->data'Post']'id'])); ?>'
    });
    function send_to_editor(content){
        var ed = tinyMCE.activeEditor;
        ed.execCommand('mceInsertContent',false,content);
    }
<?php $this->Html->scriptEnd(); ?>

merci d'avance :)

2 réponses


tetsuo
Auteur
Réponse acceptée

bon je viens de trouver la soluce !
j'ai utilisé la fonction encodeURIComponent sur ed.dom.getAttrib(el,'src') dans le editor.plugin.
Voila j'espere que sa servira à d'autres personnes!

Bonne soirée !

Si j'ai eu le même soucis aussi, mais grâce à toi j'ai pu le résoudre, merci!