Code Duplication    Length = 42-54 lines in 2 locations

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

@@ 3499-3540 (lines=42) @@
3496
     * @param int $groupId
3497
     * @return    int     The number of post by course
3498
     */
3499
    public static function count_number_of_posts_by_course($course_code, $session_id = null, $groupId = 0)
3500
    {
3501
        $courseInfo = api_get_course_info($course_code);
3502
        if (!empty($courseInfo)) {
3503
            $tbl_posts = Database :: get_course_table(TABLE_FORUM_POST);
3504
            $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3505
3506
            $condition_session = '';
3507
            if (isset($session_id)) {
3508
                $session_id = intval($session_id);
3509
                $condition_session = api_get_session_condition($session_id, true,  false, 'f.session_id');
3510
            }
3511
3512
            $course_id = $courseInfo['real_id'];
3513
            $groupId = intval($groupId);
3514
            if (!empty($groupId)) {
3515
                $groupCondition = " i.to_group_id = $groupId  ";
3516
            } else {
3517
                $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3518
            }
3519
3520
            $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3521
            $sql = "SELECT count(*) FROM $tbl_posts p
3522
                    INNER JOIN $tbl_forums f
3523
                    ON f.forum_id = p.forum_id AND p.c_id = f.c_id
3524
                    INNER JOIN $item i
3525
                    ON (tool = '".TOOL_FORUM."' AND f.c_id = i.c_id AND f.iid = i.ref)
3526
                    WHERE
3527
                        p.c_id = $course_id AND
3528
                        f.c_id = $course_id AND
3529
                        $groupCondition
3530
                        $condition_session
3531
                    ";
3532
            $result = Database::query($sql);
3533
            $row = Database::fetch_row($result);
3534
            $count = $row[0];
3535
3536
            return $count;
3537
        } else {
3538
            return null;
3539
        }
3540
    }
3541
3542
    /**
3543
     * This function counts the number of threads by course
@@ 3551-3604 (lines=54) @@
3548
     * @param int $groupId
3549
     * @return    int     The number of threads by course
3550
     */
3551
    public static function count_number_of_threads_by_course($course_code, $session_id = null, $groupId = 0)
3552
    {
3553
        $course_info = api_get_course_info($course_code);
3554
        if (empty($course_info)) {
3555
            return null;
3556
        }
3557
3558
        $course_id = $course_info['real_id'];
3559
        $tbl_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
3560
        $tbl_forums = Database :: get_course_table(TABLE_FORUM);
3561
3562
        $condition_session = '';
3563
        if (isset($session_id)) {
3564
            $session_id = intval($session_id);
3565
            $condition_session = ' AND f.session_id = '. $session_id;
3566
        }
3567
3568
        $groupId = intval($groupId);
3569
3570
        if (!empty($groupId)) {
3571
            $groupCondition = " i.to_group_id = $groupId ";
3572
        } else {
3573
            $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3574
        }
3575
3576
        $item = Database :: get_course_table(TABLE_ITEM_PROPERTY);
3577
        $sql = "SELECT count(*)
3578
                FROM $tbl_threads t
3579
                INNER JOIN $tbl_forums f
3580
                ON f.iid = t.forum_id AND f.c_id = t.c_id
3581
                INNER JOIN $item i
3582
                ON (
3583
                    tool = '".TOOL_FORUM_THREAD."' AND
3584
                    f.c_id = i.c_id AND
3585
                    t.iid = i.ref
3586
                )
3587
                WHERE
3588
                    t.c_id = $course_id AND
3589
                    f.c_id = $course_id AND
3590
                    $groupCondition
3591
                    $condition_session
3592
                ";
3593
3594
        $result = Database::query($sql);
3595
        if (Database::num_rows($result)) {
3596
            $row = Database::fetch_row($result);
3597
            $count = $row[0];
3598
3599
            return $count;
3600
        } else {
3601
3602
            return null;
3603
        }
3604
    }
3605
3606
    /**
3607
     * This function counts the number of forums by course