[ Index ] |
PHP Cross Reference of WordPress |
[Summary view] [Print] [Text view]
1 /** 2 * @output wp-admin/js/custom-background.js 3 */ 4 5 /* global ajaxurl */ 6 7 /** 8 * Registers all events for customizing the background. 9 * 10 * @since 3.0.0 11 * 12 * @requires jQuery 13 */ 14 (function($) { 15 $( function() { 16 var frame, 17 bgImage = $( '#custom-background-image' ); 18 19 /** 20 * Instantiates the WordPress color picker and binds the change and clear events. 21 * 22 * @since 3.5.0 23 * 24 * @return {void} 25 */ 26 $('#background-color').wpColorPicker({ 27 change: function( event, ui ) { 28 bgImage.css('background-color', ui.color.toString()); 29 }, 30 clear: function() { 31 bgImage.css('background-color', ''); 32 } 33 }); 34 35 /** 36 * Alters the background size CSS property whenever the background size input has changed. 37 * 38 * @since 4.7.0 39 * 40 * @return {void} 41 */ 42 $( 'select[name="background-size"]' ).on( 'change', function() { 43 bgImage.css( 'background-size', $( this ).val() ); 44 }); 45 46 /** 47 * Alters the background position CSS property whenever the background position input has changed. 48 * 49 * @since 4.7.0 50 * 51 * @return {void} 52 */ 53 $( 'input[name="background-position"]' ).on( 'change', function() { 54 bgImage.css( 'background-position', $( this ).val() ); 55 }); 56 57 /** 58 * Alters the background repeat CSS property whenever the background repeat input has changed. 59 * 60 * @since 3.0.0 61 * 62 * @return {void} 63 */ 64 $( 'input[name="background-repeat"]' ).on( 'change', function() { 65 bgImage.css( 'background-repeat', $( this ).is( ':checked' ) ? 'repeat' : 'no-repeat' ); 66 }); 67 68 /** 69 * Alters the background attachment CSS property whenever the background attachment input has changed. 70 * 71 * @since 4.7.0 72 * 73 * @return {void} 74 */ 75 $( 'input[name="background-attachment"]' ).on( 'change', function() { 76 bgImage.css( 'background-attachment', $( this ).is( ':checked' ) ? 'scroll' : 'fixed' ); 77 }); 78 79 /** 80 * Binds the event for opening the WP Media dialog. 81 * 82 * @since 3.5.0 83 * 84 * @return {void} 85 */ 86 $('#choose-from-library-link').on( 'click', function( event ) { 87 var $el = $(this); 88 89 event.preventDefault(); 90 91 // If the media frame already exists, reopen it. 92 if ( frame ) { 93 frame.open(); 94 return; 95 } 96 97 // Create the media frame. 98 frame = wp.media.frames.customBackground = wp.media({ 99 // Set the title of the modal. 100 title: $el.data('choose'), 101 102 // Tell the modal to show only images. 103 library: { 104 type: 'image' 105 }, 106 107 // Customize the submit button. 108 button: { 109 // Set the text of the button. 110 text: $el.data('update'), 111 /* 112 * Tell the button not to close the modal, since we're 113 * going to refresh the page when the image is selected. 114 */ 115 close: false 116 } 117 }); 118 119 /** 120 * When an image is selected, run a callback. 121 * 122 * @since 3.5.0 123 * 124 * @return {void} 125 */ 126 frame.on( 'select', function() { 127 // Grab the selected attachment. 128 var attachment = frame.state().get('selection').first(); 129 var nonceValue = $( '#_wpnonce' ).val() || ''; 130 131 // Run an Ajax request to set the background image. 132 $.post( ajaxurl, { 133 action: 'set-background-image', 134 attachment_id: attachment.id, 135 _ajax_nonce: nonceValue, 136 size: 'full' 137 }).done( function() { 138 // When the request completes, reload the window. 139 window.location.reload(); 140 }); 141 }); 142 143 // Finally, open the modal. 144 frame.open(); 145 }); 146 }); 147 })(jQuery);
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Dec 25 01:00:02 2024 | Cross-referenced by PHPXref 0.7.1 |