33include_once 
'./webservice/soap/classes/class.ilSoapAdministration.php';
 
   51                if(!$this->__checkSession($sid))
 
   55                global $rbacsystem, $tree, 
$ilLog;
 
   59                        return $this->
__raiseError(
'No valid target given.', 
'Client');
 
   64                        return $this->
__raiseError(
"Parent with ID $target_id has been deleted.", 
'CLIENT_OBJECT_DELETED');
 
   68                $allowed_types = array(
'cat',
'grp',
'crs',
'fold',
'root');
 
   69                if(!in_array($target_obj->getType(), $allowed_types))
 
   71                        return $this->
__raiseError(
'No valid target type. Target must be reference id of "course, group, category or folder"', 
'Client');
 
   74                if(!$rbacsystem->checkAccess(
'create',
$target_id,
"exc"))
 
   80                include_once 
'./Modules/Exercise/classes/class.ilObjExercise.php';
 
   81                include_once 
'./Modules/Exercise/classes/class.ilExerciseXMLParser.php';
 
   82                include_once 
'./Modules/Exercise/exceptions/class.ilExerciseException.php';
 
   87                $exercise->createReference();
 
   90                $exercise->saveData();
 
   98                        if ($exerciseXMLParser->start()) {
 
   99                                $exerciseXMLParser->getAssignment()->update();
 
  100                                return $exercise->update() ? $exercise->getRefId() : -1;
 
  124                if(!$this->__checkSession($sid))
 
  128                global $rbacsystem, $tree, 
$ilLog;
 
  132                        return $this->
__raiseError(
'Cannot perform update since exercise has been deleted.', 
'CLIENT_OBJECT_DELETED');
 
  138                                                                           'CLIENT_OBJECT_NOT_FOUND');
 
  142                $permission_ok = 
false;
 
  145                        if($rbacsystem->checkAccess(
'edit',
$ref_id))
 
  147                                $permission_ok = 
true;
 
  154                        return $this->
__raiseError(
'No permission to edit the exercise with id: '.$ref_id,
 
  161                if (!is_object($exercise) || $exercise->getType()!= 
"exc")
 
  163                        return $this->
__raiseError(
'Wrong obj id or type for exercise with id '.$ref_id,
 
  164                                                                        'CLIENT_OBJECT_NOI_FOUND');
 
  167                include_once 
'./Modules/Exercise/classes/class.ilExerciseXMLParser.php';
 
  168                include_once 
'./Modules/Exercise/exceptions/class.ilExerciseException.php';
 
  173                        if ($exerciseXMLParser->start()) {
 
  174                                $exerciseXMLParser->getAssignment()->update();
 
  175                                return $exercise->update();
 
  200                if(!$this->__checkSession($sid))
 
  206                        return $this->
__raiseError(
'No ref id given. Aborting!',
 
  209                global $rbacsystem, $tree, 
$ilLog;
 
  220                        return $this->
__raiseError(
"Parent with ID $ref_id has been deleted.", 
'Client');
 
  226                $permission_ok = 
false;
 
  227                $write_permission_ok = 
false;
 
  230                        if($rbacsystem->checkAccess(
'write',
$ref_id))  
 
  232                                $write_permission_ok = 
true;
 
  235                    if($rbacsystem->checkAccess(
'read',
$ref_id))
 
  237                                $permission_ok = 
true;
 
  243                if(!$permission_ok && !$write_permission_ok)
 
  245                        return $this->
__raiseError(
'No permission to edit the object with id: '.$ref_id,
 
  251                if (!is_object($exercise) || $exercise->getType()!= 
"exc")
 
  253                        return $this->
__raiseError(
'Wrong obj id or type for exercise with id '.$ref_id,
 
  257                include_once 
'./Modules/Exercise/classes/class.ilExerciseXMLWriter.php';
 
  261                $xmlWriter->setExercise($exercise);
 
  262                $xmlWriter->setAttachMembers($write_permission_ok);
 
  263                $xmlWriter->setAttachFileContents($attachFileContentsMode);
 
  266                return $xmlWriter->getXML();
 
An exception for terminatinating execution or to throw for unit testing.
Class to report exception.
Exercise XML Parser which completes/updates a given exercise by an xml string.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _lookupObjectId($a_ref_id)
lookup object id
static _getAllReferences($a_id)
get all reference ids of object
static _isInTrash($a_ref_id)
checks wether object is in trash
initAuth($sid)
Init authentication.
__raiseError($a_message, $a_code)
addExercise($sid, $target_id, $exercise_xml)
add an exercise with id.
updateExercise($sid, $ref_id, $exercise_xml)
update a exercise with id.
getExerciseXML($sid, $ref_id, $attachFileContentsMode)
get exercise xml