Пример #1
0
 /**
  * Show grades overview
  */
 function showGradesOverviewObject()
 {
     global $rbacsystem, $tree, $tpl, $ilToolbar, $ilCtrl, $ilTabs, $lng;
     $this->checkPermission("write");
     $ilTabs->activateTab("grades");
     $this->addSubmissionSubTabs("grades");
     include_once "./Modules/Exercise/classes/class.ilExAssignment.php";
     $mem_obj = new ilExerciseMembers($this->object);
     $mems = $mem_obj->getMembers();
     if (count($mems) > 0) {
         $ilToolbar->addButton($lng->txt("exc_export_excel"), $ilCtrl->getLinkTarget($this, "exportExcel"));
     }
     include_once "./Modules/Exercise/classes/class.ilExGradesTableGUI.php";
     $grades_tab = new ilExGradesTableGUI($this, "showGradesOverview", $this->object, $mem_obj);
     $tpl->setContent($grades_tab->getHTML());
 }
Пример #2
0
 /**
  * Get multi feedback files (of uploader)
  *
  * @param int $a_user_id user id of uploader
  * @return array array of user files (keys: lastname, firstname, user_id, login, file)
  */
 function getMultiFeedbackFiles($a_user_id = 0)
 {
     global $ilUser;
     if ($a_user_id == 0) {
         $a_user_id = $ilUser->getId();
     }
     $mf_files = array();
     // get members
     $exc = new ilObjExercise($this->getExerciseId(), false);
     include_once "./Modules/Exercise/classes/class.ilExerciseMembers.php";
     $exmem = new ilExerciseMembers($exc);
     $mems = $exmem->getMembers();
     // read mf directory
     include_once "./Modules/Exercise/classes/class.ilFSStorageExercise.php";
     $storage = new ilFSStorageExercise($this->getExerciseId(), $this->getId());
     $mfu = $storage->getMultiFeedbackUploadPath($ilUser->getId());
     // get subdir that starts with multi_feedback
     $subdirs = ilUtil::getDir($mfu);
     $subdir = "notfound";
     foreach ($subdirs as $s => $j) {
         if ($j["type"] == "dir" && substr($s, 0, 14) == "multi_feedback") {
             $subdir = $s;
         }
     }
     $items = ilUtil::getDir($mfu . "/" . $subdir);
     foreach ($items as $k => $i) {
         // check directory
         if ($i["type"] == "dir" && !in_array($k, array(".", ".."))) {
             // check if valid member id is given
             $parts = explode("_", $i["entry"]);
             $user_id = (int) $parts[count($parts) - 1];
             if (in_array($user_id, $mems)) {
                 // read dir of user
                 $name = ilObjUser::_lookupName($user_id);
                 $files = ilUtil::getDir($mfu . "/" . $subdir . "/" . $k);
                 foreach ($files as $k2 => $f) {
                     // append files to array
                     if ($f["type"] == "file" && substr($k2, 0, 1) != ".") {
                         $mf_files[] = array("lastname" => $name["lastname"], "firstname" => $name["firstname"], "login" => $name["login"], "user_id" => $name["user_id"], "full_path" => $mfu . "/" . $subdir . "/" . $k . "/" . $k2, "file" => $k2);
                     }
                 }
             }
         }
     }
     return $mf_files;
 }
 /**
  * Get participant ids for given object
  *
  * @param	int		$a_ref_id
  * @return	array
  */
 public static function getParticipantsForObject($a_ref_id)
 {
     global $tree;
     $obj_id = ilObject::_lookupObjectId($a_ref_id);
     $obj_type = ilObject::_lookupType($obj_id);
     // try to get participants from (parent) course/group
     switch ($obj_type) {
         case "crs":
             include_once "Modules/Course/classes/class.ilCourseParticipants.php";
             $member_obj = ilCourseParticipants::_getInstanceByObjId($obj_id);
             return $member_obj->getMembers();
         case "grp":
             include_once "Modules/Group/classes/class.ilGroupParticipants.php";
             $member_obj = ilGroupParticipants::_getInstanceByObjId($obj_id);
             return $member_obj->getMembers();
         default:
             // walk path to find course or group object and use members of that object
             $path = $tree->getPathId($a_ref_id);
             array_pop($path);
             foreach (array_reverse($path) as $path_ref_id) {
                 $type = ilObject::_lookupType($path_ref_id, true);
                 if ($type == "crs" || $type == "grp") {
                     return self::getParticipantsForObject($path_ref_id);
                 }
             }
             break;
     }
     $a_users = null;
     // no participants possible: use tracking/object data where possible
     switch ($obj_type) {
         case "sahs":
             include_once "./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php";
             $subtype = ilObjSAHSLearningModule::_lookupSubType($obj_id);
             if ($subtype == "scorm2004") {
                 // based on cmi_node/cp_node, used for scorm tracking data views
                 include_once "./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php";
                 $mod = new ilObjSCORM2004LearningModule($obj_id, false);
                 $all = $mod->getTrackedUsers("");
                 if ($all) {
                     $a_users = array();
                     foreach ($all as $item) {
                         $a_users[] = $item["user_id"];
                     }
                 }
             } else {
                 include_once "./Modules/ScormAicc/classes/SCORM/class.ilObjSCORMTracking.php";
                 $a_users = ilObjSCORMTracking::_getTrackedUsers($obj_id);
             }
             break;
         case "exc":
             include_once "./Modules/Exercise/classes/class.ilExerciseMembers.php";
             include_once "./Modules/Exercise/classes/class.ilObjExercise.php";
             $exc = new ilObjExercise($obj_id, false);
             $members = new ilExerciseMembers($exc);
             $a_users = $members->getMembers();
             break;
         case "tst":
             include_once "./Services/Tracking/classes/class.ilLPStatusTestFinished.php";
             $a_users = ilLPStatusTestFinished::getParticipants($obj_id);
             break;
         default:
             // no sensible data: return null
             break;
     }
     return $a_users;
 }
 /**
  * Create member status record for a new assignment for all participants
  */
 static function createNewAssignmentRecords($a_ass_id, $a_exc)
 {
     global $ilDB;
     include_once "./Modules/Exercise/classes/class.ilExerciseMembers.php";
     $exmem = new ilExerciseMembers($a_exc);
     $mems = $exmem->getMembers();
     foreach ($mems as $mem) {
         $ilDB->replace("exc_mem_ass_status", array("ass_id" => array("integer", $a_ass_id), "usr_id" => array("integer", $mem)), array("status" => array("text", "notgraded")));
     }
 }