Code Duplication    Length = 42-54 lines in 2 locations

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

@@ 3795-3836 (lines=42) @@
3792
     * @param int $groupId
3793
     * @return    int     The number of post by course
3794
     */
3795
    public static function count_number_of_posts_by_course($course_code, $session_id = null, $groupId = 0)
3796
    {
3797
        $courseInfo = api_get_course_info($course_code);
3798
        if (!empty($courseInfo)) {
3799
            $tbl_posts = Database::get_course_table(TABLE_FORUM_POST);
3800
            $tbl_forums = Database::get_course_table(TABLE_FORUM);
3801
3802
            $condition_session = '';
3803
            if (isset($session_id)) {
3804
                $session_id = intval($session_id);
3805
                $condition_session = api_get_session_condition(
3806
                    $session_id,
3807
                    true,
3808
                    false,
3809
                    'f.session_id'
3810
                );
3811
            }
3812
3813
            $course_id = $courseInfo['real_id'];
3814
            $groupId = intval($groupId);
3815
            if (!empty($groupId)) {
3816
                $groupCondition = " i.to_group_id = $groupId  ";
3817
            } else {
3818
                $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3819
            }
3820
3821
            $item = Database::get_course_table(TABLE_ITEM_PROPERTY);
3822
            $sql = "SELECT count(*) FROM $tbl_posts p
3823
                    INNER JOIN $tbl_forums f
3824
                    ON f.forum_id = p.forum_id AND p.c_id = f.c_id
3825
                    INNER JOIN $item i
3826
                    ON (tool = '".TOOL_FORUM."' AND f.c_id = i.c_id AND f.iid = i.ref)
3827
                    WHERE
3828
                        p.c_id = $course_id AND
3829
                        f.c_id = $course_id AND
3830
                        $groupCondition
3831
                        $condition_session
3832
                    ";
3833
            $result = Database::query($sql);
3834
            $row = Database::fetch_row($result);
3835
            $count = $row[0];
3836
3837
            return $count;
3838
        } else {
3839
            return null;
@@ 3852-3905 (lines=54) @@
3849
     * @param int $groupId
3850
     * @return    int     The number of threads by course
3851
     */
3852
    public static function count_number_of_threads_by_course($course_code, $session_id = null, $groupId = 0)
3853
    {
3854
        $course_info = api_get_course_info($course_code);
3855
        if (empty($course_info)) {
3856
            return null;
3857
        }
3858
3859
        $course_id = $course_info['real_id'];
3860
        $tbl_threads = Database::get_course_table(TABLE_FORUM_THREAD);
3861
        $tbl_forums = Database::get_course_table(TABLE_FORUM);
3862
3863
        $condition_session = '';
3864
        if (isset($session_id)) {
3865
            $session_id = intval($session_id);
3866
            $condition_session = ' AND f.session_id = '.$session_id;
3867
        }
3868
3869
        $groupId = intval($groupId);
3870
3871
        if (!empty($groupId)) {
3872
            $groupCondition = " i.to_group_id = $groupId ";
3873
        } else {
3874
            $groupCondition = " (i.to_group_id = 0 OR i.to_group_id IS NULL) ";
3875
        }
3876
3877
        $item = Database::get_course_table(TABLE_ITEM_PROPERTY);
3878
        $sql = "SELECT count(*)
3879
                FROM $tbl_threads t
3880
                INNER JOIN $tbl_forums f
3881
                ON f.iid = t.forum_id AND f.c_id = t.c_id
3882
                INNER JOIN $item i
3883
                ON (
3884
                    tool = '".TOOL_FORUM_THREAD."' AND
3885
                    f.c_id = i.c_id AND
3886
                    t.iid = i.ref
3887
                )
3888
                WHERE
3889
                    t.c_id = $course_id AND
3890
                    f.c_id = $course_id AND
3891
                    $groupCondition
3892
                    $condition_session
3893
                ";
3894
3895
        $result = Database::query($sql);
3896
        if (Database::num_rows($result)) {
3897
            $row = Database::fetch_row($result);
3898
            $count = $row[0];
3899
3900
            return $count;
3901
        } else {
3902
3903
            return null;
3904
        }
3905
    }
3906
3907
    /**
3908
     * This function counts the number of forums by course