Code Duplication    Length = 42-54 lines in 2 locations

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

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