Changeset 3844


Ignore:
Timestamp:
07/09/09 10:20:50 (5 years ago)
Author:
arczi
Message:

#3869 Now it is possible to insert protected source inside another one

Location:
CKEditor/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r3843 r3844  
    4545                Fixed issues:</p> 
    4646        <ul> 
     47                <li><a href="http://dev.fckeditor.net/ticket/3869">#3869</a> : Now it is possible to insert protected source inside another one</li> 
    4748                <li><a href="http://dev.fckeditor.net/ticket/3859">#3859</a> : Fixed Flash dialog layout in Webkit</li> 
    4849                <li><a href="http://dev.fckeditor.net/ticket/3852">#3852</a> : Disabled textarea resizing in dialogs</li> 
  • CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js

    r3831 r3844  
    230230        function protectSource( data, protectRegexes ) 
    231231        { 
     232                var protectedHtml = [], 
     233                        tempRegex = /<\!--{cke_temp}(\d*?)-->/g; 
    232234                var regexes = 
    233235                        [ 
     
    249251                        data = data.replace( regexes[i], function( match ) 
    250252                                { 
    251                                         return '<!--' + protectedSourceMarker + encodeURIComponent( match ).replace( /--/g, '%2D%2D' ) + '-->'; 
     253                                        match = match.replace( tempRegex,               // There could be protected source inside another one. (#3869). 
     254                                                function( $, id ) 
     255                                                { 
     256                                                        return protectedHtml[ id ]; 
     257                                                } 
     258                                        ); 
     259                                        return  '<!--{cke_temp}' + ( protectedHtml.push( match ) - 1 ) + '-->'; 
    252260                                }); 
    253261                } 
    254  
     262                data = data.replace( tempRegex, function( $, id ) 
     263                        { 
     264                                return '<!--' + protectedSourceMarker +  
     265                                                encodeURIComponent( protectedHtml[ id ] ).replace( /--/g, '%2D%2D' ) + 
     266                                                '-->'; 
     267                        } 
     268                ); 
    255269                return data; 
    256270        } 
  • CKEditor/trunk/_source/tests/plugins/htmldataprocessor/htmldataprocessor.html

    r3831 r3844  
    269269                        assert.areSame( getTextAreaValue( '_TEXTAREA_3591_2' ), 
    270270                                dataProcessor.toDataFormat( protectedHtml ) ); 
     271                }, 
     272 
     273                test_ticket_3869_1 : function() 
     274                { 
     275                        var editor = CKEDITOR.instances.editor1, 
     276                                dataProcessor = editor.dataProcessor; 
     277  
     278                        dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter(); 
     279                        var html = getTextAreaValue( '_TEXTAREA_3869_1' ); 
     280                        var protectedHtml = dataProcessor.toHtml( html ); 
     281 
     282                        assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) ); 
     283                }, 
     284 
     285                test_ticket_3869_2 : function() 
     286                { 
     287                        var editor = CKEDITOR.instances.editor1, 
     288                                dataProcessor = editor.dataProcessor, 
     289                                config = editor.config; 
     290 
     291                        config.protectedSource.push( /<\?[\s\S]*?\?>/g );   // PHP Code 
     292                        config.protectedSource.push( /<%[\s\S]*?%>/g );   // ASP Code 
     293                        config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi );   // ASP.Net Code 
     294                        config.protectedSource.push(/<gallery[\s\S]*?<\/gallery>/gi );  // custom protected source 
     295                        config.protectedSource.push(/<options[\s\S]*?<\/options>/gi ); 
     296                        dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter(); 
     297                        var html = getTextAreaValue( '_TEXTAREA_3869_2' ); 
     298                        var protectedHtml = dataProcessor.toHtml( html ); 
     299 
     300                        assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) ); 
    271301                }, 
    272302 
     
    319349        <textarea id="_TEXTAREA_3591"><object><param /><param /><embed></embed></object></textarea> 
    320350        <textarea id="_TEXTAREA_3591_protected"><cke:object><cke:param></cke:param><cke:param></cke:param><cke:embed></cke:embed></cke:object></textarea> 
     351        <textarea id="_TEXTAREA_3869_1">#3869<script language="Javascript" type="text/javascript"> 
     352        <!-- 
     353                alert('-->') 
     354        //--> 
     355        </script></textarea> 
     356        <textarea id="_TEXTAREA_3869_2">#3869<gallery> 
     357        file.jpg 
     358        <options name="test1" value="value1"></options> 
     359        <options name="test2" value="value2"></options> 
     360        </gallery><? 
     361                echo '<script type="text/javascript">'; 
     362                echo '<!--alert("-->");//-->'; 
     363                echo '</script>'; 
     364        ?><!--<%Response.Write(now())%>//-->invalid<? 
     365                echo 'bbb<script> 
     366                <!--  
     367                ccc();<!-- </script><!-- </script> 
     368                //--></script> 
     369                <script><!--  
     370                <!--  
     371                ffff(); 
     372                //--></script> 
     373                ddd'; 
     374        ?>html</textarea> 
    321375        <textarea id="_TEXTAREA_3591_2"><object classid="clsid"><param name="movie" value="movie.swf" /><embed src="movie.swf" type="application/x-shockwave-flash"></embed></object></textarea> 
    322376</body> 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy