--- /dev/null
+/*\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.html or http://ckeditor.com/license\r
+*/\r
+\r
+(function()\r
+{\r
+ function createFakeElement( editor, realElement )\r
+ {\r
+ var fakeElement = editor.createFakeParserElement( realElement, 'cke_iframe', 'iframe', true ),\r
+ fakeStyle = fakeElement.attributes.style || '';\r
+\r
+ var width = realElement.attributes.width,\r
+ height = realElement.attributes.height;\r
+\r
+ if ( typeof width != 'undefined' )\r
+ fakeStyle += 'width:' + CKEDITOR.tools.cssLength( width ) + ';';\r
+\r
+ if ( typeof height != 'undefined' )\r
+ fakeStyle += 'height:' + CKEDITOR.tools.cssLength( height ) + ';';\r
+\r
+ fakeElement.attributes.style = fakeStyle;\r
+\r
+ return fakeElement;\r
+ }\r
+\r
+ CKEDITOR.plugins.add( 'iframe',\r
+ {\r
+ requires : [ 'dialog', 'fakeobjects' ],\r
+ init : function( editor )\r
+ {\r
+ var pluginName = 'iframe',\r
+ lang = editor.lang.iframe;\r
+\r
+ CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/iframe.js' );\r
+ editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );\r
+\r
+ editor.addCss(\r
+ 'img.cke_iframe' +\r
+ '{' +\r
+ 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' +\r
+ 'background-position: center center;' +\r
+ 'background-repeat: no-repeat;' +\r
+ 'border: 1px solid #a9a9a9;' +\r
+ 'width: 80px;' +\r
+ 'height: 80px;' +\r
+ '}'\r
+ );\r
+\r
+ editor.ui.addButton( 'Iframe',\r
+ {\r
+ label : lang.toolbar,\r
+ command : pluginName\r
+ });\r
+\r
+ editor.on( 'doubleclick', function( evt )\r
+ {\r
+ var element = evt.data.element;\r
+ if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )\r
+ evt.data.dialog = 'iframe';\r
+ });\r
+\r
+ if ( editor.addMenuItems )\r
+ {\r
+ editor.addMenuItems(\r
+ {\r
+ iframe :\r
+ {\r
+ label : lang.title,\r
+ command : 'iframe',\r
+ group : 'image'\r
+ }\r
+ });\r
+ }\r
+\r
+ // If the "contextmenu" plugin is loaded, register the listeners.\r
+ if ( editor.contextMenu )\r
+ {\r
+ editor.contextMenu.addListener( function( element, selection )\r
+ {\r
+ if ( element && element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )\r
+ return { iframe : CKEDITOR.TRISTATE_OFF };\r
+ });\r
+ }\r
+ },\r
+ afterInit : function( editor )\r
+ {\r
+ var dataProcessor = editor.dataProcessor,\r
+ dataFilter = dataProcessor && dataProcessor.dataFilter;\r
+\r
+ if ( dataFilter )\r
+ {\r
+ dataFilter.addRules(\r
+ {\r
+ elements :\r
+ {\r
+ iframe : function( element )\r
+ {\r
+ return createFakeElement( editor, element );\r
+ }\r
+ }\r
+ });\r
+ }\r
+ }\r
+ });\r
+})();\r