virtUOS / courseware

Interaktive multimediale Lernmodule erstellen und bereitstellen
GNU General Public License v2.0
6 stars 5 forks source link

CourseWare und das Blubber-Icon #252

Closed tleilax closed 2 years ago

tleilax commented 3 years ago

Wir haben häufig diese Art von Fehlermeldungen:

2021/05/07 10:24:11 [error] 15542#15542: *110789635 FastCGI sent in stderr: "PHP message: InvalidArgumentException: navigation item '/course/blubber' not found in lib/navigation/Navigation.php:126
Stack trace:
#0 lib/navigation/Navigation.php(61): Navigation::getItem('/course/blubber')
#1 public/plugins_packages/core/Blubber/controllers/messenger.php(17): Navigation::activateItem('/course/blubber')
#2 vendor/trails/trails.php(557): MessengerController->course_action()
#3 app/controllers/studip_controller.php(110): Trails_Controller->perform('course')
#4 vendor/trails/trails.php(154): StudipController->perform('course')
#5 vendor/trails/trails.php(121): Trails_Dispatcher->map_uri_to_response('messenger/cours...')
#6 lib/plugins/core/StudIPPlugin.class.php(161): Trails_Dispatcher->dispatch('messenger/cours...')
#7 public/plugins.php(54): StudIPPlugin->perform('messenger/cours...')
#8 {main}" while reading response header from upstream, client: 1.2.3.4, server: elearning.uni-oldenburg.de, request: "GET /plugins.php/blubber/messenger/course?cid=30057bcce181e65d57b370cf1d4a3b93&thread=new HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "elearning.uni-oldenburg.de", referrer: "https://elearning.uni-oldenburg.de/dispatch.php/my_courses"

Das kommt daher, dass in der Veranstaltung sowohl Blubber als auch Courseware aktiviert ist. Nach dem, was Nico mir erzählt hat, ist das nicht anders lösbar, da Blubber in Courseware verwendet wird und deshalb geladen sein muss, aber nicht selbst aufgerufen werden kann/soll und dass das Problem nicht trivial lösbar ist.

Meine Idee dazu wäre, in Courseware::getIconNavigation() die Ids der Veranstaltungen zu suchen und dann über das NotificationCenter einen Observer auf PageWillRender setzen und dort entsprechende Styles für die Icons setzen, dass diese ausgeblendet werden. Diese sollten sich ja über die URL identifizieren lassen. Ist nicht unbedingt schön, aber eventuell ein gangbarer Workaround für das Problem.