Skip to content
Snippets Groups Projects
Select Git revision
  • fd79ab0950d2a2ee711d1d6d785f4aeb2ba916b0
  • main default protected
  • studip-rector
  • ci-opt
  • course-members-export-as-word
  • data-vue-app
  • pipeline-improvements
  • webpack-optimizations
  • rector
  • icon-renewal
  • http-client-and-factories
  • jsonapi-atomic-operations
  • vueify-messages
  • tic-2341
  • 135-translatable-study-areas
  • extensible-sorm-action-parameters
  • sorm-configuration-trait
  • jsonapi-mvv-routes
  • docblocks-for-magic-methods
19 results

BasicDataWizardStep.php

Blame
  • Forked from Stud.IP / Stud.IP
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    CoursewareModule.class.php 8.35 KiB
    <?php
    
    use Courseware\Instance;
    use Courseware\StructuralElement;
    
    class CoursewareModule extends CorePlugin implements SystemPlugin, StudipModule, PrivacyPlugin
    {
        /**
         * {@inheritdoc}
         */
        public function __construct()
        {
            parent::__construct();
    
            NotificationCenter::on('UserDidDelete', function ($event, $user) {
                Instance::deleteForRange($user);
            });
            NotificationCenter::on('CourseDidDelete', function ($event, $course) {
                Instance::deleteForRange($course);
            });
        }
    
        /**
         * {@inheritdoc}
         *
         * @SuppressWarnings(PHPMD.UnusedFormalParameter)
         */
        public function getInfoTemplate($courseId)
        {
            return null;
        }
    
        /**
         * {@inheritdoc}
         */
        public function getTabNavigation($courseId)
        {
            $navigation = new Navigation(
                _('Courseware'),
                URLHelper::getURL('dispatch.php/course/courseware/?cid='.$courseId)
            );
            $navigation->addSubNavigation(
                'content',
                new Navigation(_('Inhalt'), 'dispatch.php/course/courseware/?cid='.$courseId)
            );
            $navigation->addSubNavigation(
                'dashboard',
                new Navigation(_('Übersicht'), 'dispatch.php/course/courseware/dashboard?cid='.$courseId)
            );
    
            if ($GLOBALS['perm']->have_studip_perm('dozent', $courseId)) {
                $navigation->addSubNavigation(
                    'manager',
                    new Navigation(_('Verwaltung'), 'dispatch.php/course/courseware/manager?cid='.$courseId)
                );
            } else {
                $element = StructuralElement::getCoursewareCourse($courseId);
                if ($element !== null) {
                    $instance = new Instance($element);
                    if ($GLOBALS['perm']->have_studip_perm($instance->getEditingPermissionLevel(), $courseId)) {
                        $navigation->addSubNavigation(
                            'manager',
                            new Navigation(_('Verwaltung'), 'dispatch.php/course/courseware/manager?cid='.$courseId)
                        );
                    }
                }
            }
    
            return ['courseware' => $navigation];
        }