From 45e45b704882d7f41ca8f80b2ab69ab6a6a8e4b7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Beno=C3=AEt=20Pin?= Date: Wed, 17 Aug 2011 17:19:08 +0200 Subject: [PATCH 1/1] =?utf8?q?R=C3=A9inpl=C3=A9mentation=20du=20plugin=20P?= =?utf8?q?linn=20Image.=20Il=20modifie=20les=20src=20des=20images=20juste?= =?utf8?q?=20avanc=20la=20sauvegarde.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/ckeditor/config.js | 2 + skins/ckeditor/plugins/plinn_image/plugin.js | 45 ++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 skins/ckeditor/plugins/plinn_image/plugin.js 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; + } + ); + }); + } +}); + +})(); -- 2.20.1