Code Duplication    Length = 42-54 lines in 2 locations

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

@@ 3469-3510 (lines=42) @@
3466
     * @param int $groupId
3467
     * @return    int     The number of post by course
3468
     */
3469
    public static function count_number_of_posts_by_course($course_code, $session_id = null, $groupId = 0)
3470
    {
3471
        $courseInfo = api_get_course_info($course_code);
3472
        if (!empty($courseInfo)) {
3473
            $tbl_posts = Database :: get_course_table(TABLE_FORUM_POST);
3474
            $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3475
3476
            $condition_session = '';
3477
            if (isset($session_id)) {
3478
                $session_id = intval($session_id);
3479
                $condition_session = api_get_session_condition($session_id, true,  false, 'f.session_id');
3480
            }
3481
3482
            $course_id = $courseInfo['real_id'];
3483
            $groupId = intval($groupId);
3484
            if (!empty($groupId)) {
3485
                $groupCondition = " i.to_group_id = $groupId  ";
3486
            } else {
3487
                $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3488
            }
3489
3490
            $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3491
            $sql = "SELECT count(*) FROM $tbl_posts p
3492
                    INNER JOIN $tbl_forums f
3493
                    ON f.forum_id = p.forum_id AND p.c_id = f.c_id
3494
                    INNER JOIN $item i
3495
                    ON (tool = '".TOOL_FORUM."' AND f.c_id = i.c_id AND f.iid = i.ref)
3496
                    WHERE
3497
                        p.c_id = $course_id AND
3498
                        f.c_id = $course_id AND
3499
                        $groupCondition
3500
                        $condition_session
3501
                    ";
3502
            $result = Database::query($sql);
3503
            $row = Database::fetch_row($result);
3504
            $count = $row[0];
3505
3506
            return $count;
3507
        } else {
3508
            return null;
3509
        }
3510
    }
3511
3512
    /**
3513
     * This function counts the number of threads by course
@@ 3521-3574 (lines=54) @@
3518
     * @param int $groupId
3519
     * @return    int     The number of threads by course
3520
     */
3521
    public static function count_number_of_threads_by_course($course_code, $session_id = null, $groupId = 0)
3522
    {
3523
        $course_info = api_get_course_info($course_code);
3524
        if (empty($course_info)) {
3525
            return null;
3526
        }
3527
3528
        $course_id = $course_info['real_id'];
3529
        $tbl_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
3530
        $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3531
3532
        $condition_session = '';
3533
        if (isset($session_id)) {
3534
            $session_id = intval($session_id);
3535
            $condition_session = ' AND f.session_id = '. $session_id;
3536
        }
3537
3538
        $groupId = intval($groupId);
3539
3540
        if (!empty($groupId)) {
3541
            $groupCondition = " i.to_group_id = $groupId ";
3542
        } else {
3543
            $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3544
        }
3545
3546
        $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3547
        $sql = "SELECT count(*)
3548
                FROM $tbl_threads t
3549
                INNER JOIN $tbl_forums f
3550
                ON f.iid = t.forum_id AND f.c_id = t.c_id
3551
                INNER JOIN $item i
3552
                ON (
3553
                    tool = '".TOOL_FORUM_THREAD."' AND
3554
                    f.c_id = i.c_id AND
3555
                    t.iid = i.ref
3556
                )
3557
                WHERE
3558
                    t.c_id = $course_id AND
3559
                    f.c_id = $course_id AND
3560
                    $groupCondition
3561
                    $condition_session
3562
                ";
3563
3564
        $result = Database::query($sql);
3565
        if (Database::num_rows($result)) {
3566
            $row = Database::fetch_row($result);
3567
            $count = $row[0];
3568
3569
            return $count;
3570
        } else {
3571
3572
            return null;
3573
        }
3574
    }
3575
3576
    /**
3577
     * This function counts the number of forums by course