1 /* 2 Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. 3 For licensing, see LICENSE.html or http://ckeditor.com/license 4 */ 5 6 (function() 7 { 8 CKEDITOR.plugins.add( 'iframe', 9 { 10 requires : [ 'dialog', 'fakeobjects' ], 11 init : function( editor ) 12 { 13 var pluginName = 'iframe', 14 lang = editor.lang.iframe; 15 16 CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/iframe.js' ); 17 editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) ); 18 19 editor.addCss( 20 'img.cke_iframe' + 21 '{' + 22 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' + 23 'background-position: center center;' + 24 'background-repeat: no-repeat;' + 25 'border: 1px solid #a9a9a9;' + 26 'width: 80px;' + 27 'height: 80px;' + 28 '}' 29 ); 30 31 editor.ui.addButton( 'Iframe', 32 { 33 label : lang.toolbar, 34 command : pluginName 35 }); 36 37 editor.on( 'doubleclick', function( evt ) 38 { 39 var element = evt.data.element; 40 if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' ) 41 evt.data.dialog = 'iframe'; 42 }); 43 44 if ( editor.addMenuItems ) 45 { 46 editor.addMenuItems( 47 { 48 iframe : 49 { 50 label : lang.title, 51 command : 'iframe', 52 group : 'image' 53 } 54 }); 55 } 56 57 // If the "contextmenu" plugin is loaded, register the listeners. 58 if ( editor.contextMenu ) 59 { 60 editor.contextMenu.addListener( function( element, selection ) 61 { 62 if ( element && element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' ) 63 return { iframe : CKEDITOR.TRISTATE_OFF }; 64 }); 65 } 66 }, 67 afterInit : function( editor ) 68 { 69 var dataProcessor = editor.dataProcessor, 70 dataFilter = dataProcessor && dataProcessor.dataFilter; 71 72 if ( dataFilter ) 73 { 74 dataFilter.addRules( 75 { 76 elements : 77 { 78 iframe : function( element ) 79 { 80 return editor.createFakeParserElement( element, 'cke_iframe', 'iframe', true ); 81 } 82 } 83 }); 84 } 85 } 86 }); 87 })(); 88