- Timestamp:
- 06/21/2015 10:00:42 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/js/tinymce/plugins/wordpress/plugin.js
r32856 r32899 1 /* global tinymce,getUserSetting, setUserSetting */2 1 /* global getUserSetting, setUserSetting */ 2 ( function( tinymce ) { 3 3 // Set the minimum value for the modals z-index higher than #wpadminbar (100000) 4 4 tinymce.ui.FloatPanel.zIndex = 100100; 5 5 6 6 tinymce.PluginManager.add( 'wordpress', function( editor ) { 7 var DOM = tinymce.DOM, 7 var wpAdvButton, style, 8 DOM = tinymce.DOM, 8 9 each = tinymce.each, 9 10 __ = editor.editorManager.i18n.translate, 10 wpAdvButton, style; 11 12 if ( typeof window.jQuery !== 'undefined' ) { 13 window.jQuery( document ).triggerHandler( 'tinymce-editor-setup', [ editor ] ); 11 $ = window.jQuery, 12 wp = window.wp, 13 hasWpautop = ( wp && wp.editor && wp.editor.autop && editor.getParam( 'wpautop', true ) ); 14 15 if ( $ ) { 16 $( document ).triggerHandler( 'tinymce-editor-setup', [ editor ] ); 14 17 } 15 18 … … 89 92 90 93 // Replace Read More/Next Page tags with images 91 editor.on( 'BeforeSetContent', function( e ) { 92 var title; 93 94 if ( e.content ) { 95 if ( e.content.indexOf( '<!--more' ) !== -1 ) { 94 editor.on( 'BeforeSetContent', function( event ) { 95 var title, 96 paragraph = tinymce.Env.webkit ? '<p><br /></p>' : '<p></p>'; 97 98 if ( event.content ) { 99 if ( event.content.indexOf( '<!--more' ) !== -1 ) { 96 100 title = __( 'Read more...' ); 97 101 98 e .content = e.content.replace( /<!--more(.*?)-->/g, function( match, moretext ) {102 event.content = event.content.replace( /<!--more(.*?)-->/g, function( match, moretext ) { 99 103 return '<img src="' + tinymce.Env.transparentSrc + '" data-wp-more="more" data-wp-more-text="' + moretext + '" ' + 100 104 'class="wp-more-tag mce-wp-more" title="' + title + '" data-mce-resize="false" data-mce-placeholder="1" />'; … … 102 106 } 103 107 104 if ( e .content.indexOf( '<!--nextpage-->' ) !== -1 ) {108 if ( event.content.indexOf( '<!--nextpage-->' ) !== -1 ) { 105 109 title = __( 'Page break' ); 106 110 107 e .content = e.content.replace( /<!--nextpage-->/g,111 event.content = event.content.replace( /<!--nextpage-->/g, 108 112 '<img src="' + tinymce.Env.transparentSrc + '" data-wp-more="nextpage" class="wp-more-tag mce-wp-nextpage" ' + 109 113 'title="' + title + '" data-mce-resize="false" data-mce-placeholder="1" />' ); 114 } 115 116 // Remove spaces from empty paragraphs. 117 event.content = event.content.replace( /<p>(?: |\u00a0|\uFEFF|\s)+<\/p>/gi, paragraph ); 118 119 if ( event.load && event.format !== 'raw' && hasWpautop ) { 120 event.content = wp.editor.autop( event.content ); 110 121 } 111 122 } … … 202 213 203 214 editor.addCommand( 'WP_Medialib', function() { 204 if ( typeof wp !== 'undefined'&& wp.media && wp.media.editor ) {215 if ( wp && wp.media && wp.media.editor ) { 205 216 wp.media.editor.open( editor.id ); 206 217 } … … 235 246 // Menubar 236 247 // Insert->Add Media 237 if ( typeof wp !== 'undefined'&& wp.media && wp.media.editor ) {248 if ( wp && wp.media && wp.media.editor ) { 238 249 editor.addMenuItem( 'add_media', { 239 250 text: 'Add Media', … … 289 300 dom = editor.dom; 290 301 291 if ( tinymce.Env.iOS ) {302 if ( env.iOS ) { 292 303 dom.addClass( doc.documentElement, 'ios' ); 293 304 } … … 319 330 320 331 // Remove invalid parent paragraphs when inserting HTML 321 // TODO: still needed? 322 editor.on( 'BeforeSetContent', function( e ) { 323 if ( e.content ) { 324 e.content = e.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi, '<$1$2>'); 325 e.content = e.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi, '</$1>'); 332 editor.on( 'BeforeSetContent', function( event ) { 333 if ( event.content ) { 334 event.content = event.content.replace( /<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre)( [^>]*)?>/gi, '<$1$2>' ) 335 .replace( /<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre)>\s*<\/p>/gi, '</$1>' ); 326 336 } 327 337 }); 328 338 329 if ( typeof window.jQuery !== 'undefined') {330 window.jQuery( document ).triggerHandler( 'tinymce-editor-init', [editor] );339 if ( $ ) { 340 $( document ).triggerHandler( 'tinymce-editor-init', [editor] ); 331 341 } 332 342 333 343 if ( window.tinyMCEPreInit && window.tinyMCEPreInit.dragDropUpload ) { 334 344 dom.bind( doc, 'dragstart dragend dragover drop', function( event ) { 335 if ( typeof window.jQuery !== 'undefined') {345 if ( $ ) { 336 346 // Trigger the jQuery handlers. 337 window.jQuery( document ).trigger( new window.jQuery.Event( event ) );347 $( document ).trigger( new $.Event( event ) ); 338 348 } 339 349 }); … … 363 373 }); 364 374 365 editor.on( 'SaveContent', function( e ) {375 editor.on( 'SaveContent', function( event ) { 366 376 // If editor is hidden, we just want the textarea's value to be saved 367 377 if ( ! editor.inline && editor.isHidden() ) { 368 e .content = e.element.value;378 event.content = event.element.value; 369 379 return; 370 380 } 371 381 372 382 // Keep empty paragraphs :( 373 e.content = e.content.replace( /<p>(?:<br ?\/?>|\u00a0|\uFEFF| )*<\/p>/g, '<p> </p>' ); 374 375 if ( editor.getParam( 'wpautop', true ) && typeof window.switchEditors !== 'undefined' ) { 376 e.content = window.switchEditors.pre_wpautop( e.content ); 377 } 378 }); 379 380 // Remove spaces from empty paragraphs. 381 editor.on( 'BeforeSetContent', function( event ) { 382 var paragraph = tinymce.Env.webkit ? '<p><br /></p>' : '<p></p>'; 383 384 if ( event.content ) { 385 event.content = event.content.replace( /<p>(?: |\u00a0|\uFEFF|\s)+<\/p>/gi, paragraph ); 383 event.content = event.content.replace( /<p>(?:<br ?\/?>|\u00a0|\uFEFF| )*<\/p>/g, '<p> </p>' ); 384 385 if ( hasWpautop ) { 386 event.content = wp.editor.removep( event.content ); 386 387 } 387 388 }); … … 393 394 if ( tinymce.Env.iOS ) { 394 395 editor.settings.height = 300; 396 } 397 398 // Start hidden when the Text editor is set to load first. 399 if ( tinymce.$( '#wp-' + editor.id + '-wrap' ).hasClass( 'html-active' ) ) { 400 editor.hide(); 395 401 } 396 402 … … 416 422 417 423 editor.addShortcut( 'meta+s', '', function() { 418 if ( typeof wp !== 'undefined'&& wp.autosave ) {424 if ( wp && wp.autosave ) { 419 425 wp.autosave.server.triggerSave(); 420 426 } … … 738 744 }; 739 745 }); 746 747 }( window.tinymce ));
Note: See TracChangeset
for help on using the changeset viewer.