Dotclear

Changeset 2751:a96ec5640056


Ignore:
Timestamp:
09/09/14 16:30:31 (11 years ago)
Author:
Nicolas <nikrou77@…>
Branch:
default
Message:

Each editor (ckeditor, legacy ones) loads its own context when it is active.
Add plugin_id parameter to transmit that context
Remove call of ckeditorExtraPlugins behavior until a good solution is found.
Closes #1983

Files:
12 edited

Legend:

Unmodified
Added
Removed
  • admin/media.php

    r2720 r2751  
    2828} 
    2929$d = isset($_REQUEST['d']) ? $_REQUEST['d'] : null; 
     30$plugin_id = isset($_REQUEST['plugin_id']) ? html::sanitizeURL($_REQUEST['plugin_id']) : ''; 
    3031$dir = null; 
    3132 
     
    7475$popup = (integer) !empty($_GET['popup']); 
    7576 
    76 $page_url = $core->adminurl->get("admin.media",array('popup' => $popup,'post_id' => $post_id)); 
     77$page_url = $core->adminurl->get("admin.media",array('popup' => $popup,'post_id' => $post_id, 'plugin_id' => $plugin_id)); 
    7778if (($temp = $core->callBehavior('adminMediaURL',$page_url))!='') { 
    7879     $page_url = $temp; 
     
    144145# Adding a file 
    145146if ($dir && !empty($_FILES['upfile'])) { 
    146   // only one file per request : @see option singleFileUploads in admin/js/jsUpload/jquery.fileupload 
     147     // only one file per request : @see option singleFileUploads in admin/js/jsUpload/jquery.fileupload 
    147148     $upfile = array('name' => $_FILES['upfile']['name'][0], 
    148149          'type' => $_FILES['upfile']['type'][0], 
     
    160161               $new_file_id = $core->media->uploadFile($upfile['tmp_name'], $upfile['name']); 
    161162 
    162                $message['files'][] = array('name' => $upfile['name'], 
     163               $message['files'][] = array( 
     164                    'name' => $upfile['name'], 
    163165                    'size' => $upfile['size'], 
    164                     'html' => mediaItemLine($core->media->getFile($new_file_id), 1) 
    165                     ); 
     166                    'html' => mediaItemLine($core->media->getFile($new_file_id), 1, $plugin_id) 
     167               ); 
    166168          } catch (Exception $e) { 
    167169               $message['files'][] = array('name' => $upfile['name'], 
     
    379381$fmt_form_media = '<form action="'.$core->adminurl->get("admin.media").'" method="post" id="form-medias">'. 
    380382     '<div class="files-group">%s</div>'. 
    381      '<p class="hidden">'.$core->formNonce() . form::hidden(array('d'),$d).'</p>'; 
     383     '<p class="hidden">'.$core->formNonce() . form::hidden(array('d'),$d).form::hidden(array('plugin_id'),$plugin_id).'</p>'; 
    382384 
    383385if (!$popup) { 
     
    410412     '<input type="submit" value="'.__('OK').'" />'. 
    411413     form::hidden(array('popup'),$popup). 
     414     form::hidden(array('plugin_id'),$plugin_id). 
    412415     form::hidden(array('post_id'),$post_id). 
    413416     '</p>'. 
     
    420423     { 
    421424          if ($items[$i]->d) { 
    422                $dgroup .= mediaItemLine($items[$i],$j); 
     425               $dgroup .= mediaItemLine($items[$i],$j,$plugin_id); 
    423426          } else { 
    424                $fgroup .= mediaItemLine($items[$i],$j); 
     427               $fgroup .= mediaItemLine($items[$i],$j,$plugin_id); 
    425428          } 
    426429     } 
     
    561564 
    562565/* ----------------------------------------------------- */ 
    563 function mediaItemLine($f,$i) 
     566function mediaItemLine($f,$i,$plugin_id) 
    564567{ 
    565568     global $core, $page_url, $popup, $post_id; 
     
    578581          } 
    579582     } else { 
    580           $link = $core->adminurl->get("admin.media.item", array('id' => $f->media_id,'popup' => $popup,'post_id' => $post_id)); 
    581         if (($temp = $core->callBehavior('adminMediaURL',$link))!='') { 
    582             $link = $temp; 
    583         } 
     583          $link = $core->adminurl->get( 
     584               'admin.media.item', 
     585               array( 
     586                    'id' => $f->media_id, 
     587                    'plugin_id' => $plugin_id, 
     588                    'popup' => $popup, 
     589                    'post_id' => $post_id 
     590               ) 
     591          ); 
     592          if (($temp = $core->callBehavior('adminMediaURL',$link))!='') { 
     593               $link = $temp; 
     594          } 
    584595     } 
    585596 
  • admin/media_item.php

    r2749 r2751  
    2929$file = null; 
    3030$popup = (integer) !empty($_GET['popup']); 
     31$plugin_id = isset($_REQUEST['plugin_id']) ? html::sanitizeURL($_REQUEST['plugin_id']) : ''; 
    3132$page_url = $core->adminurl->get("admin.media.item",array('popup' => $popup,'post_id' => $post_id)); 
    3233$media_page_url = $core->adminurl->get("admin.media",array('popup' => $popup,'post_id' => $post_id)); 
     
    8384 
    8485          dcPage::addSuccessNotice(__('File has been successfully updated.')); 
    85           http::redirect($page_url.'&id='.$id); 
     86          http::redirect($page_url.'&id='.$id.'&plugin_id='.$plugin_id); 
    8687     } catch (Exception $e) { 
    8788          $core->error->add($e->getMessage()); 
     
    112113 
    113114          dcPage::addSuccessNotice(__('File has been successfully updated.')); 
    114           http::redirect($page_url.'&id='.$id.'&tab=media-details-tab'); 
     115          http::redirect($page_url.'&id='.$id.'&plugin_id='.$plugin_id.'&tab=media-details-tab'); 
    115116     } catch (Exception $e) { 
    116117          $core->error->add($e->getMessage()); 
     
    126127 
    127128          dcPage::addSuccessNotice(__('Thumbnails have been successfully updated.')); 
    128           http::redirect($page_url.'&id='.$id.'&tab=media-details-tab'); 
     129          http::redirect($page_url.'&id='.$id.'&plugin_id='.$plugin_id.'&tab=media-details-tab'); 
    129130     } catch (Exception $e) { 
    130131          $core->error->add($e->getMessage()); 
     
    139140 
    140141          dcPage::addSuccessNotice(__('Zip file has been successfully extracted.')); 
    141           http::redirect($media_page_url.'&d='.$unzip_dir); 
     142          http::redirect($media_page_url.'&d='.$unzip_dir.'&plugin_id='.$plugin_id); 
    142143     } catch (Exception $e) { 
    143144          $core->error->add($e->getMessage()); 
     
    164165 
    165166     dcPage::addSuccessNotice(__('Default media insertion settings have been successfully updated.')); 
    166      http::redirect($page_url.'&id='.$id); 
     167     http::redirect($page_url.'&id='.$id.'&plugin_id='.$plugin_id); 
    167168} 
    168169 
     
    207208     "</script>". 
    208209     dcPage::jsLoad('js/_media_item.js'); 
    209 if ($popup) { 
    210      // perhaps better to put active editor in session 
    211      $post_format = $core->auth->getOption('post_format'); 
    212      $post_editor = $core->auth->getOption('editor'); 
    213  
    214      $starting_scripts .= $core->callBehavior('adminPopupMedia', $post_editor[$post_format]); 
     210if ($popup && !empty($plugin_id)) { 
     211     $starting_scripts .= $core->callBehavior('adminPopupMedia', $plugin_id); 
    215212} 
    216213call_user_func($open_f,__('Media manager'), 
     
    422419          form::hidden(array('pref_insertion'),''). 
    423420          form::hidden(array('id'),$id). 
     421          form::hidden(array('plugin_id'),$plugin_id). 
    424422          $core->formNonce().'</p>'. 
    425423          '</form>'.'</div>'; 
     
    464462          $strong_link = ($s == $thumb_size) ? '<strong>%s</strong>' : '%s'; 
    465463          printf($strong_link,'<a href="'.html::escapeURL($page_url). 
    466           '&amp;id='.$id.'&amp;size='.$s.'&amp;tab=media-details-tab">'.$core->media->thumb_sizes[$s][2].'</a> | '); 
    467      } 
    468      echo '<a href="'.html::escapeURL($page_url).'&amp;id='.$id.'&amp;size=o&amp;tab=media-details-tab">'.__('original').'</a>'; 
     464          '&amp;id='.$id.'&amp;plugin_id='.$plugin_id.'&amp;size='.$s.'&amp;tab=media-details-tab">'.$core->media->thumb_sizes[$s][2].'</a> | '); 
     465     } 
     466     echo '<a href="'.html::escapeURL($page_url).'&amp;id='.$id.'&amp;plugin_id='.$plugin_id.'&amp;size=o&amp;tab=media-details-tab">'.__('original').'</a>'; 
    469467     echo '</p>'; 
    470468} 
     
    492490{ 
    493491     echo 
    494      '<p><a class="button" href="'.html::escapeHTML($page_url).'&amp;id='.$id.'&amp;find_posts=1&amp;tab=media-details-tab">'. 
     492     '<p><a class="button" href="'.html::escapeHTML($page_url).'&amp;id='.$id.'&plugin_id='.$plugin_id.'&amp;find_posts=1&amp;tab=media-details-tab">'. 
    495493     __('Show entries containing this media').'</a></p>'; 
    496494} 
     
    592590          '<p><input type="submit" name="thumbs" value="'.__('Update thumbnails').'" />'. 
    593591          form::hidden(array('id'),$id). 
     592          form::hidden(array('plugin_id'),$plugin_id). 
    594593          $core->formNonce().'</p>'. 
    595594          '</form>'; 
     
    616615          '<input type="submit" name="unzip" value="'.__('Extract').'" />'. 
    617616          form::hidden(array('id'),$id). 
     617          form::hidden(array('plugin_id'),$plugin_id). 
    618618          $core->formNonce().'</p>'. 
    619619          '</form>'; 
     
    635635     '<p><input type="submit" accesskey="s" value="'.__('Save').'" />'. 
    636636     form::hidden(array('id'),$id). 
     637     form::hidden(array('plugin_id'),$plugin_id). 
    637638     $core->formNonce().'</p>'. 
    638639     '</form>'; 
     
    648649     '<p><input type="submit" value="'.__('Send').'" />'. 
    649650     form::hidden(array('id'),$id). 
     651     form::hidden(array('plugin_id'),$plugin_id). 
    650652     $core->formNonce().'</p>'. 
    651653     '</form>'; 
     
    655657          '<form id="delete-form" method="post" action="'.html::escapeURL($media_page_url). 
    656658          '&amp;d='.rawurlencode(dirname($file->relname)). 
     659          '&amp;plugin_id='.$plugin_id. 
    657660          '&amp;remove='.rawurlencode($file->basename).'">'. 
    658661          '<p><input name="delete" type="submit" class="delete" value="'.__('Delete this media').'" />'. 
  • plugins/dcCKEditor/_post_config.php

    r2738 r2751  
    3131               } 
    3232          } 
    33            
     33 
    3434          return url; 
    3535     }; 
    3636 
    37      /* Retrieve editor name from URL */ 
    38      $.getEditorName = function getEditorName(url) { 
    39           return url.replace(/.*editor=([^&]*)(&.*)?/,'$1'); 
     37     /* Retrieve editor from popup */ 
     38    $.active_editor = null; 
     39     $.getEditorName = function getEditorName() { 
     40          return $.active_editor; 
    4041     } 
    4142})(jQuery); 
     
    4950     CKEDITOR.config.skin = 'dotclear,'+dotclear.dcckeditor_plugin_url+'/js/ckeditor-skins/dotclear/'; 
    5051 
    51 <?php if (!empty($dcckeditor_cancollapse_button)):?>     
     52<?php if (!empty($dcckeditor_cancollapse_button)):?> 
    5253     CKEDITOR.config.toolbarCanCollapse = true; 
    5354<?php endif;?> 
    54       
    55      CKEDITOR.plugins.addExternal('entrylink',dotclear.dcckeditor_plugin_url+'/js/ckeditor-plugins/entrylink/');    
     55 
     56     CKEDITOR.plugins.addExternal('entrylink',dotclear.dcckeditor_plugin_url+'/js/ckeditor-plugins/entrylink/'); 
    5657     CKEDITOR.plugins.addExternal('dclink',dotclear.dcckeditor_plugin_url+'/js/ckeditor-plugins/dclink/'); 
    5758     CKEDITOR.plugins.addExternal('media',dotclear.dcckeditor_plugin_url+'/js/ckeditor-plugins/media/'); 
     
    7576          extraPlugins: '<?php echo $defautExtraPlugins;?>', 
    7677 
    77           <?php if (!empty($dcckeditor_format_select)):?>                   
     78          <?php if (!empty($dcckeditor_format_select)):?> 
    7879          // format tags 
    7980          format_tags: 'p;h1;h2;h3;h4;h5;h6;pre;address', 
     
    102103<?php endif;?> 
    103104                         'Bold','Italic','Underline','Strike','Subscript','Superscript','Code','Blockquote', 
    104                           
     105 
    105106<?php if (!empty($dcckeditor_list_buttons)):?> 
    106107                         'NumberedList', 'BulletedList', 
     
    135136                ,'TextColor' 
    136137<?php endif;?> 
    137                     ]  
     138                    ] 
    138139               }, 
    139140               <?php // add extra buttons comming from dotclear plugins 
     
    156157               $('#cke_post_excerpt').addClass('hide'); 
    157158          } 
    158            
     159 
    159160          $('#excerpt-area label').click(function() { 
    160161               $('#cke_post_excerpt').toggleClass('hide',$('#post_excerpt').hasClass('hide')); 
    161162          }); 
    162163     }); 
     164 
     165     // @TODO: find a better way to retrieve active editor 
     166     for (var id in CKEDITOR.instances) { 
     167          CKEDITOR.instances[id].on('focus', function(e) { 
     168               $.active_editor = e.editor.name; 
     169          }); 
     170     } 
    163171}); 
  • plugins/dcCKEditor/js/ckeditor-plugins/dclink/plugin.js

    r2743 r2751  
    66                    exec: function(editor) { 
    77                         if (editor.getSelection().getNative().toString().replace(/\s*/,'')!='') { 
    8                               $.toolbarPopup('popup_link.php?editor='+editor.name); 
     8                              $.toolbarPopup('popup_link.php?plugin_id=dcCKEditor'); 
    99                         } 
    1010                    } 
     
    2626                              editor.getSelection().selectElement(element); 
    2727 
    28                               var popup_url = 'popup_link.php?editor='+editor.name; 
     28                              var popup_url = 'popup_link.php?plugin_id=dcCKEditor'; 
    2929                              if (element.getAttribute('href')) { 
    3030                                   popup_url += '&href='+element.getAttribute('href'); 
  • plugins/dcCKEditor/js/ckeditor-plugins/entrylink/plugin.js

    r2743 r2751  
    66                    exec: function(editor) { 
    77                         if (editor.getSelection().getNative().toString().replace(/\s*/,'')!='') { 
    8                               $.toolbarPopup('popup_posts.php?popup=1&editor='+editor.name); 
     8                              $.toolbarPopup('popup_posts.php?popup=1&plugin_id=dcCKEditor'); 
    99                         } 
    1010                    } 
     
    1818 
    1919               editor.on('doubleclick',function(e) { 
    20                     var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || e.data.element; 
     20                    var element = CKEDITOR.plugins.link.getSelectedLink(editor) || e.data.element; 
    2121                    if (!element.isReadOnly()) { 
    2222                         if (element.is('a') 
     
    2525                              editor.getSelection().selectElement(element); 
    2626 
    27                               $.toolbarPopup('popup_posts.php?popup=1&editor='+editor.name); 
     27                              $.toolbarPopup('popup_posts.php?popup=1&plugin_id=dcCKEditor'); 
    2828                              return false; 
    2929                         } 
  • plugins/dcCKEditor/js/ckeditor-plugins/media/plugin.js

    r2743 r2751  
    55               editor.addCommand('mediaCommand', { 
    66                    exec: function(editor) { 
    7                          $.toolbarPopup('media.php?popup=1&editor='+editor.name); 
     7                         $.toolbarPopup('media.php?popup=1&plugin_id=dcCKEditor'); 
    88                    } 
    99               }); 
     
    1919                    if (!element.isReadOnly()) { 
    2020                         if (element.is('img') || (element.is('a') && element.hasClass('media-link'))) { 
    21                               $.toolbarPopup('media.php?popup=1&editor='+editor.name); 
     21                              $.toolbarPopup('media.php?popup=1&plugin_id=dcCKEditor'); 
    2222                              return false; 
    2323                         } 
  • plugins/dcCKEditor/js/popup_link.js

    r2738 r2751  
    66     $('#link-insert-ok').click(function() { 
    77          var insert_form = $('#link-insert-form').get(0); 
    8           if (insert_form == undefined) {  
    9                return;  
     8          if (insert_form == undefined) { 
     9               return; 
    1010          } 
    1111 
    12           var editor_name = window.opener.$.getEditorName(document.location.search), 
     12          var editor_name = window.opener.$.getEditorName(), 
    1313          editor = window.opener.CKEDITOR.instances[editor_name], 
    14           link = '',      
     14          link = '', 
    1515          selected_text = editor.getSelection().getNative().toString(); 
    1616 
  • plugins/dcCKEditor/js/popup_media.js

    r2738 r2751  
    33          window.close(); 
    44     }); 
    5       
     5 
    66     $('#media-insert-ok').click(function() { 
    77          var insert_form = $('#media-insert-form').get(0); 
    8           if (insert_form === undefined) {  
    9                return;  
     8          if (insert_form === undefined) { 
     9               return; 
    1010          } 
    1111 
    12           var editor_name = window.opener.$.getEditorName(document.location.search), 
     12          var editor_name = window.opener.$.getEditorName(), 
    1313          editor = window.opener.CKEDITOR.instances[editor_name], 
    1414          type = insert_form.elements.type.value, 
     
    4747                         element = window.opener.CKEDITOR.dom.element.createFromHtml(img); 
    4848                    } 
    49                           
     49 
    5050                    editor.insertElement(element); 
    5151               } 
  • plugins/dcCKEditor/js/popup_posts.js

    r2738 r2751  
    66     $('#form-entries tr>td.maximal>a').click(function(e) { 
    77          e.preventDefault(); 
    8           var editor_name = window.opener.$.getEditorName(document.location.search), 
     8          var editor_name = window.opener.$.getEditorName(), 
    99          editor = window.opener.CKEDITOR.instances[editor_name], 
    1010          link = '', 
  • plugins/dcLegacyEditor/js/_post_editor.js

    r2705 r2751  
    11$(function() { 
    22     if ($('#edit-entry').length==0) {return;} 
    3  
    4      // remove editor prefix 
    5      var getPostFormat = function getPostFormat(post_format) { 
    6           return post_format.replace(/[^:]*:/,''); 
    7      }; 
    8      var getPostEditor = function getPostEditor(post_format) { 
    9           return post_format.replace(/:.*/,''); 
    10      }; 
    113 
    124     // Get document format and prepare toolbars 
     
    146     var last_post_format = $(formatField).val(); 
    157     $(formatField).change(function() { 
    16           if (getPostEditor(this.value)!='dcLegacyEditor') { return;} 
     8          if (this.value!='dcLegacyEditor') { return;} 
    179 
    18           var post_format = getPostFormat(this.value); 
     10          var post_format = this.value; 
    1911 
    2012          // Confirm post format change 
     
    3729 
    3830     $('.format_control > *').addClass('hide'); 
    39      $('.format_control:not(.control_no_'+getPostFormat(last_post_format)+') > *').removeClass('hide'); 
     31     $('.format_control:not(.control_no_'+last_post_format+') > *').removeClass('hide'); 
    4032 
    4133     if ($('#comment_content').length>0) { 
     
    6153                    excerpt: excerpt_content, 
    6254                    content: post_content, 
    63                     format: getPostFormat($('#post_format').get(0).value), 
     55                    format: $('#post_format').get(0).value, 
    6456                    lang: $('#post_lang').get(0).value 
    6557               }; 
     
    111103 
    112104          // Load toolbars 
    113           contentTb.switchMode(getPostFormat(formatField.value)); 
    114           excerptTb.switchMode(getPostFormat(formatField.value)); 
     105          contentTb.switchMode(formatField.value); 
     106          excerptTb.switchMode(formatField.value); 
    115107 
    116108          // Check unsaved changes before XHTML conversion 
  • plugins/dcLegacyEditor/js/jsToolBar/jsToolBar.dotclear.js

    r2614 r2751  
    55jsToolBar.prototype.elements.link.open_url = 'popup_link.php'; 
    66 
    7 jsToolBar.prototype.elements.link.popup = function (args) { 
     7jsToolBar.prototype.elements.link.popup = function(args) { 
    88     window.the_toolbar = this; 
    99     args = args || ''; 
     
    155155     fn: {}, 
    156156     fncall: {}, 
    157      open_url: 'media.php?popup=1', 
     157     open_url: 'media.php?popup=1&plugin_id=dcLegacyEditor', 
    158158     data: {}, 
    159159     popup: function() { 
     
    355355     title: 'Link to an entry', 
    356356     fn: {}, 
    357      open_url: 'popup_posts.php', 
     357     open_url: 'popup_posts.php?plugin_id=dcLegacyEditor', 
    358358     data: {}, 
    359359     popup: function() { 
  • plugins/tags/_admin.php

    r2680 r2751  
    4040$core->addBehavior('adminPageHelpBlock', array('tagsBehaviors', 'adminPageHelpBlock')); 
    4141 
    42 $core->addBehavior('ckeditorExtraPlugins', array('tagsBehaviors', 'ckeditorExtraPlugins')); 
     42//$core->addBehavior('ckeditorExtraPlugins', array('tagsBehaviors', 'ckeditorExtraPlugins')); 
    4343 
    4444# BEHAVIORS 
Note: See TracChangeset for help on using the changeset viewer.

Sites map