%PDF- %PDF-
| Direktori : /www/klubovnaostrava_o/test/wp-content/plugins/filebird/includes/Classes/ |
| Current File : //www/klubovnaostrava_o/test/wp-content/plugins/filebird/includes/Classes/Helpers.php |
<?php
namespace FileBird\Classes;
defined( 'ABSPATH' ) || exit;
use FileBird\Model\Folder as FolderModel;
class Helpers {
protected static $instance = null;
public static function getInstance() {
if ( null == self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
public static function foldersFromEnhanced( $parent = 0, $flat = false ) {
global $wpdb;
$folders = $wpdb->get_results( $wpdb->prepare( 'SELECT t.term_id as id, t.name as title, tt.term_taxonomy_id FROM %1$s as t INNER JOIN %2$s as tt ON (t.term_id = tt.term_id) WHERE tt.taxonomy = \'media_category\' AND tt.parent = %3$d', $wpdb->terms, $wpdb->term_taxonomy, $parent ) );
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->parent = $parent;
}
if ( $flat ) {
foreach ( $folders as $k => $folder ) {
$children = self::foldersFromEnhanced( $folder->id, $flat );
foreach ( $children as $k2 => $v2 ) {
$folders[] = $v2;
}
}
} else {
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->children = self::foldersFromEnhanced( $folder->id, $flat );
}
}
return $folders;
}
public static function foldersFromWpmlf( $parent = 0, $flat = false ) {
global $wpdb;
$table_name = $wpdb->prefix . 'mgmlp_folders';
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) );
if ( ! $wpdb->get_var( $query ) == $table_name ) {
return array();
}
$folders = $wpdb->get_results( $wpdb->prepare( 'select p.ID as id, p.post_title as title, mlf.folder_id as parent from %1$s as p LEFT JOIN %2$s as mlf ON(p.ID = mlf.post_id) where p.post_type = \'mgmlp_media_folder\' and mlf.folder_id = \'%3$s\' order by mlf.folder_id', $wpdb->posts, $wpdb->prefix . 'mgmlp_folders', $parent ) );
if ( $flat ) {
foreach ( $folders as $k => $folder ) {
$children = self::foldersFromWpmlf( $folder->id, $flat );
foreach ( $children as $k2 => $v2 ) {
$folders[] = $v2;
}
}
} else {
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->children = self::foldersFromWpmlf( $folder->id, $flat );
}
}
return $folders;
}
public static function foldersFromWpfeml( $parent = 0, $flat = false ) {
global $wpdb;
$folders = $wpdb->get_results( $wpdb->prepare( "SELECT t.term_id as id, t.name as title, tt.term_taxonomy_id FROM $wpdb->terms as t INNER JOIN $wpdb->term_taxonomy as tt ON (t.term_id = tt.term_id) WHERE tt.taxonomy = 'feml-folder' AND tt.parent = %d", $parent ) );
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->parent = $parent;
}
if ( $flat ) {
foreach ( $folders as $k => $folder ) {
$children = self::foldersFromWpfeml( $folder->id, $flat );
foreach ( $children as $k2 => $v2 ) {
$folders[] = $v2;
}
}
} else {
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->children = self::foldersFromWpfeml( $folder->id, $flat );
}
}
return $folders;
}
public static function foldersFromWpmf( $parent = 0, $flat = false ) {
global $wpdb;
$folders = $wpdb->get_results( $wpdb->prepare( 'SELECT t.term_id as id, t.name as title, tt.term_taxonomy_id FROM %1$s as t INNER JOIN %2$s as tt ON (t.term_id = tt.term_id) WHERE tt.taxonomy = \'wpmf-category\' AND tt.parent = %3$d', $wpdb->terms, $wpdb->term_taxonomy, $parent ) );
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->parent = $parent;
}
if ( $flat ) {
foreach ( $folders as $k => $folder ) {
$children = self::foldersFromWpmf( $folder->id, $flat );
foreach ( $children as $k2 => $v2 ) {
$folders[] = $v2;
}
}
} else {
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->children = self::foldersFromWpmf( $folder->id, $flat );
}
}
return $folders;
}
public static function foldersFromRealMedia( $parent = 0, $flat = false ) {
global $wpdb;
$table_name = $wpdb->prefix . 'realmedialibrary';
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) );
if ( ! $wpdb->get_var( $query ) == $table_name ) {
return array();
}
$folders = $wpdb->get_results( $wpdb->prepare( 'select r.id as id, r.name as title, r.parent as parent from %1$s as r where r.parent = %2$d order by r.ord', $table_name, $parent ) );
if ( $flat ) {
foreach ( $folders as $k => $folder ) {
$children = self::foldersFromRealMedia( $folder->id, $flat );
foreach ( $children as $k2 => $v2 ) {
$folders[] = $v2;
}
}
} else {
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->children = self::foldersFromRealMedia( $folder->id, $flat );
}
}
return $folders;
}
public static function foldersFromHappyFiles( $parent = 0, $flat = false ) {
global $wpdb;
$folders = $wpdb->get_results( $wpdb->prepare( 'SELECT t.term_id as id, t.name as title, tt.term_taxonomy_id FROM %1$s as t INNER JOIN %2$s as tt ON (t.term_id = tt.term_id) WHERE tt.taxonomy = \'happyfiles_category\' AND tt.parent = %3$d', $wpdb->terms, $wpdb->term_taxonomy, $parent ) );
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->parent = $parent;
}
if ( $flat ) {
foreach ( $folders as $k => $folder ) {
$children = self::foldersFromHappyFiles( $folder->id, $flat );
foreach ( $children as $k2 => $v2 ) {
$folders[] = $v2;
}
}
} else {
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->children = self::foldersFromHappyFiles( $folder->id, $flat );
}
}
return $folders;
}
public static function foldersFromPremio( $parent = 0, $flat = false ) {
global $wpdb;
$folders = $wpdb->get_results( $wpdb->prepare( 'SELECT t.term_id as id, t.name as title, tt.term_taxonomy_id FROM %1$s as t INNER JOIN %2$s as tt ON (t.term_id = tt.term_id) WHERE tt.taxonomy = \'media_folder\' AND tt.parent = %3$d', $wpdb->terms, $wpdb->term_taxonomy, $parent ) );
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->parent = $parent;
}
if ( $flat ) {
foreach ( $folders as $k => $folder ) {
$children = self::foldersFromPremio( $folder->id, $flat );
foreach ( $children as $k2 => $v2 ) {
$folders[] = $v2;
}
}
} else {
foreach ( $folders as $k => $folder ) {
$folders[ $k ]->children = self::foldersFromPremio( $folder->id, $flat );
}
}
return $folders;
}
public static function sanitize_array( $var ) {
if ( is_array( $var ) ) {
return array_map( 'self::sanitize_array', $var );
} else {
return is_scalar( $var ) ? sanitize_text_field( $var ) : $var;
}
}
public static function getAttachmentIdsByFolderId( $folder_id ) {
global $wpdb;
return $wpdb->get_col( 'SELECT `attachment_id` FROM ' . $wpdb->prefix . 'fbv_attachment_folder WHERE `folder_id` = ' . (int) $folder_id );
}
public static function getAttachmentCountByFolderId( $folder_id ) {
return Tree::getCount( $folder_id );
}
public static function view( $path, $data = array() ) {
extract( $data );
ob_start();
include_once NJFB_PLUGIN_PATH . 'views/' . $path . '.php';
return ob_get_clean();
}
public static function isListMode() {
if ( function_exists( 'get_current_screen' ) ) {
$screen = get_current_screen();
return ( isset( $screen->id ) && 'upload' == $screen->id );
}
return false;
}
public static function findFolder( $folder_id, $tree ) {
foreach ( $tree as $k => $v ) {
if ( $v['id'] == $folder_id ) {
return $v;
}
if ( isset( $v['children'] ) ) {
$folder = self::findFolder( $folder_id, $v['children'] );
if ( $folder ) {
return $folder;
}
}
}
return null;
}
}