aboutsummaryrefslogtreecommitdiff
path: root/lib/models/CourseTopic.php
diff options
context:
space:
mode:
authorMoritz Strohm <strohm@data-quest.de>2024-09-02 07:50:49 +0000
committerMoritz Strohm <strohm@data-quest.de>2024-09-02 07:50:49 +0000
commitf00164f6f8b823872d0934830a466aeb2af7114b (patch)
treee810d56f7ad1ec8f1e1dd17affd0954f5a54aaf0 /lib/models/CourseTopic.php
parentafadde64a6a2017eabb36a3bdef412bb2d2692ba (diff)
StEP 3209, re #3209
Merge request studip/studip!2179
Diffstat (limited to 'lib/models/CourseTopic.php')
-rw-r--r--lib/models/CourseTopic.php28
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 '';