first commit
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
<?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)";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user