diff options
Diffstat (limited to 'lib/modules/IliasInterfaceModule.class.php')
| -rw-r--r-- | lib/modules/IliasInterfaceModule.class.php | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/lib/modules/IliasInterfaceModule.class.php b/lib/modules/IliasInterfaceModule.class.php deleted file mode 100644 index a8cafbf..0000000 --- a/lib/modules/IliasInterfaceModule.class.php +++ /dev/null @@ -1,164 +0,0 @@ -<?php -/** - * Ilias Interface - navigation and meta data - * - * @author André Noack <noack@data-quest.de> - * @copyright 2019 Stud.IP Core-Group - * @license GPL version 2 or any later version - * @since 4.3 - */ - -class IliasInterfaceModule extends CorePlugin implements StudipModule, SystemPlugin -{ - public function __construct() - { - parent::__construct(); - if (Config::get()->ILIAS_INTERFACE_ENABLE) { - $ilias_interface_config = Config::get()->ILIAS_INTERFACE_BASIC_SETTINGS; - if (Seminar_Perm::get()->have_perm('root')) { - Navigation::addItem('/admin/config/ilias_interface', - new Navigation(_('ILIAS-Schnittstelle'), 'dispatch.php/admin/ilias_interface')); - } - if (Seminar_Perm::get()->have_perm('tutor') || (Seminar_Perm::get()->have_perm('autor') && array_key_exists('show_tools_page', $ilias_interface_config) && $ilias_interface_config['show_tools_page'])) { - $ilias = new Navigation(_('ILIAS'), 'dispatch.php/my_ilias_accounts'); - $ilias->setImage(Icon::create('ilias')); - $ilias->setDescription(_('Schnittstelle zu ILIAS')); - Navigation::addItem('/contents/my_ilias_accounts', $ilias); - } - } - } - - public function isActivatableForContext(Range $context) - { - return Config::get()->ILIAS_INTERFACE_ENABLE && $context->getRangeType() === 'course'; - } - - public function getInfoTemplate($course_id) - { - return null; - } - - public function getIconNavigation($course_id, $last_visit, $user_id) - { - if (!Config::get()->ILIAS_INTERFACE_ENABLE) { - return; - } - - $sql = "SELECT COUNT(IF(a.module_type != 'crs', module_id, NULL)) AS count_modules, - COUNT(IF(a.module_type = 'crs', module_id, NULL)) AS count_courses, - COUNT(IF((chdate > IFNULL(b.visitdate, :threshold) AND a.module_type != 'crs'), module_id, NULL)) AS neue - FROM object_contentmodules AS a - LEFT JOIN object_user_visits AS b - ON b.object_id = a.object_id - AND b.user_id = :user_id - AND b.plugin_id = :plugin_id - WHERE a.object_id = :course_id - GROUP BY a.object_id"; - - $statement = DBManager::get()->prepare($sql); - $statement->bindValue(':user_id', $user_id); - $statement->bindValue(':course_id', $course_id); - $statement->bindValue(':threshold', $last_visit); - $statement->bindValue(':plugin_id', $this->getPluginId()); - $statement->execute(); - $result = $statement->fetch(PDO::FETCH_ASSOC); - - if (!$result) { - return null; - } - - $title = CourseConfig::get($course_id)->getValue('ILIAS_INTERFACE_MODULETITLE'); - $nav = new Navigation($title, 'dispatch.php/course/ilias_interface/index'); - if ($result['neue']) { - $nav->setImage(Icon::create('learnmodule', Icon::ROLE_ATTENTION), [ - 'title' => sprintf( - ngettext( - '%1$d Lernobjekt, %2$d neues', - '%1$d Lernobjekte, %2$d neue', - $result['count_modules'] - ), - $result['count_modules'], - $result['neue'] - ) - ]); - } elseif ($result['count_modules']) { - $nav->setImage(Icon::create('learnmodule', Icon::ROLE_CLICKABLE), [ - 'title' => sprintf( - ngettext( - '%d Lernobjekt', - '%d Lernobjekte', - $result['count_modules'] - ), - $result['count_modules'] - ) - ]); - } elseif ($result['count_courses']) { - $nav->setImage(Icon::create('learnmodule', Icon::ROLE_CLICKABLE), [ - 'title' => sprintf( - ngettext( - '%d ILIAS-Kurs', - '%d ILIAS-Kurse', - $result['count_courses'] - ), - $result['count_courses'] - ) - ]); - } - return $nav; - } - - public function getTabNavigation($course_id) - { - if (!Config::get()->ILIAS_INTERFACE_ENABLE) { - return null; - } - $ilias_interface_config = Config::get()->ILIAS_INTERFACE_BASIC_SETTINGS; - if (count($ilias_interface_config) === 0) { - return null; - } - - $moduletitle = Config::get()->ILIAS_INTERFACE_MODULETITLE; - if ($ilias_interface_config['edit_moduletitle']) { - $moduletitle = CourseConfig::get($course_id)->ILIAS_INTERFACE_MODULETITLE; - } - - $navigation = new Navigation($moduletitle); - $navigation->setImage(Icon::create('learnmodule', Icon::ROLE_INFO_ALT)); - $navigation->setActiveImage(Icon::create('learnmodule', Icon::ROLE_INFO)); - if ($GLOBALS['perm']->have_studip_perm('tutor', $course_id) || ($GLOBALS['perm']->have_studip_perm('autor', $course_id) && IliasObjectConnections::isCourseConnected($course_id))) { - if (get_object_type($course_id, ['inst'])) { - $navigation->addSubNavigation('view', new Navigation(_('Lernobjekte dieser Einrichtung'), 'dispatch.php/course/ilias_interface/index/' . $course_id)); - } else { - $navigation->addSubNavigation('view', new Navigation(_('Lernobjekte dieser Veranstaltung'), 'dispatch.php/course/ilias_interface/index/' . $course_id)); - } - } - - return ['ilias_interface' => $navigation]; - } - - /** - * @see StudipModule::getMetadata() - */ - public function getMetadata() - { - return [ - 'summary' => _('Zugang zu extern erstellten ILIAS-Lernobjekten'), - 'description' => _('Über diese Schnittstelle ist es möglich, Lernobjekte aus ' . - 'einer ILIAS-Installation (ILIAS-Version >= 5.3.8) in Stud.IP zur Verfügung ' . - 'zu stellen. Lehrende haben die Möglichkeit, in ' . - 'ILIAS Selbstlerneinheiten zu erstellen und in Stud.IP bereit zu stellen.'), - 'displayname' => _('ILIAS-Schnittstelle'), - 'category' => _('Inhalte und Aufgabenstellungen'), - 'keywords' => _('Einbindung von ILIAS-Lernobjekten; - Zugang zu ILIAS; - Aufgaben- und Test-Erstellung'), - 'icon' => Icon::create('learnmodule', Icon::ROLE_INFO), - 'icon_clickable' => Icon::create('learnmodule', Icon::ROLE_CLICKABLE), - 'descriptionshort' => _('Zugang zu extern erstellten ILIAS-Lernobjekten'), - 'descriptionlong' => _('Über diese Schnittstelle ist es möglich, Lernobjekte aus ' . - 'einer ILIAS-Installation (> 5.3.8) in Stud.IP zur Verfügung ' . - 'zu stellen. Lehrende haben die Möglichkeit, in ' . - 'ILIAS Selbstlerneinheiten zu erstellen und in Stud.IP bereit zu stellen.'), - ]; - } -} |
