Changeset 22979 for trunk/wp-admin/includes/meta-boxes.php
- Timestamp:
- 12/03/2012 02:38:10 AM (13 years ago)
- File:
-
- 1 edited
-
trunk/wp-admin/includes/meta-boxes.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/includes/meta-boxes.php
r22962 r22979 1002 1002 */ 1003 1003 function post_thumbnail_meta_box( $post ) { 1004 global $_wp_additional_image_sizes; 1005 1006 ?><script type="text/javascript"> 1007 jQuery( function($) { 1008 var $element = $('#select-featured-image'), 1009 $thumbnailId = $element.find('input[name="thumbnail_id"]'), 1010 title = '<?php _e( "Choose a Featured Image" ); ?>', 1011 update = '<?php _e( "Update Featured Image" ); ?>', 1012 Attachment = wp.media.model.Attachment, 1013 frame, setFeaturedImage; 1014 1015 setFeaturedImage = function( thumbnailId ) { 1016 var selection; 1017 1018 $element.find('img').remove(); 1019 $element.toggleClass( 'has-featured-image', -1 != thumbnailId ); 1020 $thumbnailId.val( thumbnailId ); 1021 1022 if ( frame ) { 1023 selection = frame.state('library').get('selection'); 1024 1025 if ( -1 === thumbnailId ) 1026 selection.clear(); 1027 else 1028 selection.add( Attachment.get( thumbnailId ) ); 1029 } 1030 }; 1031 1032 $element.on( 'click', '.choose, img', function( event ) { 1033 var options, thumbnailId, attachment; 1034 1035 event.preventDefault(); 1036 1037 if ( frame ) { 1038 frame.open(); 1039 return; 1040 } 1041 1042 options = { 1043 title: title, 1044 library: { 1045 type: 'image' 1046 } 1047 }; 1048 1049 thumbnailId = $thumbnailId.val(); 1050 if ( '' !== thumbnailId && -1 !== thumbnailId ) { 1051 attachment = Attachment.get( thumbnailId ); 1052 attachment.fetch(); 1053 options.selection = [ attachment ]; 1054 } 1055 1056 frame = wp.media( options ); 1057 1058 frame.state('library').set( 'filterable', 'uploaded' ); 1059 1060 frame.toolbar.on( 'activate:select', function() { 1061 frame.toolbar.view().set({ 1062 select: { 1063 style: 'primary', 1064 text: update, 1065 1066 click: function() { 1067 var selection = frame.state().get('selection'), 1068 model = selection.first(), 1069 sizes = model.get('sizes'), 1070 size; 1071 1072 setFeaturedImage( model.id ); 1073 1074 // @todo: might need a size hierarchy equivalent. 1075 if ( sizes ) 1076 size = sizes['post-thumbnail'] || sizes.medium; 1077 1078 // @todo: Need a better way of accessing full size 1079 // data besides just calling toJSON(). 1080 size = size || model.toJSON(); 1081 1082 frame.close(); 1083 1084 $( '<img />', { 1085 src: size.url, 1086 width: size.width 1087 }).prependTo( $element ); 1088 } 1089 } 1090 }); 1091 }); 1092 1093 frame.toolbar.mode('select'); 1094 }); 1095 1096 $element.on( 'click', '.remove', function( event ) { 1097 event.preventDefault(); 1098 setFeaturedImage( -1 ); 1099 }); 1100 }); 1101 </script> 1102 1103 <?php 1104 $thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true ); 1105 $thumbnail_size = isset( $_wp_additional_image_sizes['post-thumbnail'] ) ? 'post-thumbnail' : 'medium'; 1106 $thumbnail_html = wp_get_attachment_image( $thumbnail_id, $thumbnail_size ); 1107 1108 $classes = empty( $thumbnail_id ) ? '' : 'has-featured-image'; 1109 1110 ?><div id="select-featured-image" 1111 class="<?php echo esc_attr( $classes ); ?>" 1112 data-post-id="<?php echo esc_attr( $post->ID ); ?>"> 1113 <?php echo $thumbnail_html; ?> 1114 <input type="hidden" name="thumbnail_id" value="<?php echo esc_attr( $thumbnail_id ); ?>" /> 1115 <a href="#" class="choose button-secondary"><?php _e( 'Choose a Featured Image' ); ?></a> 1116 <a href="#" class="remove"><?php _e( 'Remove Featured Image' ); ?></a> 1117 </div> 1118 <?php 1119 } 1004 $thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true ); 1005 echo _wp_post_thumbnail_html( $thumbnail_id, $post->ID ); 1006 }
Note: See TracChangeset
for help on using the changeset viewer.