From 2146bccb704d871c3ca2fcf189889ac4b212412a Mon Sep 17 00:00:00 2001 From: srahn Date: Fri, 1 Sep 2023 10:26:44 +0200 Subject: [PATCH] Make sure a course mediaupload isnt added to default playlist --- lib/Models/Videos.php | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/Models/Videos.php b/lib/Models/Videos.php index 6b7fdc554..0430cee24 100644 --- a/lib/Models/Videos.php +++ b/lib/Models/Videos.php @@ -789,15 +789,25 @@ public static function addToCoursePlaylist($eventType, $episode, $video) // get the courses this series belongs to $series = SeminarSeries::findBySeries_id($episode->is_part_of); foreach ($series as $s) { - $playlist = Helpers::checkCoursePlaylist($s['seminar_id']); - - $pvideo = PlaylistVideos::findOneBySQL('video_id = ? AND playlist_id = ?', [$video->id, $playlist->id]); - - if (empty($pvideo)) { - $pvideo = new PlaylistVideos(); - $pvideo->video_id = $video->id; - $pvideo->playlist_id = $playlist->id; - $pvideo->store(); + // Only add video to default playlist if it is not connected to a different playlist in this course + $stmt = \DBManager::get()->prepare($sql = 'SELECT count(*) FROM oc_playlist_seminar + INNER JOIN oc_playlist_video ON (oc_playlist_video.playlist_id = oc_playlist_seminar.playlist_id) + WHERE oc_playlist_seminar.seminar_id = ? + AND oc_playlist_video.video_id = ? + '); + $stmt->execute([$video->id, $s['seminar_id']]); + if ($stmt->fetchColumn() == 0) { + // Add video to default playlist here + $playlist = Helpers::checkCoursePlaylist($s['seminar_id']); + + $pvideo = PlaylistVideos::findOneBySQL('video_id = ? AND playlist_id = ?', [$video->id, $playlist->id]); + + if (empty($pvideo)) { + $pvideo = new PlaylistVideos(); + $pvideo->video_id = $video->id; + $pvideo->playlist_id = $playlist->id; + $pvideo->store(); + } } } }