Code Duplication    Length = 42-54 lines in 2 locations

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

@@ 3426-3467 (lines=42) @@
3423
     * @param int $groupId
3424
     * @return    int     The number of post by course
3425
     */
3426
    public static function count_number_of_posts_by_course($course_code, $session_id = null, $groupId = 0)
3427
    {
3428
        $courseInfo = api_get_course_info($course_code);
3429
        if (!empty($courseInfo)) {
3430
            $tbl_posts = Database :: get_course_table(TABLE_FORUM_POST);
3431
            $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3432
3433
            $condition_session = '';
3434
            if (isset($session_id)) {
3435
                $session_id = intval($session_id);
3436
                $condition_session = api_get_session_condition($session_id, true,  false, 'f.session_id');
3437
            }
3438
3439
            $course_id = $courseInfo['real_id'];
3440
            $groupId = intval($groupId);
3441
            if (!empty($groupId)) {
3442
                $groupCondition = " i.to_group_id = $groupId  ";
3443
            } else {
3444
                $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3445
            }
3446
3447
            $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3448
            $sql = "SELECT count(*) FROM $tbl_posts p
3449
                    INNER JOIN $tbl_forums f
3450
                    ON f.forum_id = p.forum_id AND p.c_id = f.c_id
3451
                    INNER JOIN $item i
3452
                    ON (tool = '".TOOL_FORUM."' AND f.c_id = i.c_id AND f.iid = i.ref)
3453
                    WHERE
3454
                        p.c_id = $course_id AND
3455
                        f.c_id = $course_id AND
3456
                        $groupCondition
3457
                        $condition_session
3458
                    ";
3459
            $result = Database::query($sql);
3460
            $row = Database::fetch_row($result);
3461
            $count = $row[0];
3462
3463
            return $count;
3464
        } else {
3465
            return null;
3466
        }
3467
    }
3468
3469
    /**
3470
     * This function counts the number of threads by course
@@ 3478-3531 (lines=54) @@
3475
     * @param int $groupId
3476
     * @return    int     The number of threads by course
3477
     */
3478
    public static function count_number_of_threads_by_course($course_code, $session_id = null, $groupId = 0)
3479
    {
3480
        $course_info = api_get_course_info($course_code);
3481
        if (empty($course_info)) {
3482
            return null;
3483
        }
3484
3485
        $course_id = $course_info['real_id'];
3486
        $tbl_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
3487
        $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3488
3489
        $condition_session = '';
3490
        if (isset($session_id)) {
3491
            $session_id = intval($session_id);
3492
            $condition_session = ' AND f.session_id = '. $session_id;
3493
        }
3494
3495
        $groupId = intval($groupId);
3496
3497
        if (!empty($groupId)) {
3498
            $groupCondition = " i.to_group_id = $groupId ";
3499
        } else {
3500
            $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3501
        }
3502
3503
        $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3504
        $sql = "SELECT count(*)
3505
                FROM $tbl_threads t
3506
                INNER JOIN $tbl_forums f
3507
                ON f.iid = t.forum_id AND f.c_id = t.c_id
3508
                INNER JOIN $item i
3509
                ON (
3510
                    tool = '".TOOL_FORUM_THREAD."' AND
3511
                    f.c_id = i.c_id AND
3512
                    t.iid = i.ref
3513
                )
3514
                WHERE
3515
                    t.c_id = $course_id AND
3516
                    f.c_id = $course_id AND
3517
                    $groupCondition
3518
                    $condition_session
3519
                ";
3520
3521
        $result = Database::query($sql);
3522
        if (Database::num_rows($result)) {
3523
            $row = Database::fetch_row($result);
3524
            $count = $row[0];
3525
3526
            return $count;
3527
        } else {
3528
3529
            return null;
3530
        }
3531
    }
3532
3533
    /**
3534
     * This function counts the number of forums by course