Code Duplication    Length = 42-54 lines in 2 locations

main/inc/lib/tracking.lib.php 2 locations

@@ 3377-3418 (lines=42) @@
3374
     * @param int $groupId
3375
     * @return    int     The number of post by course
3376
     */
3377
    public static function count_number_of_posts_by_course($course_code, $session_id = null, $groupId = 0)
3378
    {
3379
        $courseInfo = api_get_course_info($course_code);
3380
        if (!empty($courseInfo)) {
3381
            $tbl_posts = Database :: get_course_table(TABLE_FORUM_POST);
3382
            $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3383
3384
            $condition_session = '';
3385
            if (isset($session_id)) {
3386
                $session_id = intval($session_id);
3387
                $condition_session = api_get_session_condition($session_id, true,  false, 'f.session_id');
3388
            }
3389
3390
            $course_id = $courseInfo['real_id'];
3391
            $groupId = intval($groupId);
3392
            if (!empty($groupId)) {
3393
                $groupCondition = " i.to_group_id = $groupId  ";
3394
            } else {
3395
                $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3396
            }
3397
3398
            $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3399
            $sql = "SELECT count(*) FROM $tbl_posts p
3400
                    INNER JOIN $tbl_forums f
3401
                    ON f.forum_id = p.forum_id AND p.c_id = f.c_id
3402
                    INNER JOIN $item i
3403
                    ON (tool = '".TOOL_FORUM."' AND f.c_id = i.c_id AND f.iid = i.ref)
3404
                    WHERE
3405
                        p.c_id = $course_id AND
3406
                        f.c_id = $course_id AND
3407
                        $groupCondition
3408
                        $condition_session
3409
                    ";
3410
            $result = Database::query($sql);
3411
            $row = Database::fetch_row($result);
3412
            $count = $row[0];
3413
3414
            return $count;
3415
        } else {
3416
            return null;
3417
        }
3418
    }
3419
3420
    /**
3421
     * This function counts the number of threads by course
@@ 3429-3482 (lines=54) @@
3426
     * @param int $groupId
3427
     * @return    int     The number of threads by course
3428
     */
3429
    public static function count_number_of_threads_by_course($course_code, $session_id = null, $groupId = 0)
3430
    {
3431
        $course_info = api_get_course_info($course_code);
3432
        if (empty($course_info)) {
3433
            return null;
3434
        }
3435
3436
        $course_id = $course_info['real_id'];
3437
        $tbl_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
3438
        $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3439
3440
        $condition_session = '';
3441
        if (isset($session_id)) {
3442
            $session_id = intval($session_id);
3443
            $condition_session = ' AND f.session_id = '. $session_id;
3444
        }
3445
3446
        $groupId = intval($groupId);
3447
3448
        if (!empty($groupId)) {
3449
            $groupCondition = " i.to_group_id = $groupId ";
3450
        } else {
3451
            $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3452
        }
3453
3454
        $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3455
        $sql = "SELECT count(*)
3456
                FROM $tbl_threads t
3457
                INNER JOIN $tbl_forums f
3458
                ON f.iid = t.forum_id AND f.c_id = t.c_id
3459
                INNER JOIN $item i
3460
                ON (
3461
                    tool = '".TOOL_FORUM_THREAD."' AND
3462
                    f.c_id = i.c_id AND
3463
                    t.iid = i.ref
3464
                )
3465
                WHERE
3466
                    t.c_id = $course_id AND
3467
                    f.c_id = $course_id AND
3468
                    $groupCondition
3469
                    $condition_session
3470
                ";
3471
3472
        $result = Database::query($sql);
3473
        if (Database::num_rows($result)) {
3474
            $row = Database::fetch_row($result);
3475
            $count = $row[0];
3476
3477
            return $count;
3478
        } else {
3479
3480
            return null;
3481
        }
3482
    }
3483
3484
    /**
3485
     * This function counts the number of forums by course