Code Duplication    Length = 42-54 lines in 2 locations

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

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