source: branches/2.2/filemanager/tp/ckeditor/_source/plugins/flash/plugin.js @ 3019

Revision 3019, 4.1 KB checked in by amuller, 14 years ago (diff)

Ticket #1135 - Corrigindo CSS e adicionando filemanager

Line 
1/*
2Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5
6(function()
7{
8        var flashFilenameRegex = /\.swf(?:$|\?)/i,
9                numberRegex = /^\d+(?:\.\d+)?$/;
10
11        function cssifyLength( length )
12        {
13                if ( numberRegex.test( length ) )
14                        return length + 'px';
15                return length;
16        }
17
18        function isFlashEmbed( element )
19        {
20                var attributes = element.attributes;
21
22                return ( attributes.type == 'application/x-shockwave-flash' || flashFilenameRegex.test( attributes.src || '' ) );
23        }
24
25        function createFakeElement( editor, realElement )
26        {
27                var fakeElement = editor.createFakeParserElement( realElement, 'cke_flash', 'flash', true ),
28                        fakeStyle = fakeElement.attributes.style || '';
29
30                var width = realElement.attributes.width,
31                        height = realElement.attributes.height;
32
33                if ( typeof width != 'undefined' )
34                        fakeStyle = fakeElement.attributes.style = fakeStyle + 'width:' + cssifyLength( width ) + ';';
35
36                if ( typeof height != 'undefined' )
37                        fakeStyle = fakeElement.attributes.style = fakeStyle + 'height:' + cssifyLength( height ) + ';';
38
39                return fakeElement;
40        }
41
42        CKEDITOR.plugins.add( 'flash',
43        {
44                init : function( editor )
45                {
46                        editor.addCommand( 'flash', new CKEDITOR.dialogCommand( 'flash' ) );
47                        editor.ui.addButton( 'Flash',
48                                {
49                                        label : editor.lang.common.flash,
50                                        command : 'flash'
51                                });
52                        CKEDITOR.dialog.add( 'flash', this.path + 'dialogs/flash.js' );
53
54                        editor.addCss(
55                                'img.cke_flash' +
56                                '{' +
57                                        'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' +
58                                        'background-position: center center;' +
59                                        'background-repeat: no-repeat;' +
60                                        'border: 1px solid #a9a9a9;' +
61                                        'width: 80px;' +
62                                        'height: 80px;' +
63                                '}'
64                                );
65
66                        // If the "menu" plugin is loaded, register the menu items.
67                        if ( editor.addMenuItems )
68                        {
69                                editor.addMenuItems(
70                                        {
71                                                flash :
72                                                {
73                                                        label : editor.lang.flash.properties,
74                                                        command : 'flash',
75                                                        group : 'flash'
76                                                }
77                                        });
78                        }
79
80                        // If the "contextmenu" plugin is loaded, register the listeners.
81                        if ( editor.contextMenu )
82                        {
83                                editor.contextMenu.addListener( function( element, selection )
84                                        {
85                                                if ( element && element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'flash' )
86                                                        return { flash : CKEDITOR.TRISTATE_OFF };
87                                        });
88                        }
89                },
90
91                afterInit : function( editor )
92                {
93                        var dataProcessor = editor.dataProcessor,
94                                dataFilter = dataProcessor && dataProcessor.dataFilter;
95
96                        if ( dataFilter )
97                        {
98                                dataFilter.addRules(
99                                        {
100                                                elements :
101                                                {
102                                                        'cke:object' : function( element )
103                                                        {
104                                                                var attributes = element.attributes,
105                                                                        classId = attributes.classid && String( attributes.classid ).toLowerCase();
106
107                                                                if ( !classId )
108                                                                {
109                                                                        // Look for the inner <embed>
110                                                                        for ( var i = 0 ; i < element.children.length ; i++ )
111                                                                        {
112                                                                                if ( element.children[ i ].name == 'embed' )
113                                                                                {
114                                                                                        if ( !isFlashEmbed( element.children[ i ] ) )
115                                                                                                return null;
116
117                                                                                        return createFakeElement( editor, element );
118                                                                                }
119                                                                        }
120                                                                        return null;
121                                                                }
122
123                                                                return createFakeElement( editor, element );
124                                                        },
125
126                                                        'cke:embed' : function( element )
127                                                        {
128                                                                if ( !isFlashEmbed( element ) )
129                                                                        return null;
130
131                                                                return createFakeElement( editor, element );
132                                                        }
133                                                }
134                                        },
135                                        5);
136                        }
137                },
138
139                requires : [ 'fakeobjects' ]
140        });
141})();
142
143CKEDITOR.tools.extend( CKEDITOR.config,
144{
145        /**
146         * Save as EMBED tag only. This tag is unrecommended.
147         * @type Boolean
148         * @default false
149         */
150        flashEmbedTagOnly : false,
151
152        /**
153         * Add EMBED tag as alternative: &lt;object&gt&lt;embed&gt&lt;/embed&gt&lt;/object&gt
154         * @type Boolean
155         * @default false
156         */
157        flashAddEmbedTag : true,
158
159        /**
160         * Use embedTagOnly and addEmbedTag values on edit.
161         * @type Boolean
162         * @default false
163         */
164        flashConvertOnEdit : false
165} );
Note: See TracBrowser for help on using the repository browser.