Make WordPress Core

Ticket #29558: 29558.3.patch

File 29558.3.patch, 7.6 KB (added by iseulde, 10 years ago)
  • src/wp-includes/class-wp-editor.php

     
    993993                        'Keyboard Shortcuts' => __( 'Keyboard Shortcuts' ),
    994994                        'Toolbar Toggle' => __( 'Toolbar Toggle' ),
    995995                        'Insert Read More tag' => __( 'Insert Read More tag' ),
     996                        'Insert Page Break tag' => __( 'Insert Page Break tag' ),
    996997                        'Read more...' => __( 'Read more...' ), // Title on the placeholder inside the editor
    997998                        'Distraction-free writing mode' => __( 'Distraction-free writing mode' ),
    998999                        'No alignment' => __( 'No alignment' ), // Tooltip for the 'alignnone' button in the image toolbar
    9991000                        'Remove' => __( 'Remove' ), // Tooltip for the 'remove' button in the image toolbar
    10001001                        'Edit ' => __( 'Edit' ), // Tooltip for the 'edit' button in the image toolbar
     1002                        'Focus shortcuts:' => __( 'Focus shortcuts:' ),
     1003                        'Image toolbar (when an image is selected)' => __( 'Image toolbar (when an image is selected)' ),
     1004                        'Editor menu (when enabled)' => __( 'Editor menu (when enabled)' ),
     1005                        'Editor toolbar' => __( 'Editor toolbar' ),
     1006                        'Elements path' => __( 'Elements path' )
    10011007                );
    10021008
    10031009                /**
  • src/wp-includes/css/editor.css

     
    7979        width: calc( 100% - 36px );
    8080}
    8181
    82 .mce-wp-help .mce-window-head {
    83         border-bottom: none;
    84 }
    85 
    8682.mce-textbox,
    8783.mce-checkbox i.mce-i-checkbox,
    8884#wp-link .query-results {
     
    104100        box-shadow: 0 0 2px rgba(30,140,190,0.8);
    105101}
    106102
     103.mce-container kbd {
     104        font-family: monospace;
     105        padding: 3px 5px 2px 5px;
     106        margin: 0 1px;
     107        background: #eaeaea;
     108        background: rgba(0,0,0,0.07);
     109        font-size: 13px;
     110}
     111
     112.mce-wp-help {
     113        height: 400px;
     114        overflow: auto;
     115}
     116
     117.mce-wp-help td {
     118        padding: 5px;
     119}
     120
    107121/* TinyMCE menus */
    108122.mce-menu,
    109123.mce-floatpanel.mce-popover {
  • src/wp-includes/js/tinymce/plugins/wordpress/plugin.js

     
    44tinymce.ui.FloatPanel.zIndex = 100100;
    55
    66tinymce.PluginManager.add( 'wordpress', function( editor ) {
    7         var DOM = tinymce.DOM, wpAdvButton, modKey, style,
     7        var DOM = tinymce.DOM, wpAdvButton, style,
    88                last = 0;
    99
    1010        if ( typeof window.jQuery !== 'undefined' ) {
     
    188188        });
    189189
    190190        editor.addCommand( 'WP_Help', function() {
     191                var each = tinymce.each,
     192                        column1 = [],
     193                        column2 = [],
     194                        rows,
     195                        i,
     196                        html = [],
     197                        emptytd = '<td></td>',
     198                        meta = tinymce.Env.mac ? 'cmd' : 'ctrl',
     199                        access = tinymce.Env.mac ? 'ctrl + alt' : 'shift + alt',
     200                        __ = editor.editorManager.i18n.translate;
     201
     202                each( {
     203                        C: 'Copy',
     204                        X: 'Cut',
     205                        V: 'Paste',
     206                        A: 'Select all',
     207                        Z: 'Undo',
     208                        Y: 'Redo',
     209                        B: 'Bold',
     210                        I: 'Italic',
     211                        U: 'Underline',
     212                        K: 'Insert/edit link'
     213                }, function( text, key ) {
     214                        column1.push( td( meta + ' + ' + key, text ) );
     215                } );
     216
     217                each( [ 1, 2, 3, 4, 5, 6 ], function( key ) {
     218                        column1.push( td( access + ' + ' + key, 'Heading ' + key ) );
     219                } );
     220
     221                each( {
     222                        L: 'Align left',
     223                        C: 'Align center',
     224                        R: 'Align right',
     225                        J: 'Justify',
     226                        D: 'Strikethrough',
     227                        Q: 'Blockquote',
     228                        U: 'Bullet list',
     229                        O: 'Numbered list',
     230                        A: 'Insert/edit link',
     231                        S: 'Remove link',
     232                        M: 'Insert/edit image',
     233                        T: 'Insert Read More tag',
     234                        H: 'Keyboard Shortcuts',
     235                        X: 'Code',
     236                        P: 'Insert Page Break tag',
     237                        W: 'Distraction-free writing mode',
     238                        N: 'Spellcheck'
     239                }, function( text, key ) {
     240                        column2.push( td( access + ' + ' + key, text ) );
     241                } );
     242
     243                function td( pattern, text ) {
     244                        return '<td><kbd>' + pattern + '</kbd></td><td>' + __( text ) + '</td>';
     245                }
     246
     247                rows = Math.max( column1.length, column2.length );
     248
     249                for ( i = 1; i <= rows; i++ ) {
     250                        html.push( '<tr>' + ( column1[ i ] || emptytd + emptytd ) + ( column2[ i ] || emptytd + emptytd ) + '</tr>' );
     251                }
     252
     253                html = (
     254                        '<table>' + html.join( '' ) + '</table>' +
     255                        '<p>' + __( 'Focus shortcuts:' ) + '</p>' +
     256                        '<table>' +
     257                                '<tr>' + td( 'alt + F8', 'Image toolbar (when an image is selected)' ) + '</tr>' +
     258                                '<tr>' + td( 'alt + F9', 'Editor menu (when enabled)' ) + '</tr>' +
     259                                '<tr>' + td( 'alt + F10', 'Editor toolbar' ) + '</tr>' +
     260                                '<tr>' + td( 'alt + F11', 'Elements path' ) + '</tr>' +
     261                        '</table>'
     262                );
     263
    191264                editor.windowManager.open({
    192                         url: tinymce.baseURL + '/wp-mce-help.php',
    193265                        title: 'Keyboard Shortcuts',
    194                         width: 450,
    195                         height: 420,
    196                         classes: 'wp-help',
    197                         buttons: { text: 'Close', onclick: 'close' }
     266                        spacing: 10,
     267                        padding: 10,
     268                        items: {
     269                                type: 'container',
     270                                classes: 'wp-help',
     271                                html: html
     272                        },
     273                        buttons: {
     274                                text: 'Close',
     275                                onclick: 'close'
     276                        }
    198277                });
    199278        });
    200279
     
    402481        });
    403482
    404483        editor.on( 'preInit', function() {
     484                var i;
     485
    405486                // Don't replace <i> with <em> and <b> with <strong> and don't remove them when empty
    406487                editor.schema.addValidElements( '@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b' );
    407488
    408489                if ( tinymce.Env.iOS ) {
    409490                        editor.settings.height = 300;
    410491                }
    411         });
    412492
    413         // Add custom shortcuts
    414         modKey = 'alt+shift';
     493                for ( i = 1; i <= 9; i++ ) {
     494                        editor.shortcuts.remove( 'meta+shift+' + i );
     495                }
    415496
    416         editor.addShortcut( modKey + '+c', '', 'JustifyCenter' );
    417         editor.addShortcut( modKey + '+r', '', 'JustifyRight' );
    418         editor.addShortcut( modKey + '+l', '', 'JustifyLeft' );
    419         editor.addShortcut( modKey + '+j', '', 'JustifyFull' );
    420         editor.addShortcut( modKey + '+q', '', 'mceBlockQuote' );
    421         editor.addShortcut( modKey + '+u', '', 'InsertUnorderedList' );
    422         editor.addShortcut( modKey + '+o', '', 'InsertOrderedList' );
    423         editor.addShortcut( modKey + '+n', '', 'mceSpellCheck' );
    424         editor.addShortcut( modKey + '+s', '', 'unlink' );
    425         editor.addShortcut( modKey + '+m', '', 'WP_Medialib' );
    426         editor.addShortcut( modKey + '+z', '', 'WP_Adv' );
    427         editor.addShortcut( modKey + '+t', '', 'WP_More' );
    428         editor.addShortcut( modKey + '+d', '', 'Strikethrough' );
    429         editor.addShortcut( modKey + '+h', '', 'WP_Help' );
    430         editor.addShortcut( modKey + '+p', '', 'WP_Page' );
    431         editor.addShortcut( modKey + '+x', '', 'WP_Code' );
    432         editor.addShortcut( 'ctrl+s', '', function() {
    433                 if ( typeof wp !== 'undefined' && wp.autosave ) {
    434                         wp.autosave.server.triggerSave();
     497                for ( i = 1; i <= 6; i++ ) {
     498                        editor.shortcuts.add( 'access+' + i, '', [ 'FormatBlock', false, 'h' + i ] );
    435499                }
    436         });
    437        
     500
     501                tinymce.each( {
     502                        c: 'JustifyCenter',
     503                        r: 'JustifyRight',
     504                        l: 'JustifyLeft',
     505                        j: 'JustifyFull',
     506                        q: 'mceBlockQuote',
     507                        u: 'InsertUnorderedList',
     508                        o: 'InsertOrderedList',
     509                        n: 'mceSpellCheck',
     510                        s: 'unlink',
     511                        m: 'WP_Medialib',
     512                        z: 'WP_Adv',
     513                        t: 'WP_More',
     514                        d: 'Strikethrough',
     515                        h: 'WP_Help',
     516                        p: 'WP_Page',
     517                        x: 'WP_Code'
     518                }, function( command, key ) {
     519                        editor.shortcuts.add( 'access+' + key, '', command );
     520                } );
     521
     522                editor.addShortcut( 'ctrl+s', '', function() {
     523                        if ( typeof wp !== 'undefined' && wp.autosave ) {
     524                                wp.autosave.server.triggerSave();
     525                        }
     526                } );
     527        } );
     528
    438529        /**
    439530         * Experimental: create a floating toolbar.
    440          * This functionality will change in the next releases. Not recommennded for use by plugins.
    441          */             
     531         * This functionality will change in the next releases. Not recommended for use by plugins.
     532         */
    442533        ( function() {
    443534                var DOM = tinymce.DOM,
    444535                        each = tinymce.each,