4include_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"]);
 
An exception for terminatinating execution or to throw for unit testing.
A dataset contains in data in a common structure that can be shared and transformed for different pur...
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 ...
getImportDirectory()
Get import directory.
@classDescription Date and time handling
Class ilExcCriteriaCatalogue.
static getInstanceByType($a_type)
importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
Import record.
getXmlRecord($a_entity, $a_version, $a_set)
Get xml record (export)
getXmlNamespace($a_entity, $a_schema_version)
Get xml namespace.
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.
readData($a_entity, $a_version, $a_ids, $a_field="")
Read data.
getSupportedVersions()
Get supported versions.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.