have_perm('root')) { Navigation::addItem('/admin/config/lti', new Navigation(_('LTI-Tools'), 'dispatch.php/admin/lti')); } NotificationCenter::on('UserDidDelete', function ($event, $user) { LtiGrade::deleteBySQL('user_id = ?', [$user->id]); }); NotificationCenter::on('CourseDidDelete', function ($event, $course) { LtiData::deleteBySQL('course_id = ?', [$course->id]); }); } /** * {@inheritdoc} */ public function getIconNavigation($course_id, $last_visit, $user_id) { if ($user_id === 'nobody') { return null; } $title = CourseConfig::get($course_id)->LTI_TOOL_TITLE; $changed = LtiData::countBySQL('course_id = ? AND chdate > ?', [$course_id, $last_visit]); $icon = $changed ? Icon::create('link-extern', Icon::ROLE_NEW) : Icon::create('link-extern', Icon::ROLE_CLICKABLE); $navigation = new Navigation($title, 'dispatch.php/course/lti'); $navigation->setImage($icon, ['title' => $title]); return $navigation; } /** * {@inheritdoc} */ public function getTabNavigation($course_id) { if ($GLOBALS['user']->id === 'nobody') { return []; } $title = CourseConfig::get($course_id)->LTI_TOOL_TITLE; $grades = LtiData::countBySQL('course_id = ?', [$course_id]); $navigation = new Navigation($title); $navigation->setImage(Icon::create('link-extern', Icon::ROLE_INFO_ALT)); $navigation->setActiveImage(Icon::create('link-extern', Icon::ROLE_INFO)); $navigation->addSubNavigation('index', new Navigation($title, 'dispatch.php/course/lti')); if ($grades) { $navigation->addSubNavigation('grades', new Navigation(_('Ergebnisse'), 'dispatch.php/course/lti/grades')); } return ['lti' => $navigation]; } /** * {@inheritdoc} */ public function getInfoTemplate($course_id) { return null; } /** * {@inheritdoc} */ public function exportUserData(StoredUserData $storage) { $db = DBManager::get(); $data = $db->fetchAll('SELECT * FROM lti_grade WHERE user_id = ?', [$storage->user_id]); $storage->addTabularData(_('LTI-Ergebnisse'), 'lti_grade', $data); } /** * {@inheritdoc} */ public function getMetadata() { return [ 'summary' => _('Verlinkung auf Inhalte in externen Anwendungen (LTI-Tool)'), 'description' => _('Dieses Modul bietet eine Möglichkeit zur Einbindung von externen Tools, '. 'sofern diese den LTI-Standard unterstützen. Ähnlich wie bei der Seite '. '"Informationen" kann ein Titel sowie ein freier Text angegeben werden, der '. 'den Nutzern zur Erläuterung angezeigt wird. Zur Einbindung von Inhalten aus '. 'Fremdsystemen wird die LTI-Schnittstelle in der Version 1.x unterstützt.'), 'category' => _('Kommunikation und Zusammenarbeit'), 'keywords' => _('Einbindung von LTI-Tools (Version 1.x)'), 'icon' => Icon::create('link-extern', Icon::ROLE_INFO), 'screenshots' => [ 'path' => 'assets/images/plus/screenshots/Lti', 'pictures' => [ ['source' => 'Lti_tool_demo.jpg', 'title' => 'Beispiel für Wordpress-Einbindung'] ] ] ]; } }