function get_counts($user_id = false, $where_query = false)
{
if (!$user_id && !$where_query) {
return false;
}
global $wpdb, $rtmedia;
$query = "SELECT {$this->table_name}.privacy, ";
foreach ($rtmedia->allowed_types as $type) {
$type['name'] = esc_sql($type['name']);
$query .= $wpdb->prepare("SUM(CASE WHEN {$this->table_name}.media_type LIKE %s THEN 1 ELSE 0 END) as {$type['name']}, ", $type['name']);
}
$query .= "SUM(CASE WHEN {$this->table_name}.media_type LIKE 'album' THEN 1 ELSE 0 END) as album\n\t\tFROM\n\t\t\t{$this->table_name} WHERE 2=2 ";
if (is_multisite()) {
$query .= $wpdb->prepare(" AND {$this->table_name}.blog_id = %d ", get_current_blog_id());
}
$where_query_sql = '';
if ($where_query) {
foreach ($where_query as $colname => $colvalue) {
$colname = esc_sql($colname);
if ('meta_query' !== strtolower($colname)) {
if (is_array($colvalue)) {
if (!isset($colvalue['compare'])) {
$compare = 'IN';
} else {
$compare = $colvalue['compare'];
}
if (!isset($colvalue['value'])) {
$colvalue['value'] = $colvalue;
}
$compare = esc_sql($compare);
$where_query_sql .= " AND {$this->table_name}.{$colname} {$compare} ('" . implode("','", esc_sql($colvalue['value'])) . "')";
} else {
$where_query_sql .= $wpdb->prepare(" AND {$this->table_name}.{$colname} = %s", $colvalue);
}
}
}
}
$where_query_sql = apply_filters('rtmedia-get-counts-where-query', $where_query_sql);
$query = $query . $where_query_sql . ' GROUP BY privacy limit 100';
$result = $wpdb->get_results($query);
if (!is_array($result)) {
return false;
}
return $result;
}