diff options
| author | Moritz Strohm <strohm@data-quest.de> | 2024-09-02 07:50:49 +0000 |
|---|---|---|
| committer | Moritz Strohm <strohm@data-quest.de> | 2024-09-02 07:50:49 +0000 |
| commit | f00164f6f8b823872d0934830a466aeb2af7114b (patch) | |
| tree | e810d56f7ad1ec8f1e1dd17affd0954f5a54aaf0 /lib/models/CourseTopic.php | |
| parent | afadde64a6a2017eabb36a3bdef412bb2d2692ba (diff) | |
StEP 3209, re #3209
Merge request studip/studip!2179
Diffstat (limited to 'lib/models/CourseTopic.php')
| -rw-r--r-- | lib/models/CourseTopic.php | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/lib/models/CourseTopic.php b/lib/models/CourseTopic.php index eb26efa..0a0d75d 100644 --- a/lib/models/CourseTopic.php +++ b/lib/models/CourseTopic.php @@ -93,8 +93,8 @@ class CourseTopic extends SimpleORMap public function connectWithDocumentFolder() { if ($this->seminar_id) { - $document_module = Seminar::getInstance($this->seminar_id)->getSlotModule('documents'); - if ($document_module) { + $course = Course::find($this->seminar_id); + if ($course->isToolActive(CoreDocuments::class)) { if (!$this->folders->count()) { $folder = new Folder(); $folder['range_id'] = $this['seminar_id']; @@ -118,10 +118,15 @@ class CourseTopic extends SimpleORMap public function connectWithForumThread() { if ($this->seminar_id) { - $forum_module = Seminar::getInstance($this->seminar_id)->getSlotModule('forum'); - if ($forum_module instanceOf ForumModule) { - $forum_module->setThreadForIssue($this->id, $this->title, $this->description); - return true; + $course = Course::find($this->seminar_id); + try { + $forum_module = $course->getTool(CoreForum::class); + if ($forum_module instanceof ForumModule) { + $forum_module->setThreadForIssue($this->id, $this->title, $this->description); + return true; + } + } catch (\Studip\Exception $e) { + return false; } } return false; @@ -130,9 +135,14 @@ class CourseTopic extends SimpleORMap public function getForumThreadURL() { if ($this->seminar_id) { - $forum_module = Seminar::getInstance($this->seminar_id)->getSlotModule('forum'); - if ($forum_module instanceOf ForumModule) { - return html_entity_decode($forum_module->getLinkToThread($this->id)); + $course = Course::find($this->seminar_id); + try { + $forum_module = $course->getTool(CoreForum::class); + if ($forum_module instanceof ForumModule) { + return html_entity_decode($forum_module->getLinkToThread($this->id)); + } + } catch (\Studip\Exception $e) { + return ''; } } return ''; |
