Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-admin/includes
File: media.php
?>
[3500] Fix | Delete
<div class="misc-pub-section misc-pub-dimensions">
[3501] Fix | Delete
<?php _e( 'Dimensions:' ); ?> <strong><?php echo $media_dims; ?></strong>
[3502] Fix | Delete
</div>
[3503] Fix | Delete
<?php
[3504] Fix | Delete
}
[3505] Fix | Delete
[3506] Fix | Delete
if ( ! empty( $meta['original_image'] ) ) {
[3507] Fix | Delete
?>
[3508] Fix | Delete
<div class="misc-pub-section misc-pub-original-image word-wrap-break-word">
[3509] Fix | Delete
<?php _e( 'Original image:' ); ?>
[3510] Fix | Delete
<a href="<?php echo esc_url( wp_get_original_image_url( $attachment_id ) ); ?>">
[3511] Fix | Delete
<strong><?php echo esc_html( wp_basename( wp_get_original_image_path( $attachment_id ) ) ); ?></strong>
[3512] Fix | Delete
</a>
[3513] Fix | Delete
</div>
[3514] Fix | Delete
<?php
[3515] Fix | Delete
}
[3516] Fix | Delete
}
[3517] Fix | Delete
[3518] Fix | Delete
/**
[3519] Fix | Delete
* Parses ID3v2, ID3v1, and getID3 comments to extract usable data.
[3520] Fix | Delete
*
[3521] Fix | Delete
* @since 3.6.0
[3522] Fix | Delete
*
[3523] Fix | Delete
* @param array $metadata An existing array with data.
[3524] Fix | Delete
* @param array $data Data supplied by ID3 tags.
[3525] Fix | Delete
*/
[3526] Fix | Delete
function wp_add_id3_tag_data( &$metadata, $data ) {
[3527] Fix | Delete
foreach ( array( 'id3v2', 'id3v1' ) as $version ) {
[3528] Fix | Delete
if ( ! empty( $data[ $version ]['comments'] ) ) {
[3529] Fix | Delete
foreach ( $data[ $version ]['comments'] as $key => $list ) {
[3530] Fix | Delete
if ( 'length' !== $key && ! empty( $list ) ) {
[3531] Fix | Delete
$metadata[ $key ] = wp_kses_post( reset( $list ) );
[3532] Fix | Delete
// Fix bug in byte stream analysis.
[3533] Fix | Delete
if ( 'terms_of_use' === $key && str_starts_with( $metadata[ $key ], 'yright notice.' ) ) {
[3534] Fix | Delete
$metadata[ $key ] = 'Cop' . $metadata[ $key ];
[3535] Fix | Delete
}
[3536] Fix | Delete
}
[3537] Fix | Delete
}
[3538] Fix | Delete
break;
[3539] Fix | Delete
}
[3540] Fix | Delete
}
[3541] Fix | Delete
[3542] Fix | Delete
if ( ! empty( $data['id3v2']['APIC'] ) ) {
[3543] Fix | Delete
$image = reset( $data['id3v2']['APIC'] );
[3544] Fix | Delete
if ( ! empty( $image['data'] ) ) {
[3545] Fix | Delete
$metadata['image'] = array(
[3546] Fix | Delete
'data' => $image['data'],
[3547] Fix | Delete
'mime' => $image['image_mime'],
[3548] Fix | Delete
'width' => $image['image_width'],
[3549] Fix | Delete
'height' => $image['image_height'],
[3550] Fix | Delete
);
[3551] Fix | Delete
}
[3552] Fix | Delete
} elseif ( ! empty( $data['comments']['picture'] ) ) {
[3553] Fix | Delete
$image = reset( $data['comments']['picture'] );
[3554] Fix | Delete
if ( ! empty( $image['data'] ) ) {
[3555] Fix | Delete
$metadata['image'] = array(
[3556] Fix | Delete
'data' => $image['data'],
[3557] Fix | Delete
'mime' => $image['image_mime'],
[3558] Fix | Delete
);
[3559] Fix | Delete
}
[3560] Fix | Delete
}
[3561] Fix | Delete
}
[3562] Fix | Delete
[3563] Fix | Delete
/**
[3564] Fix | Delete
* Retrieves metadata from a video file's ID3 tags.
[3565] Fix | Delete
*
[3566] Fix | Delete
* @since 3.6.0
[3567] Fix | Delete
*
[3568] Fix | Delete
* @param string $file Path to file.
[3569] Fix | Delete
* @return array|false Returns array of metadata, if found.
[3570] Fix | Delete
*/
[3571] Fix | Delete
function wp_read_video_metadata( $file ) {
[3572] Fix | Delete
if ( ! file_exists( $file ) ) {
[3573] Fix | Delete
return false;
[3574] Fix | Delete
}
[3575] Fix | Delete
[3576] Fix | Delete
$metadata = array();
[3577] Fix | Delete
[3578] Fix | Delete
if ( ! defined( 'GETID3_TEMP_DIR' ) ) {
[3579] Fix | Delete
define( 'GETID3_TEMP_DIR', get_temp_dir() );
[3580] Fix | Delete
}
[3581] Fix | Delete
[3582] Fix | Delete
if ( ! class_exists( 'getID3', false ) ) {
[3583] Fix | Delete
require ABSPATH . WPINC . '/ID3/getid3.php';
[3584] Fix | Delete
}
[3585] Fix | Delete
[3586] Fix | Delete
$id3 = new getID3();
[3587] Fix | Delete
// Required to get the `created_timestamp` value.
[3588] Fix | Delete
$id3->options_audiovideo_quicktime_ReturnAtomData = true; // phpcs:ignore WordPress.NamingConventions.ValidVariableName
[3589] Fix | Delete
[3590] Fix | Delete
$data = $id3->analyze( $file );
[3591] Fix | Delete
[3592] Fix | Delete
if ( isset( $data['video']['lossless'] ) ) {
[3593] Fix | Delete
$metadata['lossless'] = $data['video']['lossless'];
[3594] Fix | Delete
}
[3595] Fix | Delete
[3596] Fix | Delete
if ( ! empty( $data['video']['bitrate'] ) ) {
[3597] Fix | Delete
$metadata['bitrate'] = (int) $data['video']['bitrate'];
[3598] Fix | Delete
}
[3599] Fix | Delete
[3600] Fix | Delete
if ( ! empty( $data['video']['bitrate_mode'] ) ) {
[3601] Fix | Delete
$metadata['bitrate_mode'] = $data['video']['bitrate_mode'];
[3602] Fix | Delete
}
[3603] Fix | Delete
[3604] Fix | Delete
if ( ! empty( $data['filesize'] ) ) {
[3605] Fix | Delete
$metadata['filesize'] = (int) $data['filesize'];
[3606] Fix | Delete
}
[3607] Fix | Delete
[3608] Fix | Delete
if ( ! empty( $data['mime_type'] ) ) {
[3609] Fix | Delete
$metadata['mime_type'] = $data['mime_type'];
[3610] Fix | Delete
}
[3611] Fix | Delete
[3612] Fix | Delete
if ( ! empty( $data['playtime_seconds'] ) ) {
[3613] Fix | Delete
$metadata['length'] = (int) round( $data['playtime_seconds'] );
[3614] Fix | Delete
}
[3615] Fix | Delete
[3616] Fix | Delete
if ( ! empty( $data['playtime_string'] ) ) {
[3617] Fix | Delete
$metadata['length_formatted'] = $data['playtime_string'];
[3618] Fix | Delete
}
[3619] Fix | Delete
[3620] Fix | Delete
if ( ! empty( $data['video']['resolution_x'] ) ) {
[3621] Fix | Delete
$metadata['width'] = (int) $data['video']['resolution_x'];
[3622] Fix | Delete
}
[3623] Fix | Delete
[3624] Fix | Delete
if ( ! empty( $data['video']['resolution_y'] ) ) {
[3625] Fix | Delete
$metadata['height'] = (int) $data['video']['resolution_y'];
[3626] Fix | Delete
}
[3627] Fix | Delete
[3628] Fix | Delete
if ( ! empty( $data['fileformat'] ) ) {
[3629] Fix | Delete
$metadata['fileformat'] = $data['fileformat'];
[3630] Fix | Delete
}
[3631] Fix | Delete
[3632] Fix | Delete
if ( ! empty( $data['video']['dataformat'] ) ) {
[3633] Fix | Delete
$metadata['dataformat'] = $data['video']['dataformat'];
[3634] Fix | Delete
}
[3635] Fix | Delete
[3636] Fix | Delete
if ( ! empty( $data['video']['encoder'] ) ) {
[3637] Fix | Delete
$metadata['encoder'] = $data['video']['encoder'];
[3638] Fix | Delete
}
[3639] Fix | Delete
[3640] Fix | Delete
if ( ! empty( $data['video']['codec'] ) ) {
[3641] Fix | Delete
$metadata['codec'] = $data['video']['codec'];
[3642] Fix | Delete
}
[3643] Fix | Delete
[3644] Fix | Delete
if ( ! empty( $data['audio'] ) ) {
[3645] Fix | Delete
unset( $data['audio']['streams'] );
[3646] Fix | Delete
$metadata['audio'] = $data['audio'];
[3647] Fix | Delete
}
[3648] Fix | Delete
[3649] Fix | Delete
if ( empty( $metadata['created_timestamp'] ) ) {
[3650] Fix | Delete
$created_timestamp = wp_get_media_creation_timestamp( $data );
[3651] Fix | Delete
[3652] Fix | Delete
if ( false !== $created_timestamp ) {
[3653] Fix | Delete
$metadata['created_timestamp'] = $created_timestamp;
[3654] Fix | Delete
}
[3655] Fix | Delete
}
[3656] Fix | Delete
[3657] Fix | Delete
wp_add_id3_tag_data( $metadata, $data );
[3658] Fix | Delete
[3659] Fix | Delete
$file_format = isset( $metadata['fileformat'] ) ? $metadata['fileformat'] : null;
[3660] Fix | Delete
[3661] Fix | Delete
/**
[3662] Fix | Delete
* Filters the array of metadata retrieved from a video.
[3663] Fix | Delete
*
[3664] Fix | Delete
* In core, usually this selection is what is stored.
[3665] Fix | Delete
* More complete data can be parsed from the `$data` parameter.
[3666] Fix | Delete
*
[3667] Fix | Delete
* @since 4.9.0
[3668] Fix | Delete
*
[3669] Fix | Delete
* @param array $metadata Filtered video metadata.
[3670] Fix | Delete
* @param string $file Path to video file.
[3671] Fix | Delete
* @param string|null $file_format File format of video, as analyzed by getID3.
[3672] Fix | Delete
* Null if unknown.
[3673] Fix | Delete
* @param array $data Raw metadata from getID3.
[3674] Fix | Delete
*/
[3675] Fix | Delete
return apply_filters( 'wp_read_video_metadata', $metadata, $file, $file_format, $data );
[3676] Fix | Delete
}
[3677] Fix | Delete
[3678] Fix | Delete
/**
[3679] Fix | Delete
* Retrieves metadata from an audio file's ID3 tags.
[3680] Fix | Delete
*
[3681] Fix | Delete
* @since 3.6.0
[3682] Fix | Delete
*
[3683] Fix | Delete
* @param string $file Path to file.
[3684] Fix | Delete
* @return array|false Returns array of metadata, if found.
[3685] Fix | Delete
*/
[3686] Fix | Delete
function wp_read_audio_metadata( $file ) {
[3687] Fix | Delete
if ( ! file_exists( $file ) ) {
[3688] Fix | Delete
return false;
[3689] Fix | Delete
}
[3690] Fix | Delete
[3691] Fix | Delete
$metadata = array();
[3692] Fix | Delete
[3693] Fix | Delete
if ( ! defined( 'GETID3_TEMP_DIR' ) ) {
[3694] Fix | Delete
define( 'GETID3_TEMP_DIR', get_temp_dir() );
[3695] Fix | Delete
}
[3696] Fix | Delete
[3697] Fix | Delete
if ( ! class_exists( 'getID3', false ) ) {
[3698] Fix | Delete
require ABSPATH . WPINC . '/ID3/getid3.php';
[3699] Fix | Delete
}
[3700] Fix | Delete
[3701] Fix | Delete
$id3 = new getID3();
[3702] Fix | Delete
// Required to get the `created_timestamp` value.
[3703] Fix | Delete
$id3->options_audiovideo_quicktime_ReturnAtomData = true; // phpcs:ignore WordPress.NamingConventions.ValidVariableName
[3704] Fix | Delete
[3705] Fix | Delete
$data = $id3->analyze( $file );
[3706] Fix | Delete
[3707] Fix | Delete
if ( ! empty( $data['audio'] ) ) {
[3708] Fix | Delete
unset( $data['audio']['streams'] );
[3709] Fix | Delete
$metadata = $data['audio'];
[3710] Fix | Delete
}
[3711] Fix | Delete
[3712] Fix | Delete
if ( ! empty( $data['fileformat'] ) ) {
[3713] Fix | Delete
$metadata['fileformat'] = $data['fileformat'];
[3714] Fix | Delete
}
[3715] Fix | Delete
[3716] Fix | Delete
if ( ! empty( $data['filesize'] ) ) {
[3717] Fix | Delete
$metadata['filesize'] = (int) $data['filesize'];
[3718] Fix | Delete
}
[3719] Fix | Delete
[3720] Fix | Delete
if ( ! empty( $data['mime_type'] ) ) {
[3721] Fix | Delete
$metadata['mime_type'] = $data['mime_type'];
[3722] Fix | Delete
}
[3723] Fix | Delete
[3724] Fix | Delete
if ( ! empty( $data['playtime_seconds'] ) ) {
[3725] Fix | Delete
$metadata['length'] = (int) round( $data['playtime_seconds'] );
[3726] Fix | Delete
}
[3727] Fix | Delete
[3728] Fix | Delete
if ( ! empty( $data['playtime_string'] ) ) {
[3729] Fix | Delete
$metadata['length_formatted'] = $data['playtime_string'];
[3730] Fix | Delete
}
[3731] Fix | Delete
[3732] Fix | Delete
if ( empty( $metadata['created_timestamp'] ) ) {
[3733] Fix | Delete
$created_timestamp = wp_get_media_creation_timestamp( $data );
[3734] Fix | Delete
[3735] Fix | Delete
if ( false !== $created_timestamp ) {
[3736] Fix | Delete
$metadata['created_timestamp'] = $created_timestamp;
[3737] Fix | Delete
}
[3738] Fix | Delete
}
[3739] Fix | Delete
[3740] Fix | Delete
wp_add_id3_tag_data( $metadata, $data );
[3741] Fix | Delete
[3742] Fix | Delete
$file_format = isset( $metadata['fileformat'] ) ? $metadata['fileformat'] : null;
[3743] Fix | Delete
[3744] Fix | Delete
/**
[3745] Fix | Delete
* Filters the array of metadata retrieved from an audio file.
[3746] Fix | Delete
*
[3747] Fix | Delete
* In core, usually this selection is what is stored.
[3748] Fix | Delete
* More complete data can be parsed from the `$data` parameter.
[3749] Fix | Delete
*
[3750] Fix | Delete
* @since 6.1.0
[3751] Fix | Delete
*
[3752] Fix | Delete
* @param array $metadata Filtered audio metadata.
[3753] Fix | Delete
* @param string $file Path to audio file.
[3754] Fix | Delete
* @param string|null $file_format File format of audio, as analyzed by getID3.
[3755] Fix | Delete
* Null if unknown.
[3756] Fix | Delete
* @param array $data Raw metadata from getID3.
[3757] Fix | Delete
*/
[3758] Fix | Delete
return apply_filters( 'wp_read_audio_metadata', $metadata, $file, $file_format, $data );
[3759] Fix | Delete
}
[3760] Fix | Delete
[3761] Fix | Delete
/**
[3762] Fix | Delete
* Parses creation date from media metadata.
[3763] Fix | Delete
*
[3764] Fix | Delete
* The getID3 library doesn't have a standard method for getting creation dates,
[3765] Fix | Delete
* so the location of this data can vary based on the MIME type.
[3766] Fix | Delete
*
[3767] Fix | Delete
* @since 4.9.0
[3768] Fix | Delete
*
[3769] Fix | Delete
* @link https://github.com/JamesHeinrich/getID3/blob/master/structure.txt
[3770] Fix | Delete
*
[3771] Fix | Delete
* @param array $metadata The metadata returned by getID3::analyze().
[3772] Fix | Delete
* @return int|false A UNIX timestamp for the media's creation date if available
[3773] Fix | Delete
* or a boolean FALSE if a timestamp could not be determined.
[3774] Fix | Delete
*/
[3775] Fix | Delete
function wp_get_media_creation_timestamp( $metadata ) {
[3776] Fix | Delete
$creation_date = false;
[3777] Fix | Delete
[3778] Fix | Delete
if ( empty( $metadata['fileformat'] ) ) {
[3779] Fix | Delete
return $creation_date;
[3780] Fix | Delete
}
[3781] Fix | Delete
[3782] Fix | Delete
switch ( $metadata['fileformat'] ) {
[3783] Fix | Delete
case 'asf':
[3784] Fix | Delete
if ( isset( $metadata['asf']['file_properties_object']['creation_date_unix'] ) ) {
[3785] Fix | Delete
$creation_date = (int) $metadata['asf']['file_properties_object']['creation_date_unix'];
[3786] Fix | Delete
}
[3787] Fix | Delete
break;
[3788] Fix | Delete
[3789] Fix | Delete
case 'matroska':
[3790] Fix | Delete
case 'webm':
[3791] Fix | Delete
if ( isset( $metadata['matroska']['comments']['creation_time'][0] ) ) {
[3792] Fix | Delete
$creation_date = strtotime( $metadata['matroska']['comments']['creation_time'][0] );
[3793] Fix | Delete
} elseif ( isset( $metadata['matroska']['info'][0]['DateUTC_unix'] ) ) {
[3794] Fix | Delete
$creation_date = (int) $metadata['matroska']['info'][0]['DateUTC_unix'];
[3795] Fix | Delete
}
[3796] Fix | Delete
break;
[3797] Fix | Delete
[3798] Fix | Delete
case 'quicktime':
[3799] Fix | Delete
case 'mp4':
[3800] Fix | Delete
if ( isset( $metadata['quicktime']['moov']['subatoms'][0]['creation_time_unix'] ) ) {
[3801] Fix | Delete
$creation_date = (int) $metadata['quicktime']['moov']['subatoms'][0]['creation_time_unix'];
[3802] Fix | Delete
}
[3803] Fix | Delete
break;
[3804] Fix | Delete
}
[3805] Fix | Delete
[3806] Fix | Delete
return $creation_date;
[3807] Fix | Delete
}
[3808] Fix | Delete
[3809] Fix | Delete
/**
[3810] Fix | Delete
* Encapsulates the logic for Attach/Detach actions.
[3811] Fix | Delete
*
[3812] Fix | Delete
* @since 4.2.0
[3813] Fix | Delete
*
[3814] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[3815] Fix | Delete
*
[3816] Fix | Delete
* @param int $parent_id Attachment parent ID.
[3817] Fix | Delete
* @param string $action Optional. Attach/detach action. Accepts 'attach' or 'detach'.
[3818] Fix | Delete
* Default 'attach'.
[3819] Fix | Delete
*/
[3820] Fix | Delete
function wp_media_attach_action( $parent_id, $action = 'attach' ) {
[3821] Fix | Delete
global $wpdb;
[3822] Fix | Delete
[3823] Fix | Delete
if ( ! $parent_id ) {
[3824] Fix | Delete
return;
[3825] Fix | Delete
}
[3826] Fix | Delete
[3827] Fix | Delete
if ( ! current_user_can( 'edit_post', $parent_id ) ) {
[3828] Fix | Delete
wp_die( __( 'Sorry, you are not allowed to edit this post.' ) );
[3829] Fix | Delete
}
[3830] Fix | Delete
[3831] Fix | Delete
$ids = array();
[3832] Fix | Delete
[3833] Fix | Delete
foreach ( (array) $_REQUEST['media'] as $attachment_id ) {
[3834] Fix | Delete
$attachment_id = (int) $attachment_id;
[3835] Fix | Delete
[3836] Fix | Delete
if ( ! current_user_can( 'edit_post', $attachment_id ) ) {
[3837] Fix | Delete
continue;
[3838] Fix | Delete
}
[3839] Fix | Delete
[3840] Fix | Delete
$ids[] = $attachment_id;
[3841] Fix | Delete
}
[3842] Fix | Delete
[3843] Fix | Delete
if ( ! empty( $ids ) ) {
[3844] Fix | Delete
$ids_string = implode( ',', $ids );
[3845] Fix | Delete
[3846] Fix | Delete
if ( 'attach' === $action ) {
[3847] Fix | Delete
$result = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ( $ids_string )", $parent_id ) );
[3848] Fix | Delete
} else {
[3849] Fix | Delete
$result = $wpdb->query( "UPDATE $wpdb->posts SET post_parent = 0 WHERE post_type = 'attachment' AND ID IN ( $ids_string )" );
[3850] Fix | Delete
}
[3851] Fix | Delete
}
[3852] Fix | Delete
[3853] Fix | Delete
if ( isset( $result ) ) {
[3854] Fix | Delete
foreach ( $ids as $attachment_id ) {
[3855] Fix | Delete
/**
[3856] Fix | Delete
* Fires when media is attached or detached from a post.
[3857] Fix | Delete
*
[3858] Fix | Delete
* @since 5.5.0
[3859] Fix | Delete
*
[3860] Fix | Delete
* @param string $action Attach/detach action. Accepts 'attach' or 'detach'.
[3861] Fix | Delete
* @param int $attachment_id The attachment ID.
[3862] Fix | Delete
* @param int $parent_id Attachment parent ID.
[3863] Fix | Delete
*/
[3864] Fix | Delete
do_action( 'wp_media_attach_action', $action, $attachment_id, $parent_id );
[3865] Fix | Delete
[3866] Fix | Delete
clean_attachment_cache( $attachment_id );
[3867] Fix | Delete
}
[3868] Fix | Delete
[3869] Fix | Delete
$location = 'upload.php';
[3870] Fix | Delete
$referer = wp_get_referer();
[3871] Fix | Delete
[3872] Fix | Delete
if ( $referer ) {
[3873] Fix | Delete
if ( str_contains( $referer, 'upload.php' ) ) {
[3874] Fix | Delete
$location = remove_query_arg( array( 'attached', 'detach' ), $referer );
[3875] Fix | Delete
}
[3876] Fix | Delete
}
[3877] Fix | Delete
[3878] Fix | Delete
$key = 'attach' === $action ? 'attached' : 'detach';
[3879] Fix | Delete
$location = add_query_arg( array( $key => $result ), $location );
[3880] Fix | Delete
[3881] Fix | Delete
wp_redirect( $location );
[3882] Fix | Delete
exit;
[3883] Fix | Delete
}
[3884] Fix | Delete
}
[3885] Fix | Delete
[3886] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function