1 /* © 2011 Benoît Pin, MINES ParisTech */
6 var reSize
= /getResizedImage\?size=(\d+)_(\d+)$/;
8 function updateImageSizeUrlParameters(img
) {
9 if (reSize
.test(img
.src
)){
10 var matches
= reSize
.exec(img
.src
);
11 var srcWidth
= parseInt(matches
[1]);
12 var srcHeight
= parseInt(matches
[2]);
14 var imgWidth
= parseInt((img
.style
.width
) ? img
.style
.width
: img
.width
);
15 var imgHeight
= parseInt((img
.style
.height
) ? img
.style
.height
: img
.height
);
17 if ((imgWidth
&& imgHeight
) && srcWidth
!= imgWidth
&& srcHeight
!= imgHeight
) {
18 var newUrl
= img
.getAttribute('src', 2).replace(reSize
, 'getResizedImage?size=' + imgWidth
+ '_' + imgHeight
);
20 img
.height
= imgHeight
;
26 function openPlinnImageDialog(path
, editor
) {
27 var winOptions
= "location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes" +
34 var win
= open(path
+ 'dialog/plinn_image.html', 'PlinnImageDialog', winOptions
);
35 win
.dialogArguments
= new Object();
36 win
.dialogArguments
.editor
= editor
;
40 CKEDITOR
.plugins
.add( 'plinn_image',
42 init : function( editor
)
44 /* Add listener on getData event to compute images
45 src attributes before saving data.
47 editor
.on('instanceReady', function(){
50 var body
= evt
.editor
.document
.$.body
;
51 var images
= body
.getElementsByTagName('IMG');
52 for (var i
= 0 ; i
< images
.length
; i
++)
53 updateImageSizeUrlParameters(images
[i
]);
54 evt
.data
.dataValue
= evt
.editor
.document
.$.body
.innerHTML
;
58 var pluginPath
= this.path
;
59 var command
= editor
.addCommand('plinn_image',
61 exec : function(editor
){openPlinnImageDialog(pluginPath
, editor
);}
64 editor
.ui
.addButton('PlinnImage',
66 label
: editor
.lang
.common
.image
,
67 icon
: pluginPath
+ 'dialog/plinn_image.gif',
68 command
: 'plinn_image'