@@ -109,9 +109,7 @@ public static function getPlaylistVideos($playlist_id, $filters)
109
109
$ sql .= ' INNER JOIN oc_playlist_seminar AS ops ON (ops.seminar_id = :cid AND ops.playlist_id = opv.playlist_id) ' .
110
110
' LEFT JOIN oc_playlist_seminar_video AS opsv ON (opsv.playlist_seminar_id = ops.id AND opsv.video_id = opv.video_id) ' ;
111
111
112
- $ where = ' WHERE (opsv.visibility IS NULL AND opsv.visible_timestamp IS NULL AND ops.visibility = "visible"
113
- OR opsv.visibility = "visible" AND opsv.visible_timestamp IS NULL
114
- OR opsv.visible_timestamp < NOW()) ' ;
112
+ $ where = ' WHERE ' . self ::getVisibilitySql ();
115
113
116
114
$ params [':cid ' ] = $ cid ;
117
115
}
@@ -152,9 +150,7 @@ public static function getCourseVideos($course_id, $filters)
152
150
if (!$ perm ->have_studip_perm ($ required_course_perm , $ course_id )) {
153
151
$ sql .= ' LEFT JOIN oc_playlist_seminar_video AS opsv ON (opsv.playlist_seminar_id = ops.id AND opsv.video_id = opv.video_id) ' ;
154
152
155
- $ where = ' WHERE (opsv.visibility IS NULL AND opsv.visible_timestamp IS NULL AND ops.visibility = "visible"
156
- OR opsv.visibility = "visible" AND opsv.visible_timestamp IS NULL
157
- OR opsv.visible_timestamp < NOW()) ' ;
153
+ $ where = ' WHERE ' . self ::getVisibilitySql ();
158
154
}
159
155
160
156
$ query = [
@@ -166,6 +162,23 @@ public static function getCourseVideos($course_id, $filters)
166
162
return self ::getFilteredVideos ($ query , $ filters );
167
163
}
168
164
165
+ private static function getVisibilitySql ()
166
+ {
167
+ // if each video has to explicitly set to visible, filter out everything else
168
+ if (\Config::get ()->OPENCAST_HIDE_EPISODES ) {
169
+ return '(
170
+ (opsv.visibility = "visible" AND opsv.visible_timestamp IS NULL)
171
+ OR (opsv.visible_timestamp < NOW())
172
+ ) ' ;
173
+ } else {
174
+ return '(
175
+ (opsv.visibility IS NULL AND opsv.visible_timestamp IS NULL AND ops.visibility = "visible")
176
+ OR (opsv.visibility = "visible" AND opsv.visible_timestamp IS NULL)
177
+ OR (opsv.visible_timestamp < NOW())
178
+ ) ' ;
179
+ }
180
+ }
181
+
169
182
/**
170
183
* Get the list of videos where the user has owner perm, faceted by the passed filters
171
184
*
@@ -484,9 +497,7 @@ public static function getNumberOfNewCourseVideos($course_id, $last_visit, $user
484
497
if (!$ perm ->have_perm ('dozent ' , $ user_id )) {
485
498
$ sql .= ' LEFT JOIN oc_playlist_seminar_video AS opsv ON (opsv.playlist_seminar_id = ops.id AND opsv.video_id = opv.video_id) ' ;
486
499
487
- $ where .= ' AND (opsv.visibility IS NULL AND opsv.visible_timestamp IS NULL AND ops.visibility = "visible"
488
- OR opsv.visibility = "visible" AND opsv.visible_timestamp IS NULL
489
- OR opsv.visible_timestamp < NOW()) ' ;
500
+ $ where .= ' AND ' . self ::getVisibilitySql ();
490
501
}
491
502
492
503
$ sql .= $ where ;
0 commit comments