From: Benoît Pin Date: Wed, 17 Aug 2011 15:19:08 +0000 (+0200) Subject: Réinplémentation du plugin Plinn Image. Il modifie les src des images juste avanc... X-Git-Tag: 3.6.1~16 X-Git-Url: https://scm.cri.mines-paristech.fr/git/ckeditor.git/commitdiff_plain/45e45b704882d7f41ca8f80b2ab69ab6a6a8e4b7?hp=67d9ee15c5754ff0d4e6269bdb4f4b68ad217059 Réinplémentation du plugin Plinn Image. Il modifie les src des images juste avanc la sauvegarde. --- diff --git a/skins/ckeditor/config.js b/skins/ckeditor/config.js index 3cd350d..19c2459 100644 --- a/skins/ckeditor/config.js +++ b/skins/ckeditor/config.js @@ -27,4 +27,6 @@ CKEDITOR.editorConfig = function( config ) config.filebrowserBrowseUrl = CKEDITOR.basePath + 'filemanager/browser/mac_finder/browser.html?Connector=connectors/plinn/connector'; config.filebrowserWindowHeight = 600; config.filebrowserWindowWidth = 801; + + config.extraPlugins = 'selection,plinn_image'; }; \ No newline at end of file diff --git a/skins/ckeditor/plugins/plinn_image/plugin.js b/skins/ckeditor/plugins/plinn_image/plugin.js new file mode 100644 index 0000000..7181a9e --- /dev/null +++ b/skins/ckeditor/plugins/plinn_image/plugin.js @@ -0,0 +1,45 @@ +/* © Benoît Pin, MINES ParisTech */ + + +(function(){ + +var reSize = /getResizedImage\?size=(\d+)_(\d+)$/; + +function updateImageSizeUrlParameters(img) { + if (reSize.test(img.src)){ + var matches = reSize.exec(img.src); + var srcWidth = parseInt(matches[1]); + var srcHeight = parseInt(matches[2]); + + var imgWidth = parseInt((img.style.width) ? img.style.width : img.width); + var imgHeight = parseInt((img.style.height) ? img.style.height : img.height); + + if ((imgWidth && imgHeight) && srcWidth != imgWidth && srcHeight != imgHeight) { + var newUrl = img.getAttribute('src', 2).replace(reSize, 'getResizedImage?size=' + imgWidth + '_' + imgHeight); + img.width = imgWidth; + img.height = imgHeight; + img.src = newUrl; + } + } +} + + +CKEDITOR.plugins.add( 'plinn_image', +{ + init : function( editor ) + { + editor.on('instanceReady', function(){ + editor.on('getData', + function(evt) { + var body = evt.editor.document.$.body; + var images = body.getElementsByTagName('IMG'); + for (var i = 0 ; i < images.length ; i++) + updateImageSizeUrlParameters(images[i]); + evt.data.dataValue = evt.editor.document.$.body.innerHTML; + } + ); + }); + } +}); + +})();