Ticket #5599: 5599_6.patch

File 5599_6.patch, 14.2 KB (added by Tobiasz Cudnik, 14 years ago)
  • _source/plugins/specialchar/dialogs/specialchar.js

     
    216216                }
    217217        });
    218218
     219        function mergeChars( chars, extraChars )
     220        {
     221                if ( CKEDITOR.tools.isArray( extraChars ) )
     222                {
     223                        for ( var i = 0; i < extraChars.length; i++ )
     224                                chars[ chars.length ] = extraChars[ i ];
     225                }
     226
     227                return chars;
     228        }
     229
    219230        return {
    220231                title : lang.title,
    221232                minWidth : 430,
    222233                minHeight : 280,
    223234                buttons : [ CKEDITOR.dialog.cancelButton ],
    224235                charColumns : 17,
    225                 chars :
    226                         [
    227                                 '!','&quot;','#','$','%','&amp;',"'",'(',')','*','+','-','.','/',
    228                                 '0','1','2','3','4','5','6','7','8','9',':',';',
    229                                 '&lt;','=','&gt;','?','@',
    230                                 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
    231                                 'P','Q','R','S','T','U','V','W','X','Y','Z',
    232                                 '[',']','^','_','`',
    233                                 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
    234                                 'q','r','s','t','u','v','w','x','y','z',
    235                                 '{','|','}','~','&euro;(EURO SIGN)','&lsquo;(LEFT SINGLE QUOTATION MARK)','&rsquo;(RIGHT SINGLE QUOTATION MARK)','&ldquo;(LEFT DOUBLE QUOTATION MARK)',
    236                                 '&rdquo;(RIGHT DOUBLE QUOTATION MARK)','&ndash;(EN DASH)','&mdash;(EM DASH)','&iexcl;(INVERTED EXCLAMATION MARK)','&cent;(CENT SIGN)','&pound;(POUND SIGN)',
    237                                 '&curren;(CURRENCY SIGN)','&yen;(YEN SIGN)','&brvbar;(BROKEN BAR)','&sect;(SECTION SIGN)','&uml;(DIAERESIS)','&copy;(COPYRIGHT SIGN)','&ordf;(FEMININE ORDINAL INDICATOR)',
    238                                 '&laquo;(LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)','&not;(NOT SIGN)','&reg;(REGISTERED SIGN)','&macr;(MACRON)','&deg;(DEGREE SIGN)','&plusmn;(PLUS-MINUS SIGN)','&sup2;(SUPERSCRIPT TWO)',
    239                                 '&sup3;(SUPERSCRIPT THREE)','&acute;(ACUTE ACCENT)','&micro;(MICRO SIGN)','&para;(PILCROW SIGN)','&middot;(MIDDLE DOT)','&cedil;(CEDILLA)',
    240                                 '&sup1;(SUPERSCRIPT ONE)','&ordm;(MASCULINE ORDINAL INDICATOR)','&raquo;(RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK)','&frac14;(VULGAR FRACTION ONE QUARTER)','&frac12;(VULGAR FRACTION ONE HALF)','&frac34;(VULGAR FRACTION THREE QUARTERS)',
    241                                 '&iquest;(INVERTED QUESTION MARK)','&Agrave;(LATIN CAPITAL LETTER A WITH GRAVE)','&Aacute;(LATIN CAPITAL LETTER A WITH ACUTE)','&Acirc;(LATIN CAPITAL LETTER A WITH CIRCUMFLEX)','&Atilde;(LATIN CAPITAL LETTER A WITH TILDE)','&Auml;(LATIN CAPITAL LETTER A WITH DIAERESIS)',
    242                                 '&Aring;(LATIN CAPITAL LETTER A WITH RING ABOVE)','&AElig;(LATIN CAPITAL LETTER AE)','&Ccedil;(LATIN CAPITAL LETTER C WITH CEDILLA)','&Egrave;(LATIN CAPITAL LETTER E WITH GRAVE)','&Eacute;(LATIN CAPITAL LETTER E WITH ACUTE)','&Ecirc;(LATIN CAPITAL LETTER E WITH CIRCUMFLEX)',
    243                                 '&Euml;(LATIN CAPITAL LETTER E WITH DIAERESIS)','&Igrave;(LATIN CAPITAL LETTER I WITH GRAVE)','&Iacute;(LATIN CAPITAL LETTER I WITH ACUTE)','&Icirc;(LATIN CAPITAL LETTER I WITH CIRCUMFLEX)','&Iuml;(LATIN CAPITAL LETTER I WITH DIAERESIS)','&ETH;(LATIN CAPITAL LETTER ETH)',
    244                                 '&Ntilde;(LATIN CAPITAL LETTER N WITH TILDE)','&Ograve;(LATIN CAPITAL LETTER O WITH GRAVE)','&Oacute;(LATIN CAPITAL LETTER O WITH ACUTE)','&Ocirc;(LATIN CAPITAL LETTER O WITH CIRCUMFLEX)','&Otilde;(LATIN CAPITAL LETTER O WITH TILDE)','&Ouml;(LATIN CAPITAL LETTER O WITH DIAERESIS)',
    245                                 '&times;(MULTIPLICATION SIGN)','&Oslash;(LATIN CAPITAL LETTER O WITH STROKE)','&Ugrave;(LATIN CAPITAL LETTER U WITH GRAVE)','&Uacute;(LATIN CAPITAL LETTER U WITH ACUTE)','&Ucirc;(LATIN CAPITAL LETTER U WITH CIRCUMFLEX)','&Uuml;(LATIN CAPITAL LETTER U WITH DIAERESIS)',
    246                                 '&Yacute;(LATIN CAPITAL LETTER Y WITH ACUTE)','&THORN;(LATIN CAPITAL LETTER THORN)','&szlig;(LATIN SMALL LETTER SHARP S)','&agrave;(LATIN SMALL LETTER A WITH GRAVE)','&aacute;(LATIN SMALL LETTER A WITH ACUTE)','&acirc;(LATIN SMALL LETTER A WITH CIRCUMFLEX)',
    247                                 '&atilde;(LATIN SMALL LETTER A WITH TILDE)','&auml;(LATIN SMALL LETTER A WITH DIAERESIS)','&aring;(LATIN SMALL LETTER A WITH RING ABOVE)','&aelig;(LATIN SMALL LETTER AE)','&ccedil;(LATIN SMALL LETTER C WITH CEDILLA)','&egrave;(LATIN SMALL LETTER E WITH GRAVE)',
    248                                 '&eacute;(LATIN SMALL LETTER E WITH ACUTE)','&ecirc;(LATIN SMALL LETTER E WITH CIRCUMFLEX)','&euml;(LATIN SMALL LETTER E WITH DIAERESIS)','&igrave;(LATIN SMALL LETTER I WITH GRAVE)','&iacute;(LATIN SMALL LETTER I WITH ACUTE)','&icirc;(LATIN SMALL LETTER I WITH CIRCUMFLEX)',
    249                                 '&iuml;(LATIN SMALL LETTER I WITH DIAERESIS)','&eth;(LATIN SMALL LETTER ETH)','&ntilde;(LATIN SMALL LETTER N WITH TILDE)','&ograve;(LATIN SMALL LETTER O WITH GRAVE)','&oacute;(LATIN SMALL LETTER O WITH ACUTE)','&ocirc;(LATIN SMALL LETTER O WITH CIRCUMFLEX)',
    250                                 '&otilde;(LATIN SMALL LETTER O WITH TILDE)','&ouml;(LATIN SMALL LETTER O WITH DIAERESIS)',
    251                                 '&divide;(DIVISION SIGN)','&oslash;(LATIN SMALL LETTER O WITH STROKE)',
    252                                 '&ugrave;(LATIN SMALL LETTER U WITH GRAVE)','&uacute;(LATIN SMALL LETTER U WITH ACUTE)',
    253                                 '&ucirc;(LATIN SMALL LETTER U WITH CIRCUMFLEX)','&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)',
    254                                 '&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)','&yacute;(LATIN SMALL LETTER Y WITH ACUTE)','&thorn;(LATIN SMALL LETTER THORN)','&yuml;(LATIN SMALL LETTER Y WITH DIAERESIS)',
    255                                 '&OElig;(LATIN CAPITAL LIGATURE OE)',
    256                                 '&oelig;(LATIN SMALL LIGATURE OE)','&#372;(LATIN CAPITAL LETTER W WITH CIRCUMFLEX)',
    257                                 '&#374(LATIN CAPITAL LETTER Y WITH CIRCUMFLEX)','&#373(LATIN SMALL LETTER W WITH CIRCUMFLEX)',
    258                                 '&#375;(LATIN SMALL LETTER Y WITH CIRCUMFLEX)','&sbquo;(SINGLE LOW-9 QUOTATION MARK)',
    259                                 '&#8219;(SINGLE HIGH-REVERSED-9 QUOTATION MARK)','&bdquo;(DOUBLE LOW-9 QUOTATION MARK)','&hellip;(HORIZONTAL ELLIPSIS)',
    260                                 '&trade;(TRADE MARK SIGN)','&#9658;(BLACK RIGHT-POINTING POINTER)','&bull;(BULLET)',
    261                                 '&rarr;(RIGHTWARDS ARROW)','&rArr;(RIGHTWARDS DOUBLE ARROW)','&hArr;(LEFT RIGHT DOUBLE ARROW)','&diams;(BLACK DIAMOND SUIT)','&asymp;(ALMOST EQUAL TO)'
    262                         ],
    263236                onLoad :  function()
    264237                {
    265238                        var columns = this.definition.charColumns,
    266                                 chars = this.definition.chars;
     239                                extraChars = editor.config.extraSpecialChars,
     240                                chars = editor.config.specialChars.concat( extraChars ? extraChars : [] );
    267241
    268242                        var charsTableLabel =  CKEDITOR.tools.getNextId() + '_specialchar_table_label';
    269243                        var html = [ '<table role="listbox" aria-labelledby="' + charsTableLabel + '"' +
     
    284258                                        if ( ( character = chars[ i ] ) )
    285259                                        {
    286260                                                charDesc = '';
    287                                                 character = character.replace( /\((.*?)\)/, function( match, desc )
    288                                                         {
    289                                                                 charDesc = desc;
    290                                                                 return '';
    291                                                         } );
     261                                               
     262                                                if ( character instanceof Array )
     263                                                {
     264                                                        charDesc = character[ 1 ];
     265                                                        character = character[ 0 ];
     266                                                }
     267                                                else
     268                                                {
     269                                                        var _tmpName = character.toLowerCase().replace( '&', '' ).replace( ';', '' ).replace( '#', '' );
    292270
    293                                                 // Use character in case description unavailable.
    294                                                 charDesc = charDesc || character;
     271                                                        // Use character in case description unavailable.
     272                                                        charDesc = lang[ _tmpName ] || character;
     273                                                }
    295274
    296275                                                var charLabelId =  'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
    297276
  • _source/plugins/specialchar/plugin.js

     
    99
    1010CKEDITOR.plugins.add( 'specialchar',
    1111{
     12        // List of available localizations.
     13        availableLangs : { en:1 },
     14       
    1215        init : function( editor )
    1316        {
    14                 var pluginName = 'specialchar';
     17                var pluginName = 'specialchar',
     18                        plugin = this;
    1519
    1620                // Register the dialog.
    1721                CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/specialchar.js' );
    1822
    19                 // Register the command.
    20                 editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
     23                editor.addCommand( pluginName,
     24                        {
     25                                exec : function()
     26                                {
     27                                        var langCode = editor.langCode;
     28                                        langCode = plugin.availableLangs[ langCode ] ? langCode : 'en';
    2129
     30                                        CKEDITOR.scriptLoader.load(
     31                                                        CKEDITOR.getUrl( plugin.path + 'lang/' + langCode + '.js' ),
     32                                                        function()
     33                                                        {
     34                                                                CKEDITOR.tools.extend( editor.lang.specialChar, plugin.lang[ langCode ] );
     35                                                                editor.openDialog( pluginName );
     36                                                        });
     37                                },
     38                                modes : { wysiwyg:1 },
     39                                canUndo : false
     40                        });
     41
    2242                // Register the toolbar button.
    2343                editor.ui.addButton( 'SpecialChar',
    2444                        {
  • _source/plugins/specialchar/lang/en.js

     
     1
     2CKEDITOR.plugins.setLang( 'specialchar', 'en',
     3{
     4        euro: "EURO SIGN",
     5        lsquo: "LEFT SINGLE QUOTATION MARK",
     6        rsquo: "RIGHT SINGLE QUOTATION MARK",
     7        ldquo: "LEFT DOUBLE QUOTATION MARK",
     8        rdquo: "RIGHT DOUBLE QUOTATION MARK",
     9        ndash: "EN DASH",
     10        mdash: "EM DASH",
     11        iexcl: "INVERTED EXCLAMATION MARK",
     12        cent: "CENT SIGN",
     13        pound: "POUND SIGN",
     14        curren: "CURRENCY SIGN",
     15        yen: "YEN SIGN",
     16        brvbar: "BROKEN BAR",
     17        sect: "SECTION SIGN",
     18        uml: "DIAERESIS",
     19        copy: "COPYRIGHT SIGN",
     20        ordf: "FEMININE ORDINAL INDICATOR",
     21        laquo: "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK",
     22        not: "NOT SIGN",
     23        reg: "REGISTERED SIGN",
     24        macr: "MACRON",
     25        deg: "DEGREE SIGN",
     26        sup2: "SUPERSCRIPT TWO",
     27        sup3: "SUPERSCRIPT THREE",
     28        acute: "ACUTE ACCENT",
     29        micro: "MICRO SIGN",
     30        para: "PILCROW SIGN",
     31        middot: "MIDDLE DOT",
     32        cedil: "CEDILLA",
     33        sup1: "SUPERSCRIPT ONE",
     34        ordm: "MASCULINE ORDINAL INDICATOR",
     35        frac14: "VULGAR FRACTION ONE QUARTER",
     36        frac12: "VULGAR FRACTION ONE HALF",
     37        frac34: "VULGAR FRACTION THREE QUARTERS",
     38        iquest: "INVERTED QUESTION MARK",
     39        agrave: "LATIN SMALL LETTER A WITH GRAVE",
     40        aacute: "LATIN SMALL LETTER A WITH ACUTE",
     41        acirc: "LATIN SMALL LETTER A WITH CIRCUMFLEX",
     42        atilde: "LATIN SMALL LETTER A WITH TILDE",
     43        auml: "LATIN SMALL LETTER A WITH DIAERESIS",
     44        aring: "LATIN SMALL LETTER A WITH RING ABOVE",
     45        aelig: "LATIN SMALL LETTER AE",
     46        ccedil: "LATIN SMALL LETTER C WITH CEDILLA",
     47        egrave: "LATIN SMALL LETTER E WITH GRAVE",
     48        eacute: "LATIN SMALL LETTER E WITH ACUTE",
     49        ecirc: "LATIN SMALL LETTER E WITH CIRCUMFLEX",
     50        euml: "LATIN SMALL LETTER E WITH DIAERESIS",
     51        igrave: "LATIN SMALL LETTER I WITH GRAVE",
     52        iacute: "LATIN SMALL LETTER I WITH ACUTE",
     53        icirc: "LATIN SMALL LETTER I WITH CIRCUMFLEX",
     54        iuml: "LATIN SMALL LETTER I WITH DIAERESIS",
     55        eth: "LATIN SMALL LETTER ETH",
     56        ntilde: "LATIN SMALL LETTER N WITH TILDE",
     57        ograve: "LATIN SMALL LETTER O WITH GRAVE",
     58        oacute: "LATIN SMALL LETTER O WITH ACUTE",
     59        ocirc: "LATIN SMALL LETTER O WITH CIRCUMFLEX",
     60        otilde: "LATIN SMALL LETTER O WITH TILDE",
     61        ouml: "LATIN SMALL LETTER O WITH DIAERESIS",
     62        times: "MULTIPLICATION SIGN",
     63        oslash: "LATIN SMALL LETTER O WITH STROKE",
     64        ugrave: "LATIN SMALL LETTER U WITH GRAVE",
     65        uacute: "LATIN SMALL LETTER U WITH ACUTE",
     66        ucirc: "LATIN SMALL LETTER U WITH CIRCUMFLEX",
     67        uuml: "LATIN SMALL LETTER U WITH DIAERESIS",
     68        yacute: "LATIN SMALL LETTER Y WITH ACUTE",
     69        thorn: "LATIN SMALL LETTER THORN",
     70        szlig: "LATIN SMALL LETTER SHARP S",
     71        divide: "DIVISION SIGN",
     72        yuml: "LATIN SMALL LETTER Y WITH DIAERESIS",
     73        oelig: "LATIN SMALL LIGATURE OE",
     74        '372': "LATIN CAPITAL LETTER W WITH CIRCUMFLEX",
     75        '374': "LATIN CAPITAL LETTER Y WITH CIRCUMFLEX",
     76        '373': "LATIN SMALL LETTER W WITH CIRCUMFLEX",
     77        '375': "LATIN SMALL LETTER Y WITH CIRCUMFLEX",
     78        8219: "SINGLE HIGH-REVERSED-9 QUOTATION MARK",
     79        bdquo: "DOUBLE LOW-9 QUOTATION MARK",
     80        hellip: "HORIZONTAL ELLIPSIS",
     81        trade: "TRADE MARK SIGN",
     82        '9658': "BLACK RIGHT-POINTING POINTER",
     83        bull: "BULLET",
     84        rarr: "RIGHTWARDS DOUBLE ARROW",
     85        harr: "LEFT RIGHT DOUBLE ARROW",
     86        diams: "BLACK DIAMOND SUIT",
     87        asymp: "ALMOST EQUAL TO",
     88        sbquo: 'SINGLE LOW-9 QUOTATION MARK'
     89});
     90 No newline at end of file
  • _source/core/config.js

     
    383383         * @example
    384384         * config.baseFloatZIndex = 2000
    385385         */
    386         baseFloatZIndex : 10000
     386        baseFloatZIndex : 10000,
     387
     388        /**
     389         * The list of special characters visible in Special Character dialog.
     390         * @type Array
     391         * @example
     392         * config.specialChars = [ '&quot;', '&rsquo;', [ '&custom;', 'Custom label' ] ];
     393         */
     394        specialChars :
     395                [
     396                        '!','&quot;','#','$','%','&amp;',"'",'(',')','*','+','-','.','/',
     397                        '0','1','2','3','4','5','6','7','8','9',':',';',
     398                        '&lt;','=','&gt;','?','@',
     399                        'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
     400                        'P','Q','R','S','T','U','V','W','X','Y','Z',
     401                        '[',']','^','_','`',
     402                        'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
     403                        'q','r','s','t','u','v','w','x','y','z',
     404                        '{','|','}','~',
     405                        "&euro;", "&lsquo;", "&rsquo;", "&ldquo;", "&rdquo;", "&ndash;", "&mdash;", "&iexcl;", "&cent;", "&pound;", "&curren;", "&yen;", "&brvbar;", "&sect;", "&uml;", "&copy;", "&ordf;", "&laquo;", "&not;", "&reg;", "&macr;", "&deg;", "&", "&sup2;", "&sup3;", "&acute;", "&micro;", "&para;", "&middot;", "&cedil;", "&sup1;", "&ordm;", "&", "&frac14;", "&frac12;", "&frac34;", "&iquest;", "&Agrave;", "&Aacute;", "&Acirc;", "&Atilde;", "&Auml;", "&Aring;", "&AElig;", "&Ccedil;", "&Egrave;", "&Eacute;", "&Ecirc;", "&Euml;", "&Igrave;", "&Iacute;", "&Icirc;", "&Iuml;", "&ETH;", "&Ntilde;", "&Ograve;", "&Oacute;", "&Ocirc;", "&Otilde;", "&Ouml;", "&times;", "&Oslash;", "&Ugrave;", "&Uacute;", "&Ucirc;", "&Uuml;", "&Yacute;", "&THORN;", "&szlig;", "&agrave;", "&aacute;", "&acirc;", "&atilde;", "&auml;", "&aring;", "&aelig;", "&ccedil;", "&egrave;", "&eacute;", "&ecirc;", "&euml;", "&igrave;", "&iacute;", "&icirc;", "&iuml;", "&eth;", "&ntilde;", "&ograve;", "&oacute;", "&ocirc;", "&otilde;", "&ouml;", "&divide;", "&oslash;", "&ugrave;", "&uacute;", "&ucirc;", "&uuml;", "&uuml;", "&yacute;", "&thorn;", "&yuml;", "&OElig;", "&oelig;", "&#372;", "&#374", "&#373", "&#375;", "&sbquo;", "&#8219;", "&bdquo;", "&hellip;", "&trade;", "&#9658;", "&bull;", "&rarr;", "&rArr;", "&hArr;", "&diams;", "&asymp;"
     406                ],
     407
     408//      extraSpecialChars : null
     409        /**
     410         * List of additional special characters. This is a tool setting which
     411         * makes it easier to add new characters, whithout having to touch and
     412         * possibly breaking the {@link CKEDITOR.config.specialChars} array.
     413         * @type Array
     414         * @example
     415         * config.extraSpecialChars = [ '&quot;', '&rsquo;', [ '&custom;', 'Custom label' ] ];
     416         */
     417        extraSpecialChars : null
    387418};
    388419
    389420/**
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy