4 include_once(
"./Services/DataSet/classes/class.ilDataSet.php");
23 return array(
"4.1.0",
"4.4.0",
"5.0.0",
"5.1.0",
"5.2.0");
34 return "http://www.ilias.de/xml/Modules/Exercise/".$a_entity;
43 protected function getTypes($a_entity, $a_version)
45 if ($a_entity ==
"exc")
53 "Description" =>
"text",
55 "PassNr" =>
"integer",
56 "ShowSubmissions" =>
"integer" 65 "Description" =>
"text",
67 "PassNr" =>
"integer",
68 "ShowSubmissions" =>
"integer",
69 "ComplBySubmission" =>
"integer" 76 "Description" =>
"text",
78 "PassNr" =>
"integer",
79 "ShowSubmissions" =>
"integer",
80 "ComplBySubmission" =>
"integer",
81 "Tfeedback" =>
"integer" 86 if ($a_entity ==
"exc_assignment")
93 "ExerciseId" =>
"integer",
95 "Instruction" =>
"text",
97 "Mandatory" =>
"integer",
98 "OrderNr" =>
"integer",
99 "Dir" =>
"directory");
104 "ExerciseId" =>
"integer",
106 "Deadline" =>
"integer",
107 "Instruction" =>
"text",
109 "Mandatory" =>
"integer",
110 "OrderNr" =>
"integer",
114 ,
"PeerMin" =>
"integer" 115 ,
"PeerDeadline" =>
"integer" 117 ,
"FeedbackFile" =>
"integer" 118 ,
"FeedbackCron" =>
"integer" 119 ,
"FeedbackDate" =>
"integer" 120 ,
"FeedbackDir" =>
"directory" 126 "ExerciseId" =>
"integer",
128 "Deadline" =>
"integer",
129 "Instruction" =>
"text",
131 "Mandatory" =>
"integer",
132 "OrderNr" =>
"integer",
136 ,
"PeerMin" =>
"integer" 137 ,
"PeerDeadline" =>
"integer" 138 ,
"PeerFile" =>
"integer" 139 ,
"PeerPersonal" =>
"integer" 141 ,
"FeedbackFile" =>
"integer" 142 ,
"FeedbackCron" =>
"integer" 143 ,
"FeedbackDate" =>
"integer" 144 ,
"FeedbackDir" =>
"directory" 151 "ExerciseId" =>
"integer",
153 "Deadline" =>
"integer",
154 "Deadline2" =>
"integer",
155 "Instruction" =>
"text",
157 "Mandatory" =>
"integer",
158 "OrderNr" =>
"integer",
159 "TeamTutor" =>
"integer",
160 "MaxFile" =>
"integer",
164 ,
"PeerMin" =>
"integer" 165 ,
"PeerDeadline" =>
"integer" 166 ,
"PeerFile" =>
"integer" 167 ,
"PeerPersonal" =>
"integer" 168 ,
"PeerChar" =>
"integer" 169 ,
"PeerUnlock" =>
"integer" 170 ,
"PeerValid" =>
"integer" 171 ,
"PeerText" =>
"integer" 172 ,
"PeerRating" =>
"integer" 173 ,
"PeerCritCat" =>
"integer" 175 ,
"FeedbackFile" =>
"integer" 176 ,
"FeedbackCron" =>
"integer" 177 ,
"FeedbackDate" =>
"integer" 178 ,
"FeedbackDir" =>
"directory" 183 if ($a_entity ==
"exc_cit_cat")
191 ,
"Parent" =>
"integer" 198 if ($a_entity ==
"exc_cit")
206 ,
"Parent" =>
"integer" 211 ,
"Required" =>
"integer" 225 function readData($a_entity, $a_version, $a_ids, $a_field =
"")
229 if (!is_array($a_ids))
231 $a_ids =
array($a_ids);
234 if ($a_entity ==
"exc")
240 " pass_mode, pass_nr, show_submissions".
241 " FROM exc_data JOIN object_data ON (exc_data.obj_id = object_data.obj_id)".
242 " WHERE ".$ilDB->in(
"exc_data.obj_id", $a_ids,
false,
"integer"));
249 " pass_mode, pass_nr, show_submissions, compl_by_submission".
250 " FROM exc_data JOIN object_data ON (exc_data.obj_id = object_data.obj_id)".
251 " WHERE ".$ilDB->in(
"exc_data.obj_id", $a_ids,
false,
"integer"));
256 " pass_mode, pass_nr, show_submissions, compl_by_submission, tfeedback".
257 " FROM exc_data JOIN object_data ON (exc_data.obj_id = object_data.obj_id)".
258 " WHERE ".$ilDB->in(
"exc_data.obj_id", $a_ids,
false,
"integer"));
263 if ($a_entity ==
"exc_assignment")
269 " instruction, title, start_time, mandatory, order_nr".
270 " FROM exc_assignment".
271 " WHERE ".$ilDB->in(
"exc_id", $a_ids,
false,
"integer"));
276 " instruction, title, start_time, mandatory, order_nr, peer, peer_min, peer_dl peer_deadline,".
277 " fb_file feedback_file, fb_cron feedback_cron, fb_date feedback_date".
278 " FROM exc_assignment".
279 " WHERE ".$ilDB->in(
"exc_id", $a_ids,
false,
"integer"));
284 " instruction, title, start_time, mandatory, order_nr, peer, peer_min, peer_dl peer_deadline,".
285 " peer_file, peer_prsl peer_personal, fb_file feedback_file, fb_cron feedback_cron, fb_date feedback_date".
286 " FROM exc_assignment".
287 " WHERE ".$ilDB->in(
"exc_id", $a_ids,
false,
"integer"));
293 " instruction, title, start_time, mandatory, order_nr, team_tutor, max_file, peer, peer_min,".
294 " peer_dl peer_deadline, peer_file, peer_prsl peer_personal, peer_char, peer_unlock, peer_valid,".
295 " peer_text, peer_rating, peer_crit_cat, fb_file feedback_file, fb_cron feedback_cron, fb_date feedback_date".
296 " FROM exc_assignment".
297 " WHERE ".$ilDB->in(
"exc_id", $a_ids,
false,
"integer"));
302 if ($a_entity ==
"exc_crit_cat")
309 " FROM exc_crit_cat".
310 " WHERE ".$ilDB->in(
"parent", $a_ids,
false,
"integer"));
315 if ($a_entity ==
"exc_crit")
322 ", descr, pos, required, def".
324 " WHERE ".$ilDB->in(
"parent", $a_ids,
false,
"integer"));
325 foreach ($this->
data as $k => $v)
327 $this->
data[$k][
"DefJson"] =
"";
330 $this->
data[$k][
"DefJson"] = json_encode(unserialize($v[
"Def"]));
346 if ($a_entity ==
"exc_assignment")
349 if($a_set[
"StartTime"] !=
"")
354 if($a_set[
"Deadline"] !=
"")
359 if($a_set[
"Deadline2"] !=
"")
365 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
367 $a_set[
"Dir"] = $fstorage->getPath();
369 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
371 $a_set[
"FeedbackDir"] = $fstorage->getGlobalFeedbackPath();
387 "exc_crit_cat" =>
array(
"ids" => $a_rec[
"Id"]),
388 "exc_assignment" =>
array(
"ids" => $a_rec[
"Id"])
393 "exc_crit" =>
array(
"ids" => $a_rec[
"Id"])
407 function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
415 include_once(
"./Modules/Exercise/classes/class.ilObjExercise.php");
417 if($new_id = $a_mapping->getMapping(
'Services/Container',
'objs',$a_rec[
'Id']))
424 $newObj->setType(
"exc");
425 $newObj->create(
true);
428 $newObj->setTitle($a_rec[
"Title"]);
429 $newObj->setDescription($a_rec[
"Description"]);
430 $newObj->setPassMode($a_rec[
"PassMode"]);
431 $newObj->setPassNr($a_rec[
"PassNr"]);
432 $newObj->setShowSubmissions($a_rec[
"ShowSubmissions"]);
433 $newObj->setCompletionBySubmission($a_rec[
"ComplBySubmission"]);
434 $newObj->setTutorFeedback($a_rec[
"Tfeedback"]);
437 $this->current_exc = $newObj;
439 $a_mapping->addMapping(
"Modules/Exercise",
"exc", $a_rec[
"Id"], $newObj->getId());
442 case "exc_assignment":
443 $exc_id = $a_mapping->getMapping(
"Modules/Exercise",
"exc", $a_rec[
"ExerciseId"]);
446 if (is_object($this->current_exc) && $this->current_exc->getId() == $exc_id)
448 $exc = $this->current_exc;
452 include_once(
"./Modules/Exercise/classes/class.ilObjExercise.php");
456 include_once(
"./Modules/Exercise/classes/class.ilExAssignment.php");
459 $ass->setExerciseId($exc_id);
461 if ($a_rec[
"StartTime"] !=
"")
467 if ($a_rec[
"Deadline"] !=
"")
473 $ass->setInstruction($a_rec[
"Instruction"]);
474 $ass->setTitle($a_rec[
"Title"]);
475 $ass->setMandatory($a_rec[
"Mandatory"]);
476 $ass->setOrderNr($a_rec[
"OrderNr"]);
479 $ass->setType($a_rec[
"Type"]);
482 $ass->setPeerReview($a_rec[
"Peer"]);
483 $ass->setPeerReviewMin($a_rec[
"PeerMin"]);
484 $ass->setPeerReviewDeadline($a_rec[
"PeerDeadline"]);
485 $ass->setFeedbackFile($a_rec[
"FeedbackFile"]);
486 $ass->setFeedbackCron($a_rec[
"FeedbackCron"]);
487 $ass->setFeedbackDate($a_rec[
"FeedbackDate"]);
490 $ass->setPeerReviewFileUpload($a_rec[
"PeerFile"]);
491 $ass->setPeerReviewPersonalized($a_rec[
"PeerPersonal"]);
494 if ($a_rec[
"Deadline2"] !=
"")
497 $ass->setExtendedDeadline($deadline->get(
IL_CAL_UNIX));
499 $ass->setMaxFile($a_rec[
"MaxFile"]);
500 $ass->setTeamTutor($a_rec[
"TeamTutor"]);
501 $ass->setPeerReviewChars($a_rec[
"PeerChar"]);
502 $ass->setPeerReviewSimpleUnlock($a_rec[
"PeerUnlock"]);
503 $ass->setPeerReviewValid($a_rec[
"PeerValid"]);
504 $ass->setPeerReviewText($a_rec[
"PeerText"]);
505 $ass->setPeerReviewRating($a_rec[
"PeerRating"]);
508 if($a_rec[
"PeerCritCat"])
510 $ass->setPeerReviewCriteriaCatalogue($a_mapping->getMapping(
"Modules/Exercise",
"exc_crit_cat", $a_rec[
"PeerCritCat"]));
515 include_once(
"./Modules/Exercise/classes/class.ilFSStorageExercise.php");
520 $dir = str_replace(
"..",
"", $a_rec[
"Dir"]);
524 $target_dir = $fstorage->getPath();
529 $dir = str_replace(
"..",
"", $a_rec[
"FeedbackDir"]);
533 $target_dir = $fstorage->getGlobalFeedbackPath();
537 $a_mapping->addMapping(
"Modules/Exercise",
"exc_assignment", $a_rec[
"Id"], $ass->getId());
544 $exc_id = $a_mapping->getMapping(
"Modules/Exercise",
"exc", $a_rec[
"Parent"]);
547 include_once(
"./Modules/Exercise/classes/class.ilExcCriteriaCatalogue.php");
549 $crit_cat->setParent($exc_id);
550 $crit_cat->setTitle($a_rec[
"Title"]);
551 $crit_cat->setPosition($a_rec[
"Pos"]);
554 $a_mapping->addMapping(
"Modules/Exercise",
"exc_crit_cat", $a_rec[
"Id"], $crit_cat->getId());
559 $crit_cat_id = $a_mapping->getMapping(
"Modules/Exercise",
"exc_crit_cat", $a_rec[
"Parent"]);
560 if ($crit_cat_id > 0)
562 include_once(
"./Modules/Exercise/classes/class.ilExcCriteria.php");
564 $crit->setParent($crit_cat_id);
565 $crit->setTitle($a_rec[
"Title"]);
566 $crit->setDescription($a_rec[
"Descr"]);
567 $crit->setPosition($a_rec[
"Pos"]);
568 $crit->setRequired($a_rec[
"Required"]);
569 $crit->importDefinition($a_rec[
"Def"], $a_rec[
"DefJson"]);
static getInstanceByType($a_type)
Class ilExcCriteriaCatalogue.
getDirectDataFromQuery($a_query, $a_convert_to_leading_upper=true, $a_set=true)
Get data from query.This is a standard procedure, all db field names are directly mapped to abstract ...
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
getDependencies($a_entity, $a_version, $a_rec, $a_ids)
Determine the dependent sets of data.
getTypes($a_entity, $a_version)
Get field types for entity.
getImportDirectory()
Get import directory.
getXmlRecord($a_entity, $a_version, $a_set)
Get xml record (export)
importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
Import record.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Create styles array
The data for the language used.
getXmlNamespace($a_entity, $a_schema_version)
Get xml namespace.
create()
Create directory.
readData($a_entity, $a_version, $a_ids, $a_field="")
Read data.
A dataset contains in data in a common structure that can be shared and transformed for different pur...
getSupportedVersions()
Get supported versions.