Пример #1
0
                        $id_list = implode(",", $group_ids);
                        $parent_group_ids = $wpdb->get_results("SELECT parent_id FROM {$group_table} WHERE parent_id IS NOT NULL AND group_id IN ({$id_list})");
                        if ($parent_group_ids) {
                            foreach ($parent_group_ids as $parent_group_id) {
                                $parent_group_id = Groups_Utility::id($parent_group_id->parent_id);
                                if (!in_array($parent_group_id, $group_ids)) {
                                    $group_ids[] = $parent_group_id;
                                }
                            }
                        }
                    }
                    $id_list = implode(",", $group_ids);
                    $rows = $wpdb->get_results("SELECT {$group_capability_table}.capability_id, {$capability_table}.capability FROM {$group_capability_table} LEFT JOIN {$capability_table} ON {$group_capability_table}.capability_id = {$capability_table}.capability_id WHERE group_id IN ({$id_list})");
                    if (count($rows) > 0) {
                        foreach ($rows as $row) {
                            if (!in_array($row->capability_id, $capability_ids)) {
                                $capabilities[] = $row->capability;
                                $capability_ids[] = $row->capability_id;
                            }
                        }
                    }
                }
            }
            Groups_Cache::set(self::CAPABILITIES . $this->user->ID, $capabilities, self::CACHE_GROUP);
            Groups_Cache::set(self::CAPABILITY_IDS . $this->user->ID, $capability_ids, self::CACHE_GROUP);
            Groups_Cache::set(self::GROUP_IDS . $this->user->ID, $group_ids, self::CACHE_GROUP);
        }
    }
}
Groups_User::init();