Files
medicalalert-web-reloaded/wp/wp-content/plugins/imagify/inc/classes/class-imagify-files-db.php
2024-09-25 09:25:31 -04:00

178 lines
3.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
defined( 'ABSPATH' ) || die( 'Cheatin uh?' );
/**
* DB class that handles files in "custom folders".
*
* @since 1.7
* @author Grégory Viguier
*/
class Imagify_Files_DB extends Imagify_Abstract_DB {
/**
* Class version.
*
* @var string
*/
const VERSION = '1.1';
/**
* The single instance of the class.
*
* @var object
* @since 1.7
* @access protected
*/
protected static $_instance;
/**
* The suffix used in the name of the database table (so, without the wpdb prefix).
*
* @var string
* @since 1.7
* @access protected
*/
protected $table = 'imagify_files';
/**
* The version of our database table.
*
* @var int
* @since 1.7
* @access protected
*/
protected $table_version = 102;
/**
* Tell if the table is the same for each site of a Multisite.
*
* @var bool
* @since 1.7
* @access protected
*/
protected $table_is_global = true;
/**
* The name of the primary column.
*
* @var string
* @since 1.7
* @access protected
*/
protected $primary_key = 'file_id';
/**
* Get the main Instance.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @return object Main instance.
*/
public static function get_instance() {
if ( ! isset( self::$_instance ) ) {
self::$_instance = new self();
}
return self::$_instance;
}
/**
* Get the column placeholders.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @return array
*/
public function get_columns() {
return array(
'file_id' => '%d',
'folder_id' => '%d',
'file_date' => '%s',
'path' => '%s',
'hash' => '%s',
'mime_type' => '%s',
'modified' => '%d',
'width' => '%d',
'height' => '%d',
'original_size' => '%d',
'optimized_size' => '%d',
'percent' => '%d',
'optimization_level' => '%d',
'status' => '%s',
'error' => '%s',
'data' => '%s',
);
}
/**
* Default column values.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @return array
*/
public function get_column_defaults() {
return array(
'file_id' => 0,
'folder_id' => 0,
'file_date' => '0000-00-00 00:00:00',
'path' => '',
'hash' => '',
'mime_type' => '',
'modified' => 0,
'width' => 0,
'height' => 0,
'original_size' => 0,
'optimized_size' => null,
'percent' => null,
'optimization_level' => null,
'status' => null,
'error' => null,
'data' => [],
);
}
/**
* Get the query to create the table fields.
*
* For with and height: `smallint(2) unsigned` means 65,535px max.
*
* @since 1.7
* @access protected
* @author Grégory Viguier
*
* @return string
*/
protected function get_table_schema() {
return "
file_id bigint(20) unsigned NOT NULL auto_increment,
folder_id bigint(20) unsigned NOT NULL default 0,
file_date datetime NOT NULL default '0000-00-00 00:00:00',
path varchar(191) NOT NULL default '',
hash varchar(32) NOT NULL default '',
mime_type varchar(100) NOT NULL default '',
modified tinyint(1) unsigned NOT NULL default 0,
width smallint(2) unsigned NOT NULL default 0,
height smallint(2) unsigned NOT NULL default 0,
original_size int(4) unsigned NOT NULL default 0,
optimized_size int(4) unsigned default NULL,
percent smallint(2) unsigned default NULL,
optimization_level tinyint(1) unsigned default NULL,
status varchar(20) default NULL,
error varchar(255) default NULL,
data longtext default NULL,
PRIMARY KEY (file_id),
UNIQUE KEY path (path),
KEY folder_id (folder_id),
KEY optimization_level (optimization_level),
KEY status (status),
KEY modified (modified)";
}
}