source: trunk/phpgwapi/js/ckeditor/_source/plugins/fakeobjects/plugin.js @ 2862

Revision 2862, 3.2 KB checked in by rodsouza, 14 years ago (diff)

Ticket #663 - Atualizando e centralizando o CKEditor (v. 3.2.1)

Line 
1/*
2Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5
6(function()
7{
8        var htmlFilterRules =
9        {
10                elements :
11                {
12                        $ : function( element )
13                        {
14                                var attributes = element.attributes,
15                                        realHtml = attributes && attributes._cke_realelement,
16                                        realFragment = realHtml && new CKEDITOR.htmlParser.fragment.fromHtml( decodeURIComponent( realHtml ) ),
17                                        realElement = realFragment && realFragment.children[ 0 ];
18
19                                // If we have width/height in the element, we must move it into
20                                // the real element.
21                                if ( realElement && element.attributes._cke_resizable )
22                                {
23                                        var style = element.attributes.style;
24
25                                        if ( style )
26                                        {
27                                                // Get the width from the style.
28                                                var match = /(?:^|\s)width\s*:\s*(\d+)/i.exec( style ),
29                                                        width = match && match[1];
30
31                                                // Get the height from the style.
32                                                match = /(?:^|\s)height\s*:\s*(\d+)/i.exec( style );
33                                                var height = match && match[1];
34
35                                                if ( width )
36                                                        realElement.attributes.width = width;
37
38                                                if ( height )
39                                                        realElement.attributes.height = height;
40                                        }
41                                }
42
43                                return realElement;
44                        }
45                }
46        };
47
48        CKEDITOR.plugins.add( 'fakeobjects',
49        {
50                requires : [ 'htmlwriter' ],
51
52                afterInit : function( editor )
53                {
54                        var dataProcessor = editor.dataProcessor,
55                                htmlFilter = dataProcessor && dataProcessor.htmlFilter;
56
57                        if ( htmlFilter )
58                                htmlFilter.addRules( htmlFilterRules );
59                }
60        });
61})();
62
63CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable )
64{
65        var lang = this.lang.fakeobjects;
66
67        var attributes =
68        {
69                'class' : className,
70                src : CKEDITOR.getUrl( 'images/spacer.gif' ),
71                _cke_realelement : encodeURIComponent( realElement.getOuterHtml() ),
72                _cke_real_node_type : realElement.type,
73                alt : lang[ realElementType ] || lang.unknown
74        };
75
76        if ( realElementType )
77                attributes._cke_real_element_type = realElementType;
78
79        if ( isResizable )
80                attributes._cke_resizable = isResizable;
81
82        return this.document.createElement( 'img', { attributes : attributes } );
83};
84
85CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable )
86{
87        var lang = this.lang.fakeobjects,
88                html;
89
90        var writer = new CKEDITOR.htmlParser.basicWriter();
91        realElement.writeHtml( writer );
92        html = writer.getHtml();
93
94        var attributes =
95        {
96                'class' : className,
97                src : CKEDITOR.getUrl( 'images/spacer.gif' ),
98                _cke_realelement : encodeURIComponent( html ),
99                _cke_real_node_type : realElement.type,
100                alt : lang[ realElementType ] || lang.unknown
101        };
102
103        if ( realElementType )
104                attributes._cke_real_element_type = realElementType;
105
106        if ( isResizable )
107                attributes._cke_resizable = isResizable;
108
109        return new CKEDITOR.htmlParser.element( 'img', attributes );
110};
111
112CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement )
113{
114        if ( fakeElement.getAttribute( '_cke_real_node_type' ) != CKEDITOR.NODE_ELEMENT )
115                return null;
116
117        return CKEDITOR.dom.element.createFromHtml(
118                decodeURIComponent( fakeElement.getAttribute( '_cke_realelement' ) ),
119                this.document );
120};
Note: See TracBrowser for help on using the repository browser.