Media: Replace `basename()` usage on media upload screen with `wp_basename()` for better multibyte filenames support.

Includes minor code layout fixes for better readability.

Follow-up to [44785], [51023].

See #51754.
Built from https://develop.svn.wordpress.org/trunk@51030


git-svn-id: http://core.svn.wordpress.org/trunk@50639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2021-05-26 14:24:57 +00:00
parent bd192a0fbc
commit b1666e78fb
5 changed files with 26 additions and 19 deletions

View File

@ -48,22 +48,27 @@ if ( isset( $_REQUEST['attachment_id'] ) && (int) $_REQUEST['attachment_id'] &&
switch ( $_REQUEST['fetch'] ) { switch ( $_REQUEST['fetch'] ) {
case 3: case 3:
echo '<div class="attachment-details">'; ?>
<div class="attachment-details">
<?php
$thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true ); $thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true );
if ( $thumb_url ) { if ( $thumb_url ) {
echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />'; echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />';
} }
// Title shouldn't ever be empty, but use filename just in case. // Title shouldn't ever be empty, but use filename just in case.
$file = get_attached_file( $post->ID ); $file = get_attached_file( $post->ID );
$fileurl = wp_get_attachment_url( $post->ID ); $file_url = wp_get_attachment_url( $post->ID );
$title = $post->post_title ? $post->post_title : wp_basename( $file ); $title = $post->post_title ? $post->post_title : wp_basename( $file );
echo '<div class="filename new"><span class="media-list-title"><strong>' . esc_html( wp_html_excerpt( $title, 60, '&hellip;' ) ) . '</strong></span> <span class="media-list-subtitle">' . basename( $file ) . '</span></div>';
echo '</div>';
?> ?>
<div class="filename new">
<span class="media-list-title"><strong><?php echo esc_html( wp_html_excerpt( $title, 60, '&hellip;' ) ); ?></strong></span>
<span class="media-list-subtitle"><?php echo wp_basename( $file ); ?></span>
</div>
</div>
<div class="attachment-tools"> <div class="attachment-tools">
<span class="media-item-copy-container copy-to-clipboard-container edit-attachment"> <span class="media-item-copy-container copy-to-clipboard-container edit-attachment">
<button type="button" class="button button-small copy-attachment-url" data-clipboard-text="<?php echo $fileurl; ?>"><?php _e( 'Copy URL to clipboard' ); ?></button> <button type="button" class="button button-small copy-attachment-url" data-clipboard-text="<?php echo $file_url; ?>"><?php _e( 'Copy URL to clipboard' ); ?></button>
<span class="success hidden" aria-hidden="true"><?php _e( 'Copied!' ); ?></span> <span class="success hidden" aria-hidden="true"><?php _e( 'Copied!' ); ?></span>
</span> </span>
<?php <?php

View File

@ -139,11 +139,11 @@
} }
.media-item button .copy-attachment-url { .media-item button .copy-attachment-url {
margin-top:14px; margin-top: 14px;
} }
.media-item .copy-to-clipboard-container { .media-item .copy-to-clipboard-container {
margin-top:7px; margin-top: 7px;
} }
.media-item .describe-toggle-off, .media-item .describe-toggle-off,

View File

@ -138,11 +138,11 @@
} }
.media-item button .copy-attachment-url { .media-item button .copy-attachment-url {
margin-top:14px; margin-top: 14px;
} }
.media-item .copy-to-clipboard-container { .media-item .copy-to-clipboard-container {
margin-top:7px; margin-top: 7px;
} }
.media-item .describe-toggle-off, .media-item .describe-toggle-off,

View File

@ -373,9 +373,11 @@ function wpFileExtensionError( up, file, message ) {
function copyAttachmentUploadURLClipboard() { function copyAttachmentUploadURLClipboard() {
var clipboard = new ClipboardJS( '.copy-attachment-url' ), var clipboard = new ClipboardJS( '.copy-attachment-url' ),
successTimeout; successTimeout;
clipboard.on( 'success', function( event ) { clipboard.on( 'success', function( event ) {
var triggerElement = jQuery( event.trigger ), var triggerElement = jQuery( event.trigger ),
successElement = jQuery( '.success', triggerElement.closest( '.copy-to-clipboard-container' ) ); successElement = jQuery( '.success', triggerElement.closest( '.copy-to-clipboard-container' ) );
// Clear the selection and move focus back to the trigger. // Clear the selection and move focus back to the trigger.
event.clearSelection(); event.clearSelection();
// Handle ClipboardJS focus bug, see https://github.com/zenorocha/clipboard.js/issues/680 // Handle ClipboardJS focus bug, see https://github.com/zenorocha/clipboard.js/issues/680

View File

@ -13,7 +13,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.8-alpha-51029'; $wp_version = '5.8-alpha-51030';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.