File "class-avif-helper.php"
Full Path: /home/digimqhe/flashdigi.uk/wp-smushit/core/avif/class-avif-helper.php
File size: 1.75 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Smush\Core\Avif;
use Smush\Core\File_System;
use Smush\Core\Media\Media_Item;
use Smush\Core\Next_Gen\Next_Gen_Helper;
class Avif_Helper {
/**
* @var Avif_Dir
*/
private $avif_dir;
/**
* @var Next_Gen_Helper
*/
private $next_gen_helper;
/**
* @var File_System
*/
private $fs;
public function __construct() {
$this->avif_dir = new Avif_Dir();
$this->fs = new File_System();
$this->next_gen_helper = new Next_Gen_Helper(
$this->avif_dir->get_avif_url(),
$this->avif_dir->get_avif_path(),
'avif',
$this->avif_dir
);
}
public function get_avif_file_url( $url ) {
return $this->next_gen_helper->get_next_gen_file_url( $url );
}
public function get_avif_file_path( $file_path, $make = false ) {
return $this->next_gen_helper->get_next_gen_file_path( $file_path, $make );
}
public function supported_mime_types() {
return array(
'image/jpg',
'image/jpeg',
'image/x-citrix-jpeg',
'image/png',
'image/x-png',
);
}
public function delete_all_avif_files() {
$avif_path = $this->avif_dir->get_avif_path();
// Delete the whole avif directory only when on single install or network admin.
$this->fs->get_wp_filesystem()->delete( $avif_path, true );
do_action( 'wp_smush_after_delete_all_avif_files' );
}
/**
* @param $media_item Media_Item
*
* @return void
*/
public function delete_media_item_avif_versions( $media_item ) {
foreach ( $media_item->get_sizes() as $size ) {
$this->delete_avif_version( $size->get_file_path() );
}
}
public function delete_avif_version( $original_file_path ) {
$avif_file_path = $this->get_avif_file_path( $original_file_path );
if ( $this->fs->file_exists( $avif_file_path ) ) {
$this->fs->unlink( $avif_file_path );
}
}
}