aboutsummaryrefslogtreecommitdiff
path: root/lib/modules/CoreAdmin.php
diff options
context:
space:
mode:
authorPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
committerPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
commit4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch)
tree5c07151ae61276d334e88f6309c30d439a85c12e /lib/modules/CoreAdmin.php
parentda0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff)
parent97a188592c679890a25c37ab78463add76a52ff7 (diff)
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'lib/modules/CoreAdmin.php')
-rw-r--r--lib/modules/CoreAdmin.php142
1 files changed, 142 insertions, 0 deletions
diff --git a/lib/modules/CoreAdmin.php b/lib/modules/CoreAdmin.php
new file mode 100644
index 0000000..4bf1880
--- /dev/null
+++ b/lib/modules/CoreAdmin.php
@@ -0,0 +1,142 @@
+<?php
+/*
+ * Copyright (c) 2012 Rasmus Fuhse <fuhse@data-quest.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+class CoreAdmin extends CorePlugin implements StudipModule
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function getIconNavigation($course_id, $last_visit, $user_id)
+ {
+ $navigation = new Navigation(_('Verwaltung'), 'dispatch.php/course/management');
+ $navigation->setImage(Icon::create('admin', Icon::ROLE_CLICKABLE, ['title' => _('Verwaltung')]));
+ return $navigation;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getTabNavigation($course_id)
+ {
+ if ($GLOBALS['perm']->have_studip_perm('tutor', $course_id)) {
+ $navigation = new Navigation(_('Verwaltung'));
+ $navigation->setImage(Icon::create('admin', Icon::ROLE_INFO_ALT));
+ $navigation->setActiveImage(Icon::create('admin', Icon::ROLE_INFO));
+
+ $main = new Navigation(_('Werkzeuge'), 'dispatch.php/course/contentmodules');
+ $navigation->addSubNavigation('contentmodules', $main);
+
+ if (!Context::isInstitute()) {
+ $item = new Navigation(_('Grunddaten'), 'dispatch.php/course/basicdata/view/' . $course_id);
+ $item->setImage(Icon::create('edit'));
+ $item->setDescription(_('Bearbeiten der Grundeinstellungen dieser Veranstaltung.'));
+ $navigation->addSubNavigation('details', $item);
+
+ $item = new Navigation(_('Infobild'), 'dispatch.php/avatar/update/course/' . $course_id);
+ $item->setImage(Icon::create('file-pic'));
+ $item->setDescription(_('Infobild dieser Veranstaltung bearbeiten oder löschen.'));
+ $navigation->addSubNavigation('avatar', $item);
+
+ $item = new Navigation(_('Studienbereiche'), 'dispatch.php/course/study_areas/show/' . $course_id);
+ $item->setImage(Icon::create('module'));
+ $item->setDescription(_('Zuordnung dieser Veranstaltung zu Studienbereichen für die Darstellung im Verzeichnis aller Veranstaltungen.'));
+ $navigation->addSubNavigation('study_areas', $item);
+
+ $current_course = Course::find($course_id);
+ if ($current_course && $current_course->getSemClass()->offsetGet('module')) {
+ $item = new Navigation(_('LV-Gruppen'), 'dispatch.php/course/lvgselector/index/' . $course_id, ['list' => 'TRUE']);
+ $item->setImage(Icon::create('learnmodule'));
+ $item->setDescription(_('Zuordnung der Veranstaltung zu Lehrveranstaltungsgruppen um die Einordnung innerhalb des Modulverzeichnisses festzulegen.'));
+ $navigation->addSubNavigation('lvgruppen', $item);
+ }
+
+ $item = new Navigation(_('Zeiten/Räume'), 'dispatch.php/course/timesrooms');
+ $item->setImage(Icon::create('date'));
+ $item->setDescription(_('Regelmäßige Veranstaltungszeiten, Einzeltermine und Ortsangaben ändern.'));
+ $navigation->addSubNavigation('dates', $item);
+
+ $item = new Navigation(_('Zugangsberechtigungen'), 'dispatch.php/course/admission');
+ $item->setImage(Icon::create('lock-locked'));
+ $item->setDescription(_('Zugangsbeschränkungen, Anmeldeverfahren oder einen Passwortschutz für diese Veranstaltung einrichten.'));
+ $navigation->addSubNavigation('admission', $item);
+
+ $item = new AutoNavigation(_('Zusatzangaben'), 'dispatch.php/admin/additional');
+ $item->setImage(Icon::create('add'));
+ $item->setDescription(_('Vorlagen zur Erhebung weiterer Angaben von Teilnehmenden auswählen.'));
+ $navigation->addSubNavigation('additional_data', $item);
+
+ } // endif modules only seminars
+
+ if ($GLOBALS['perm']->have_studip_perm('tutor', $course_id)) {
+ if (Config::get()->VOTE_ENABLE) {
+ $item = new Navigation(_('Fragebögen'), 'dispatch.php/questionnaire/courseoverview');
+ $item->setImage(Icon::create('vote'));
+ $item->setDescription(_('Erstellen und bearbeiten von Fragebögen.'));
+ $navigation->addSubNavigation('questionnaires', $item);
+ }
+ }
+
+ /*
+ * Is the current SemClass available for grouping other courses?
+ * -> show child management
+ */
+ $course = Course::find($course_id);
+ if ($course) {
+ $c = $course->getSemClass();
+ if ($c->isGroup()) {
+
+ $item = new Navigation(_('Unterveranstaltungen'), 'dispatch.php/course/grouping/children');
+ $item->setImage(Icon::create('group', Icon::ROLE_INFO_ALT));
+ $item->setActiveImage(Icon::create('group', Icon::ROLE_INFO));
+ $item->setDescription(_('Ordnen Sie dieser Veranstaltung eine oder mehrere Unterveranstaltungen zu.'));
+ $navigation->addSubNavigation('children', $item);
+
+ /*
+ * Check if any SemClasses with grouping functionality exist at all
+ * -> show parent assignment.
+ */
+ } else if (count(SemClass::getGroupClasses()) > 0) {
+
+ $item = new Navigation(_('Zuordnung zu Hauptveranstaltung'), 'dispatch.php/course/grouping/parent');
+ $item->setImage(Icon::create('group', Icon::ROLE_INFO_ALT));
+ $item->setActiveImage(Icon::create('group', Icon::ROLE_INFO));
+ $item->setDescription(_('Ordnen Sie diese Veranstaltung einer bestehenden ' .
+ 'Hauptveranstaltung zu oder lösen Sie eine bestehende Zuordnung.'));
+ $navigation->addSubNavigation('parent', $item);
+
+ }
+ }
+
+ return ['admin' => $navigation];
+ } else {
+ return [];
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getMetadata()
+ {
+ return [
+ 'displayname' => _('Verwaltung')
+ ];
+ }
+
+ public function isActivatableForContext(Range $context)
+ {
+ return false;
+ }
+
+ public function getInfoTemplate($course_id)
+ {
+ // TODO: Implement getInfoTemplate() method.
+ return null;
+ }
+}