|
@@ -1354,6 +1354,54 @@ class Tracking {
|
|
|
return $a_courses;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Count the number of documents that an user has uploaded to a course
|
|
|
+ * @param int|array Student id(s)
|
|
|
+ * @param string Course code
|
|
|
+ * @param int Session id (optional), if param $session_id is null(default) return count of assignments including sessions, 0 = session is not filtered
|
|
|
+ * @return int Number of documents
|
|
|
+ */
|
|
|
+
|
|
|
+ public static function count_student_uploaded_documents($student_id, $course_code, $session_id = null){
|
|
|
+ // protect datas
|
|
|
+ $course_code = Database::escape_string($course_code);
|
|
|
+ // get the informations of the course
|
|
|
+ $a_course = CourseManager :: get_course_information($course_code);
|
|
|
+ if (!empty($a_course)) {
|
|
|
+ // table definition
|
|
|
+ $tbl_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY);
|
|
|
+ $tbl_document = Database :: get_course_table(TABLE_DOCUMENT);
|
|
|
+
|
|
|
+ $course_id = $a_course['real_id'];
|
|
|
+
|
|
|
+ $condition_user = "";
|
|
|
+ if (is_array($student_id)) {
|
|
|
+ $condition_user = " AND ip.insert_user_id IN (".implode(',',$student_id).") ";
|
|
|
+ } else {
|
|
|
+ $condition_user = " AND ip.insert_user_id = '$student_id' ";
|
|
|
+ }
|
|
|
+
|
|
|
+ $condition_session = "";
|
|
|
+ if (isset($session_id)) {
|
|
|
+ $session_id = intval($session_id);
|
|
|
+ $condition_session = " AND pub.session_id = $session_id ";
|
|
|
+ }
|
|
|
+
|
|
|
+ $sql = "SELECT count(ip.tool)
|
|
|
+ FROM $tbl_item_property ip INNER JOIN $tbl_document pub
|
|
|
+ ON ip.ref = pub.id
|
|
|
+ WHERE ip.c_id = $course_id AND
|
|
|
+ pub.c_id = $course_id AND
|
|
|
+ pub.filetype ='file' AND
|
|
|
+ ip.tool = 'document'
|
|
|
+ $condition_user $condition_session ";
|
|
|
+ $rs = Database::query($sql);
|
|
|
+ $row = Database::fetch_row($rs);
|
|
|
+ return $row[0];
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* Count assignments per student
|