33 include_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();
static _isInTrash($a_ref_id)
checks wether object is in trash
static _getAllReferences($a_id)
get all reference ids of object
static _lookupObjectId($a_ref_id)
lookup object id
__raiseError($a_message, $a_code)
updateExercise($sid, $ref_id, $exercise_xml)
update a exercise with id.
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.
addExercise($sid, $target_id, $exercise_xml)
add an exercise with id.
initAuth($sid)
Init authentication.
Exercise XML Parser which completes/updates a given exercise by an xml string.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
getExerciseXML($sid, $ref_id, $attachFileContentsMode)
get exercise xml
Class to report exception.