%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/Tree.php |
<?php namespace FileBird\Classes; defined( 'ABSPATH' ) || exit; use FileBird\Model\Folder as FolderModel; class Tree { public static function getFolders( $order_by = null, $flat = false, $level = 0, $show_level = false ) { $folders_from_db = FolderModel::allFolders( '*', null, $order_by ); $default_folders = array(); $tree = self::getTree( $folders_from_db, 0, $default_folders, $flat, $level, $show_level ); return $tree; } public static function getCount( $folder_id, $lang = null ) { global $wpdb; $select = "SELECT COUNT(*) FROM {$wpdb->posts} as posts WHERE "; $where = array( "post_type = 'attachment'" ); // With $folder_id == -1. We get all $where[] = "(posts.post_status = 'inherit' OR posts.post_status = 'private')"; // with specific folder if ( $folder_id > 0 && ! apply_filters( 'fbv_speedup_get_count_query', false ) ) { $post__in = $wpdb->get_col( "SELECT `attachment_id` FROM {$wpdb->prefix}fbv_attachment_folder WHERE `folder_id` = " . (int) $folder_id ); if ( count( $post__in ) == 0 ) { $post__in = array( 0 ); } $where[] = '(ID IN (' . implode( ', ', $post__in ) . '))'; } elseif ( $folder_id == 0 ) { return 0;//return 0 if this is uncategorized folder } $where = apply_filters( 'fbv_get_count_where_query', $where ); $query = apply_filters( 'fbv_get_count_query', $select . implode( ' AND ', $where ), $folder_id, $lang ); return (int) $wpdb->get_var( $query ); } public static function getAllFoldersAndCount( $lang = null ) { global $wpdb; $query = $wpdb->prepare( "SELECT fbva.folder_id, count(fbva.attachment_id) as count FROM {$wpdb->prefix}fbv_attachment_folder as fbva INNER JOIN {$wpdb->prefix}fbv as fbv ON fbv.id = fbva.folder_id INNER JOIN {$wpdb->posts} as posts ON fbva.attachment_id = posts.ID WHERE (posts.post_status = 'inherit' OR posts.post_status = 'private') AND (posts.post_type = 'attachment') AND fbv.created_by = %d GROUP BY fbva.folder_id", apply_filters( 'fbv_in_not_in_created_by', '0' ) ); $query = apply_filters( 'fbv_all_folders_and_count', $query, $lang ); $results = $wpdb->get_results( $query ); $return = array(); if ( is_array( $results ) ) { foreach ( $results as $k => $v ) { $return[ $v->folder_id ] = $v->count; } } return $return; } private static function getTree( $data = array(), $parent = 0, $default = null, $flat = false, $level = 0, $show_level = false ) { $tree = is_null( $default ) ? array() : $default; foreach ( $data as $k => $v ) { if ( $v->parent == $parent ) { $children = self::getTree( $data, $v->id, null, $flat, $level + 1, $show_level ); $f = array( 'id' => (int) $v->id, 'text' => $show_level ? str_repeat( '-', $level ) . $v->name : $v->name, 'li_attr' => array( 'data-count' => 0, 'data-parent' => (int) $parent, ), 'count' => 0, ); if ( $flat === true ) { $tree[] = $f; foreach ( $children as $k2 => $v2 ) { $tree[] = $v2; } } else { $f['children'] = $children; $tree[] = $f; } } } return $tree; } public static function getFolder( $folder_id ) { $tree = self::getFolders(); return Helpers::findFolder( $folder_id, $tree ); } }