16 $this->stats =
array(
"created" => 0,
"updated" => 0,
"deleted" => 0);
17 $a = file_get_contents($file_path,
"r");
20 if (!count(
$xml->OrgUnit)) {
21 $this->
addError(
"no_orgunit", null, null);
25 foreach (
$xml->OrgUnit as $o) {
38 $external_id = $o->external_id;
48 $this->
addWarning(
"cannot_change_root_node", $ou_id?$ou_id:$external_id,
$action);
52 if ($ou_parent_id ==
"__ILIAS") {
54 $ou_parent_id_type =
"reference_id";
57 $ref_id = $this->
buildRef($ou_id, $ou_id_type);
58 $parent_ref_id = $this->
buildRef($ou_parent_id, $ou_parent_id_type);
61 if (!$parent_ref_id) {
62 $this->
addError(
"ou_parent_id_not_valid", $ou_id?$ou_id:$external_id,
$action);
66 $this->
addError(
"ou_id_not_valid", $ou_id?$ou_id:$external_id,
$action);
71 $ru->deleteObjects($parent_ref_id,
array($ref_id)) !==
false;
72 $this->stats[
"deleted"]++;
77 } elseif (
$action ==
"update") {
78 if (!$parent_ref_id) {
79 $this->
addError(
"ou_parent_id_not_valid", $ou_id?$ou_id:$external_id,
$action);
83 $this->
addError(
"ou_id_not_valid", $ou_id?$ou_id:$external_id,
$action);
89 $arrTranslations = $object->getTranslations();
94 $object->setImportId($external_id);
95 $this->
moveObject($ref_id, $parent_ref_id, $ou_id, $external_id);
97 $this->stats[
"updated"]++;
98 } elseif (
$action ==
"create") {
99 if (!$parent_ref_id) {
100 $this->
addError(
"ou_parent_id_not_valid", $ou_id?$ou_id:$external_id,
$action);
106 $this->
addError(
"ou_external_id_exists", $ou_id?$ou_id:$external_id,
$action);
111 $object->setTitle(
$title);
113 $object->setImportId($external_id);
115 $object->createReference();
116 $object->putInTree($parent_ref_id);
117 $object->setPermissions($ou_parent_id);
118 $this->stats[
"created"]++;
130 protected function moveObject($ref_id, $parent_ref_id, $ou_id, $external_id)
133 $tree = $DIC[
'tree'];
134 if ($parent_ref_id != $tree->getParentId($ref_id)) {
136 $path = $tree->getPathId($parent_ref_id);
137 if (in_array($ref_id,
$path)) {
138 $this->
addWarning(
"not_movable_to_subtree", $ou_id?$ou_id:$external_id,
"update");
140 $tree->moveTree($ref_id, $parent_ref_id);
145 $this->
addWarning(
"not_movable", $ou_id?$ou_id:$external_id,
"update");
146 $ilLog->write($e->getMessage() .
"\\n" . $e->getTraceAsString());
147 error_log($e->getMessage() .
"\\n" . $e->getTraceAsString());
static _hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
Repository Utilities (application layer, put GUI related stuff into ilRepUtilGUI) ...
moveObject($ref_id, $parent_ref_id, $ou_id, $external_id)
addWarning($lang_var, $import_id, $action=null)
addError($lang_var, $import_id, $action=null)
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
Class ilOrgUnitSimpleImport.
simpleImportElement(SimpleXMLElement $o)
static _lookupObjIdByImportId($a_import_id)