Code Duplication    Length = 41-41 lines in 2 locations

main/inc/lib/group_portal_manager.lib.php 1 location

@@ 228-268 (lines=41) @@
225
     * @param int $levels The depth levels
226
     * @return array The list of ID
227
     */
228
    public static function getGroupsByDepthLevel($groupId, $levels = 10)
229
    {
230
        $groups = array();
231
        $groupId = intval($groupId);
232
233
        $groupTable = Database::get_main_table(TABLE_MAIN_GROUP);
234
        $groupRelGroupTable = Database :: get_main_table(TABLE_MAIN_GROUP_REL_GROUP);
235
236
        $select = "SELECT ";
237
        $from = "FROM $groupTable g1 ";
238
239
        for ($i = 1; $i <= $levels; $i++) {
240
            $tableIndexNumber = $i;
241
            $tableIndexJoinNumber = $i - 1;
242
243
            $select .= "g$i.id as id_$i ";
244
245
            $select .= ($i != $levels ? ", " : null);
246
247
            if ($i == 1) {
248
                $from .= "INNER JOIN $groupRelGroupTable gg0 ON g1.id = gg0.subgroup_id and gg0.group_id = $groupId ";
249
            } else {
250
                $from .= "LEFT JOIN $groupRelGroupTable gg$tableIndexJoinNumber ";
251
                $from .= " ON g$tableIndexJoinNumber.id = gg$tableIndexJoinNumber.group_id ";
252
                $from .= "LEFT JOIN $groupTable g$tableIndexNumber ";
253
                $from .= " ON gg$tableIndexJoinNumber.subgroup_id = g$tableIndexNumber.id ";
254
            }
255
        }
256
257
        $result = Database::query("$select $from");
258
259
        while ($item = Database::fetch_assoc($result)) {
260
            foreach ($item as $groupId) {
261
                if (!empty($groupId)) {
262
                    $groups[] = $groupId;
263
                }
264
            }
265
        }
266
267
        return array_map('intval', $groups);
268
    }
269
270
    /**
271
     * @param int $root

main/inc/lib/usergroup.lib.php 1 location

@@ 2285-2325 (lines=41) @@
2282
     * @param int $levels The depth levels
2283
     * @return array The list of ID
2284
     */
2285
    public static function getGroupsByDepthLevel($groupId, $levels = 10)
2286
    {
2287
        $groups = array();
2288
        $groupId = intval($groupId);
2289
2290
        $groupTable = Database::get_main_table(TABLE_USERGROUP);
2291
        $groupRelGroupTable = Database :: get_main_table(TABLE_USERGROUP_REL_USERGROUP);
2292
2293
        $select = "SELECT ";
2294
        $from = "FROM $groupTable g1 ";
2295
2296
        for ($i = 1; $i <= $levels; $i++) {
2297
            $tableIndexNumber = $i;
2298
            $tableIndexJoinNumber = $i - 1;
2299
2300
            $select .= "g$i.id as id_$i ";
2301
2302
            $select .= ($i != $levels ? ", " : null);
2303
2304
            if ($i == 1) {
2305
                $from .= "INNER JOIN $groupRelGroupTable gg0 ON g1.id = gg0.subgroup_id and gg0.group_id = $groupId ";
2306
            } else {
2307
                $from .= "LEFT JOIN $groupRelGroupTable gg$tableIndexJoinNumber ";
2308
                $from .= " ON g$tableIndexJoinNumber.id = gg$tableIndexJoinNumber.group_id ";
2309
                $from .= "LEFT JOIN $groupTable g$tableIndexNumber ";
2310
                $from .= " ON gg$tableIndexJoinNumber.subgroup_id = g$tableIndexNumber.id ";
2311
            }
2312
        }
2313
2314
        $result = Database::query("$select $from");
2315
2316
        while ($item = Database::fetch_assoc($result)) {
2317
            foreach ($item as $groupId) {
2318
                if (!empty($groupId)) {
2319
                    $groups[] = $groupId;
2320
                }
2321
            }
2322
        }
2323
2324
        return array_map('intval', $groups);
2325
    }
2326
2327
    /**
2328
     * Set a parent group