diff options
| author | Arne Schröder, M. A. <schroeder@data-quest.de> | 2025-09-23 11:09:47 +0000 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2025-09-23 11:09:47 +0000 |
| commit | bce4fd828ec7ca81f872e58b0afa05ca0ae36ea7 (patch) | |
| tree | da2350dda7159592146a3650d7a5b9757ee15025 | |
| parent | 7c79dab1970770fc69deabb17ac108c82e7d6f3b (diff) | |
Resolve "ILIAS-Schnittstelle: Prüfung nach bestehender Einrichtung schlägt fehl"
Closes #5882
Merge request studip/studip!4485
| -rw-r--r-- | lib/ilias_interface/ConnectedIlias.php | 47 |
1 files changed, 20 insertions, 27 deletions
diff --git a/lib/ilias_interface/ConnectedIlias.php b/lib/ilias_interface/ConnectedIlias.php index 78538e5..e6c4f27 100644 --- a/lib/ilias_interface/ConnectedIlias.php +++ b/lib/ilias_interface/ConnectedIlias.php @@ -1319,7 +1319,7 @@ class ConnectedIlias if ( !empty($this->ilias_config['cat_faculty']) && empty($faculty_ref_id) - && $course->home_institut->id !== $course->home_institut->fakultaets_id + && !$course->home_institut->isFaculty() ) { $object_data['title'] = $course->home_institut->faculty->name; $object_data['description'] = sprintf(_('Hier befinden sich die Einrichtungen der Stud.IP-Fakultät "%s".'), $course->home_institut->faculty->name); @@ -1332,16 +1332,12 @@ class ConnectedIlias $parent_type = 'faculty'; $parent_id = $course->home_institut->fakultaets_id; $ref_id = $faculty_ref_id; - $institute_ref_id = IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, $parent_id, 'cat', $this->index) - ?: IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, '', 'cat', $this->index); } else { $this->error[] = sprintf(_('ILIAS-Kategorie %s konnte nicht angelegt werden.'), $object_data["title"]); } } - $institute_ref_id = IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, $parent_id, 'cat', $this->index); - if (!$institute_ref_id) { - $institute_ref_id = IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, '', 'cat', $this->index); - } + $institute_ref_id = IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, $parent_id, 'cat', $this->index) + ?: IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, '', 'cat', $this->index); if (!$institute_ref_id) { $object_data['title'] = $course->home_institut->name; $object_data['description'] = sprintf(_('Hier befinden sich die Veranstaltungsdaten zur Stud.IP-Einrichtung "%s".'), $course->home_institut->name); @@ -1371,28 +1367,25 @@ class ConnectedIlias $parent_id = $course->home_institut->fakultaets_id; $ref_id = $faculty_ref_id; } - } else { - $institute_ref_id = IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, 'root_category', 'cat', $this->index) - ?: IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, '', 'cat', $this->index); - } - if (!empty($this->ilias_config['cat_faculty']) && empty($faculty_ref_id) && ($course->home_institut->id != $course->home_institut->fakultaets_id)) { - $object_data['title'] = $course->home_institut->faculty->name; - $object_data['description'] = sprintf(_('Hier befinden sich die Einrichtungen der Stud.IP-Fakultät "%s".'), $course->home_institut->faculty->name); - $object_data['type'] = 'cat'; - $object_data['owner'] = $this->soap_client->LookupUser($this->ilias_config['admin']); - $faculty_ref_id = $this->soap_client->addObject($object_data, $ref_id); - if ($faculty_ref_id) { - // store faculty category - IliasObjectConnections::setConnection($course->home_institut->fakultaets_id, $faculty_ref_id, 'cat', $this->index, 'faculty', $parent_id, $parent_type); - $parent_type = 'faculty'; - $parent_id = $course->home_institut->fakultaets_id; - $ref_id = $faculty_ref_id; - $institute_ref_id = IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, $parent_id, 'cat', $this->index) - ?: IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, '', 'cat', $this->index); - } else { - $this->error[] = sprintf(_('ILIAS-Kategorie %s konnte nicht angelegt werden.'), $object_data["title"]); + if (empty($faculty_ref_id) && !$course->home_institut->isFaculty()) { + $object_data['title'] = $course->home_institut->faculty->name; + $object_data['description'] = sprintf(_('Hier befinden sich die Einrichtungen der Stud.IP-Fakultät "%s".'), $course->home_institut->faculty->name); + $object_data['type'] = 'cat'; + $object_data['owner'] = $this->soap_client->LookupUser($this->ilias_config['admin']); + $faculty_ref_id = $this->soap_client->addObject($object_data, $ref_id); + if ($faculty_ref_id) { + // store faculty category + IliasObjectConnections::setConnection($course->home_institut->fakultaets_id, $faculty_ref_id, 'cat', $this->index, 'faculty', $parent_id, $parent_type); + $parent_type = 'faculty'; + $parent_id = $course->home_institut->fakultaets_id; + $ref_id = $faculty_ref_id; + } else { + $this->error[] = sprintf(_('ILIAS-Kategorie %s konnte nicht angelegt werden.'), $object_data["title"]); + } } } + $institute_ref_id = IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, $parent_id, 'cat', $this->index) + ?: IliasObjectConnections::getExactConnectionModuleId($course->home_institut->id, '', 'cat', $this->index); if (!$institute_ref_id) { $object_data['title'] = $course->home_institut->name; $object_data['description'] = sprintf(_('Hier befinden sich die Veranstaltungsdaten zur Stud.IP-Einrichtung "%s".'), $course->home_institut->name); |
