Ticket #5345: 5345_3.patch

File 5345_3.patch, 4.1 KB (added by Alfonso Martínez de Lizarrondo, 13 years ago)

Revised patch

  • _source/core/editor.js

     
    230230                                // Load all plugin specific language files in a row.
    231231                                CKEDITOR.scriptLoader.load( languageFiles, function()
    232232                                        {
     233                                                // Add-in all other config options that been defined on CKEDITOR in plugin files.
     234                                                // TODO: Remove this line when we're free of global config definition in all plugins.
     235                                                 CKEDITOR.tools.extend( editor.config, CKEDITOR.tools.clone( CKEDITOR.config ) );
     236
    233237                                                // Initialize all plugins that have the "beforeInit" and "init" methods defined.
    234238                                                var methods = [ 'beforeInit', 'init', 'afterInit' ];
    235239                                                for ( var m = 0 ; m < methods.length ; m++ )
     
    390394                         * var editor = CKEDITOR.instances.editor1;
    391395                         * alert( <b>editor.config.theme</b> );  "default" e.g.
    392396                         */
    393                         this.config = CKEDITOR.tools.prototypedCopy( CKEDITOR.config );
     397                        this.config = CKEDITOR.tools.clone( CKEDITOR.config );
    394398
    395399                        /**
    396400                         * Namespace containing UI features related to this editor instance.
     
    505509                        if ( this._.filebrowserFn )
    506510                                CKEDITOR.tools.removeFunction( this._.filebrowserFn );
    507511
    508                         items = editor.config.elementsPath_filters;
    509                         if ( items )
    510                         {
    511                                 for ( index= 0 ; index < items.length ; index++ )
    512                                         items[ index ] = null;
    513                         }
    514 
    515512                        this.fire( 'destroy' );
    516513                        CKEDITOR.remove( this );
    517514                        CKEDITOR.fire( 'instanceDestroyed', null, this );
  • _source/plugins/elementspath/plugin.js

     
    3333
    3434                init : function( editor )
    3535                {
     36                        var config = editor.config,
     37                                pathFilters = config.elementsPath_filters;
     38
     39                        config.elementsPath_filters = ( pathFilters || [] );
     40
    3641                        var spaceId = 'cke_path_' + editor.name;
    3742                        var spaceElement;
    3843                        var getSpaceElement = function()
     
    5661                                        }
    5762                                });
    5863
    59                         var filters = editor.config.elementsPath_filters;
    60 
    6164                        editor.on( 'selectionChange', function( ev )
    6265                                {
    63                                         var env = CKEDITOR.env;
    64 
    65                                         var selection = ev.data.selection;
    66 
    67                                         var element = selection.getStartElement(),
     66                                        var env = CKEDITOR.env,
     67                                                selection = ev.data.selection,
     68                                                element = selection.getStartElement(),
    6869                                                html = [],
    69                                                 elementsList = this._.elementsPath.list = [];
     70                                                editor = ev.editor,
     71                                                elementsList = editor._.elementsPath.list = [],
     72                                                filters = editor.config.elementsPath_filters;
    7073
    7174                                        while ( element )
    7275                                        {
     
    114117                                                                        ( ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ?
    115118                                                                        ' onfocus="event.preventBubble();"' : '' ) +
    116119                                                                        ' hidefocus="true" ' +
    117                                                                         ' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', this.name, '\',', index, ', event);"' +
     120                                                                        ' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', editor.name, '\',', index, ', event);"' +
    118121                                                                        extra ,
    119                                                                         ' onclick="return CKEDITOR._.elementsPath.click(\'', this.name, '\',', index, ');"',
     122                                                                        ' onclick="return CKEDITOR._.elementsPath.click(\'', editor.name, '\',', index, ');"',
    120123                                                                        ' role="button" aria-labelledby="' + idBase + index + '_label">',
    121124                                                                                name,
    122125                                                                                '<span id="', idBase, index, '_label" class="cke_label">' + label + '</span>',
     
    206209
    207210/**
    208211 * A list of filter functions to determinate whether an element should display in elements path bar.
     212 * @name CKEDITOR.config.elementsPath_filters
    209213 * @type Array Array of functions that optionaly return 'false' to prevent the element from displaying.
    210  * @default  []
     214 * @default []
    211215 * @example
    212216 *      // Prevent elements with attribute 'myAttribute' to appear in elements path.
    213217 *      editor.config.elementsPath_filters.push( function( element )
     
    216220 *                      return false;
    217221 *      });
    218222 */
    219 CKEDITOR.config.elementsPath_filters = [];
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy