function getTabNavigation($course_id) { $object_type = get_object_type($course_id, array('sem', 'inst')); if ($object_type === 'sem') { $course = Course::find($course_id); $sem_class = $GLOBALS['SEM_CLASS'][$GLOBALS['SEM_TYPE'][$course->status]['class']] ?: SemClass::getDefaultSemClass(); } else { $institute = Institute::find($course_id); $sem_class = SemClass::getDefaultInstituteClass($institute->type); } $navigation = new Navigation(_('Übersicht')); $navigation->setImage(Icon::create('seminar', 'info_alt')); $navigation->setActiveImage(Icon::create('seminar', 'info')); if ($object_type !== 'sem') { $navigation->addSubNavigation('info', new Navigation(_('Kurzinfo'), 'dispatch.php/institute/overview')); $navigation->addSubNavigation('courses', new Navigation(_('Veranstaltungen'), 'show_bereich.php?level=s&id=' . $course_id)); $navigation->addSubNavigation('schedule', new Navigation(_('Veranstaltungs-Stundenplan'), 'dispatch.php/calendar/instschedule?cid=' . $course_id)); if ($GLOBALS['perm']->have_studip_perm('admin', $course_id)) { $navigation->addSubNavigation('admin', new Navigation(_('Administration der Einrichtung'), 'dispatch.php/institute/basicdata/index?new_inst=TRUE')); } } else { $navigation->addSubNavigation('info', new Navigation(_('Kurzinfo'), 'dispatch.php/course/overview')); if (!$sem_class['studygroup_mode']) { $navigation->addSubNavigation('details', new Navigation(_('Details'), 'dispatch.php/course/details/')); } if (!$course->admission_binding && in_array($GLOBALS['perm']->get_studip_perm($course_id), array('user', 'autor'))) { $navigation->addSubNavigation('leave', new Navigation(_('Austragen aus der Veranstaltung'), 'dispatch.php/my_courses/decline/' . $course_id . '?cmd=suppose_to_kill')); } } return array('main' => $navigation); }
public function before_filter(&$action, &$args) { $this->set_layout($GLOBALS['template_factory']->open('layouts/base_without_infobox')); $this->course = Course::findCurrent(); if (!$this->course) { throw new CheckObjectException(_('Sie haben kein Objekt gewählt.')); } else { if (Navigation::hasItem('/course/admin')) { Navigation::activateItem('/course/admin/seminar_tabs'); } else { if (Navigation::hasItem('/admin/course/seminar_tabs')) { Navigation::activateItem('/admin/course/seminar_tabs'); } } $this->ignore_tabs = array('modules', 'mini_course'); $this->ignore_visibility_tabs = array('admin', 'main'); $this->course_id = $this->course->id; $this->sem = Seminar::getInstance($this->course_id); $sem_class = $GLOBALS['SEM_CLASS'][$GLOBALS['SEM_TYPE'][$this->sem->status]['class']]; $sem_class || ($sem_class = SemClass::getDefaultSemClass()); $this->studygroup_mode = $SEM_CLASS[$SEM_TYPE[$this->sem->status]["class"]]["studygroup_mode"]; } }
/** * Initialize the subnavigation of this item. This method * is called once before the first item is added or removed. */ public function initSubNavigation() { global $SEM_CLASS, $SEM_TYPE; global $SessSemName, $user; parent::initSubNavigation(); // list of used modules $Modules = new Modules(); $modules = $Modules->getLocalModules($SessSemName[1], $SessSemName['class'], false, $SessSemName['art_num']); if ($SessSemName['class'] === 'sem') { $sem_class = $SEM_CLASS[$SEM_TYPE[$SessSemName['art_num']]['class']] ?: SemClass::getDefaultSemClass(); } else { $sem_class = SemClass::getDefaultInstituteClass($SessSemName['art_num']); } // general information if (($modules['overview'] || $sem_class->isSlotMandatory("overview")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("overview"))) { foreach ($sem_class->getNavigationForSlot("overview") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // admin area if (($modules['admin'] || $sem_class->isSlotMandatory("admin")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("admin"))) { foreach ($sem_class->getNavigationForSlot("admin") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // forum if (($modules['forum'] || $sem_class->isSlotMandatory("forum")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("forum"))) { foreach ($sem_class->getNavigationForSlot("forum") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // participants if ($user->id != 'nobody') { if ($modules['personal']) { $navigation = new Navigation(_('Personal')); $navigation->setImage(Icon::create('persons', 'info_alt')); $navigation->setActiveImage(Icon::create('persons', 'info')); $navigation->addSubNavigation('view', new Navigation(_('MitarbeiterInnen'), 'dispatch.php/institute/members')); if ($GLOBALS['perm']->have_studip_perm('tutor', $_SESSION['SessionSeminar']) && $GLOBALS['perm']->have_perm('admin')) { $navigation->addSubNavigation('edit_groups', new Navigation(_('Funktionen / Gruppen verwalten'), 'dispatch.php/admin/statusgroups')); } $this->addSubNavigation('faculty', $navigation); } if (($modules['participants'] || $sem_class->isSlotMandatory("participants")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("participants"))) { foreach ($sem_class->getNavigationForSlot("participants") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } } // files if (($modules['documents'] || $sem_class->isSlotMandatory("documents")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("documents"))) { foreach ($sem_class->getNavigationForSlot("documents") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // schedule if (($modules['schedule'] || $sem_class->isSlotMandatory("schedule")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("schedule"))) { foreach ($sem_class->getNavigationForSlot("schedule") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // information page if (($modules['scm'] || $sem_class->isSlotMandatory("scm")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("scm"))) { foreach ($sem_class->getNavigationForSlot("scm") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // literature if (($modules['literature'] || $sem_class->isSlotMandatory("literature")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("literature"))) { foreach ($sem_class->getNavigationForSlot("literature") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // wiki if (($modules['wiki'] || $sem_class->isSlotMandatory("wiki")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("wiki"))) { foreach ($sem_class->getNavigationForSlot("wiki") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // resources if (($modules['resources'] || $sem_class->isSlotMandatory("resources")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("resources"))) { foreach ($sem_class->getNavigationForSlot("resources") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // calendar if (($modules['calendar'] || $sem_class->isSlotMandatory("calendar")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("calendar"))) { foreach ($sem_class->getNavigationForSlot("calendar") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } // content modules if (($modules['elearning_interface'] || $sem_class->isSlotMandatory("elearning_interface")) && $sem_class->isModuleAllowed($sem_class->getSlotModule("elearning_interface"))) { foreach ($sem_class->getNavigationForSlot("elearning_interface") as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } //plugins $standard_plugins = PluginManager::getInstance()->getPlugins("StandardPlugin", $_SESSION['SessionSeminar']); foreach ($standard_plugins as $plugin) { if (!$sem_class->isSlotModule(get_class($plugin))) { foreach ($sem_class->getNavigationForSlot(get_class($plugin)) as $nav_name => $navigation) { if ($nav_name && is_a($navigation, "Navigation")) { $this->addSubNavigation($nav_name, $navigation); } } } } }
public function getClass() { return $GLOBALS['SEM_CLASS'][$this->data['class']] ?: SemClass::getDefaultSemClass(); }