File Manager
<?php
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
/**
* DB class that handles files in "custom folders".
*
* @since 1.7
* @author Grégory Viguier
*/
class Imagify_Folders_DB extends Imagify_Abstract_DB {
/**
* Class version.
*
* @var string
*/
const VERSION = '1.0.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_folders';
/**
* The version of our database table.
*
* @var int
* @since 1.7
* @access protected
*/
protected $table_version = 100;
/**
* 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 = 'folder_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;
}
/**
* Whitelist of columns.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @return array
*/
public function get_columns() {
return array(
'folder_id' => '%d',
'path' => '%s',
'active' => '%d',
);
}
/**
* Default column values.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @return array
*/
public function get_column_defaults() {
return array(
'folder_id' => 0,
'path' => '',
'active' => 0,
);
}
/**
* Get the query to create the table fields.
*
* @since 1.7
* @access protected
* @author Grégory Viguier
*
* @return string
*/
protected function get_table_schema() {
return "
folder_id bigint(20) unsigned NOT NULL auto_increment,
path varchar(191) NOT NULL default '',
active tinyint(1) unsigned NOT NULL default 0,
PRIMARY KEY (folder_id),
UNIQUE KEY path (path),
KEY active (active)";
}
/**
* Tell if folders are selected in the plugin settings.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @return bool
*/
public function has_active_folders() {
global $wpdb;
$column = esc_sql( $this->get_primary_key() );
return (bool) $wpdb->get_var( "SELECT $column FROM $this->table_name WHERE active = 1 LIMIT 1;" ); // WPCS: unprepared SQL ok.
}
/**
* Retrieve active folders (checked in the settings).
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @param string $column_select A column name.
* @return array
*/
public function get_active_folders_column( $column_select ) {
global $wpdb;
$column = esc_sql( $column_select );
$result = $wpdb->get_col( "SELECT $column FROM $this->table_name WHERE active = 1;" ); // WPCS: unprepared SQL ok.
return $this->cast_col( $result, $column_select );
}
/**
* Retrieve active folders (checked in the settings) by the specified column / values.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @param string $column_select A column name.
* @param string $column_where A column name.
* @param array $column_values An array of values.
* @return array
*/
public function get_active_folders_column_in( $column_select, $column_where, $column_values ) {
global $wpdb;
$column = esc_sql( $column_select );
$column_where = esc_sql( $column_where );
$column_values = Imagify_DB::prepare_values_list( $column_values );
$result = $wpdb->get_col( "SELECT $column FROM $this->table_name WHERE $column_where IN ( $column_values ) AND active = 1;" ); // WPCS: unprepared SQL ok.
return $this->cast_col( $result, $column_select );
}
/**
* Retrieve active folders (checked in the settings) by the specified column / values.
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @param string $column_select A column name.
* @param string $column_where A column name.
* @param array $column_values An array of values.
* @return array
*/
public function get_active_folders_column_not_in( $column_select, $column_where, $column_values ) {
global $wpdb;
$column = esc_sql( $column_select );
$column_where = esc_sql( $column_where );
$column_values = Imagify_DB::prepare_values_list( $column_values );
$result = $wpdb->get_col( "SELECT $column FROM $this->table_name WHERE $column_where NOT IN ( $column_values ) AND active = 1;" ); // WPCS: unprepared SQL ok.
return $this->cast_col( $result, $column_select );
}
/**
* Retrieve not active folders (not checked in the settings).
*
* @since 1.7
* @access public
* @author Grégory Viguier
*
* @param string $column_select A column name.
* @return array
*/
public function get_inactive_folders_column( $column_select ) {
global $wpdb;
$column = esc_sql( $column_select );
$result = $wpdb->get_col( "SELECT $column FROM $this->table_name WHERE active != 1;" ); // WPCS: unprepared SQL ok.
return $this->cast_col( $result, $column_select );
}
}
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com