%PDF- %PDF-
| Direktori : /www/klubovnaostrava/www/wp-content/plugins/filebird/includes/Classes/Attachment/ |
| Current File : /www/klubovnaostrava/www/wp-content/plugins/filebird/includes/Classes/Attachment/AttachmentSize.php |
<?php
namespace FileBird\Classes\Attachment;
defined( 'ABSPATH' ) || exit;
use FileBird\Utils\Singleton;
use FileBird\Classes\Helpers;
class AttachmentSize {
use Singleton;
const META_KEY = 'fb_filesize';
public function __construct() {
add_filter( 'manage_media_columns', array( $this, 'manage_media_columns' ) );
add_action( 'manage_media_custom_column', array( $this, 'manage_media_custom_column' ), 10, 2 );
add_filter( 'manage_upload_sortable_columns', array( $this, 'manage_upload_sortable_columns' ) );
add_action( 'added_post_meta', array( $this, 'added_post_meta' ), 10, 4 );
}
public function manage_media_columns( $posts_columns ) {
$posts_columns[ self::META_KEY ] = __( 'File Size', 'filebird' );
return $posts_columns;
}
public function manage_upload_sortable_columns( $columns ) {
$columns[ self::META_KEY ] = self::META_KEY;
return $columns;
}
public function manage_media_custom_column( $column_name, $post_id ) {
if ( self::META_KEY === $column_name ) {
echo esc_html( size_format( Helpers::get_bytes( $post_id ), 2 ) );
}
return false;
}
public function added_post_meta( $meta_id, $post_id, $meta_key, $meta_value ) {
if ( '_wp_attachment_metadata' === $meta_key ) {
$bytes = Helpers::get_bytes( $post_id );
if ( $bytes ) {
update_post_meta( $post_id, self::META_KEY, $bytes );
}
}
}
public function apiCallback( \WP_REST_Request $request ) {
$page = intval( $request->get_param( 'page' ) );
if ( $page < 1 ) {
$page = 1;
}
$result = array();
$args = array(
'post_type' => 'attachment',
'posts_per_page' => 50,
'post_status' => 'inherit',
'fields' => 'ids',
'paged' => $page,
);
$query = new \WP_Query( $args );
$ids = $query->posts;
wp_reset_postdata();
if ( is_array( $ids ) && count( $ids ) > 0 ) {
foreach ( $ids as $id ) {
$bytes = Helpers::get_bytes( $id );
if ( $bytes ) {
update_post_meta( $id, self::META_KEY, $bytes );
}
}
$result['success'] = true;
$result['next'] = '1';
} else {
$result['success'] = true;
$result['next'] = '0';
}
return new \WP_REST_Response( $result );
}
}