From 4db6ca292d32bc17d13bdc379cda11abd989455d Mon Sep 17 00:00:00 2001 From: Rami Jasim <rami.jasim1@uni-oldenburg.de> Date: Tue, 20 May 2025 13:51:42 +0200 Subject: [PATCH] implement getMany --- ExcalidrawPlugin.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/ExcalidrawPlugin.php b/ExcalidrawPlugin.php index 34b6035..d399995 100644 --- a/ExcalidrawPlugin.php +++ b/ExcalidrawPlugin.php @@ -1,6 +1,26 @@ <?php -class ExcalidrawPlugin extends StudIPPlugin implements StandardPlugin, SystemPlugin +if ( + interface_exists(StudipModuleExtended::class) + && trait_exists(IconNavigationTrait::class) +) { + abstract class ExcalidrawBasePlugin extends StudIPPlugin implements StudipModuleExtended + { + use IconNavigationTrait; + } +} else { + abstract class ExcalidrawBasePlugin extends StudIPPlugin + { + abstract public function getManyIconNavigation(array $course_ids, ?string $user_id = null): array; + + public function getIconNavigation($course_id, $last_visit, $user_id) + { + return $this->getManyIconNavigation([$course_id], $user_id)[$course_id] ?? null; + } + } +} + +class ExcalidrawPlugin extends ExcalidrawBasePlugin implements StandardPlugin, SystemPlugin { public function __construct() { @@ -37,14 +57,14 @@ class ExcalidrawPlugin extends StudIPPlugin implements StandardPlugin, SystemPlu return array('excalidraw' => $tab); } - public function getIconNavigation($course_id, $last_visit, $user_id) + public function getManyIconNavigation(array $course_ids, ?string $user_id = null): array { $navigation = new Navigation( $this->_('Whiteboard (Beta)'), PluginEngine::getURL($this, [], "excalidraw/overview") ); $navigation->setImage(Icon::create('block-canvas', Icon::ROLE_CLICKABLE)); - return $navigation; + return array_fill_keys($course_ids, $navigation); } public function getNotificationObjects($course_id, $since, $user_id) -- GitLab