Code Duplication    Length = 42-54 lines in 2 locations

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

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