Skip to content
Snippets Groups Projects
_modul.php 12.6 KiB
Newer Older
<? $modulDeskriptor = $modul->getDeskriptor($display_language ?? null); ?>
<table class="mvv-modul-details default nohover" data-mvv-id="<?= $modul->getId(); ?>" data-mvv-type="modul">
    <colgroup>
        <col width="30%">
        <col width="70%">
    </colgroup>
    <thead>
        <tr>
            <th class="mvv-modul-details-head" data-mvv-field="mvv_modul.code"><?= htmlReady($modul->code) ?></th>
            <th class="mvv-modul-details-head" data-mvv-field="mvv_modul.kp" style="text-align: right;"><?= sprintf("%d CP", $modul->kp) ?></th>
        </tr>
    <? if (!empty($show_synopse) || $modul->fassung_nr): ?>
        <tr>
            <th colspan="2" style="font-weight: normal;">
                <? if ($show_synopse) : ?>
                <?=
                sprintf(_('In der Fassung des <b>%s</b>. Beschlusses vom <b>%s</b> (<b>%s</b>) / Version <b>%s</b>.'),
                    '<span data-mvv-field="mvv_modul.fassung_nr">' . htmlReady($modul->fassung_nr) . '</span>',
                    '<span data-mvv-field="mvv_modul.beschlussdatum">' . date('d.m.Y', $modul->beschlussdatum) . '</span>',
                    '<span data-mvv-field="mvv_modul.fassung_typ">' . htmlReady($GLOBALS['MVV_MODUL']['FASSUNG_TYP'][$modul->fassung_typ]['name']) . '</span>',
                    '<span data-mvv-field="mvv_modul.version">' . htmlReady($modul->version) . '</span>'
                )
                ?>
            <? elseif ($modul->fassung_nr) : ?>
                <?=
                sprintf(_('In der Fassung des <b>%s</b>. Beschlusses vom <b>%s</b>.'),
                    '<span data-mvv-field="mvv_modul.fassung_nr">' . htmlReady($modul->fassung_nr) . '</span>',
                    '<span data-mvv-field="mvv_modul.beschlussdatum">' . date('d.m.Y', $modul->beschlussdatum) . '</span>'
                )
                ?>
                <? endif; ?>
            </th>
        </tr>
    <? endif; ?>
    </thead>
    <tbody>
        <tr>
            <td><strong><?= _('Modulbezeichnung') ?></strong></td>
            <td data-mvv-field="mvv_modul.bezeichnung"><?= htmlReady($modulDeskriptor->bezeichnung) ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Modulcode') ?></strong></td>
            <td data-mvv-field="mvv_modul.code"><?= htmlReady($modul->code) ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Semester der erstmaligen Durchführung') ?></strong></td>
            <td data-mvv-field="mvv_modul.start"><?= htmlReady($startSemester['name'] ?? '') ?></td>
Jan-Hendrik Willms's avatar
Jan-Hendrik Willms committed
        <? if (!empty($instituteName)) : ?>
        <tr>
            <td><strong><?= _('Fachbereich/Institut') ?></strong></td>
            <td data-mvv-field="mvv_modul_inst"><?= htmlReady($instituteName) ?></td>
        </tr>
        <? endif; ?>
        <tr>
            <td><strong><?= _('Verwendet in Studiengängen / Semestern') ?></strong></td>
            <td>
                <? $trails = $modul->getTrails(['StgteilAbschnitt', 'StgteilVersion', 'Studiengang']); ?>
                <? $trails = array_filter($trails, function ($trail) {
                    return $trail['Studiengang']->stat !== 'ausgelaufen';
                }); ?>
                <? if (count($trails)) : ?>
                    <? $pathes = $modul->getPathes($trails, ' > ') ?>
                    <? if (count($pathes) > 9) : ?>
                    <input type="checkbox" class="mvv-cb-more" id="cb_more_studycourses" checked>
                    <? endif; ?>
                    <ul>
                    <? foreach ($pathes as $i => $path) : ?>
                    <? $version = $trails[$i]['StgteilVersion']['version_id'] ?? null;?>
                    <? $statement = DBManager::get()->prepare(
                             'SELECT `mvv_stgteilabschnitt_modul`.`abschnitt_id`  '
                           . 'FROM mvv_stgteilabschnitt_modul LEFT JOIN mvv_stgteilabschnitt USING(abschnitt_id) '
                           . 'WHERE modul_id = ? AND version_id = ?');
                       $statement->execute([$modul->getId(), $version]);
                       $res = $statement->fetchOne();
                       $affect_id = $res['abschnitt_id'] ?? null;
                    ?>
                    <li data-mvv-field="mvv_stgteilabschnitt_modul" data-mvv-id="<?= $affect_id; ?>" data-mvv-cooid="<?= $modul->getId(); ?>">
                        <?= htmlReady($path)?>
                        <? if (empty($download) && count($pathes) > 9 && $i == 4) : ?>
                        <label class="cb-more-label" for="cb_more_studycourses"><?= _('mehr...') ?></label>
                        <? endif; ?>
                    </li>
                    <? endforeach; ?>
                    </ul>
                <? endif; ?>
            </td>
        </tr>
        <tr>
            <td><strong><?= _('Modulverantwortliche/r') ?></strong></td>
            <td>
                <?
                $modulVerantwortung = [];
                foreach ($modul->contact_assignments->orderBy('position', SORT_NUMERIC) as $contact_assignment) {
                    if ($GLOBALS['MVV_MODUL']['PERSONEN_GRUPPEN']['values'][$contact_assignment->category]['visible']) {
                        if (!isset($modulVerantwortung[$contact_assignment->category])) {
                            $modulVerantwortung[$contact_assignment->category] = [
                                'name' => $GLOBALS['MVV_MODUL']['PERSONEN_GRUPPEN']['values'][$contact_assignment->category]['name'],
                                'users' => []
                            ];
                        }
                        $modulVerantwortung[$contact_assignment->category]['contacts'][$contact_assignment->contact_id] = [
                            'name' => $contact_assignment->contact->getDisplayName(),
                            'id' => $contact_assignment->contact_id
                        ];
                    }
                }
                ?>
                <? foreach ($modulVerantwortung as $group): ?>
                    <? foreach ($group['contacts'] as $contact): ?>
                        <div data-mvv-field="mvv_modul_user" data-mvv-coid="<?= $contact['id'] ?>">
                            <?= htmlReady($contact['name']) ?> (<?= htmlReady($group['name']) ?>)
                        </div>
                    <? endforeach; ?>
                <? endforeach; ?>
            </td>
        </tr>
    <? if (trim($modulDeskriptor->verantwortlich)): ?>
        <tr>
            <td><strong><?= _('Weitere verantwortliche Personen') ?></strong></td>
            <td>
                <?= formatReady($modulDeskriptor->verantwortlich) ?>
            </td>
        </tr>
    <? endif; ?>
        <tr>
            <td><strong><?= _('Teilnahmevoraussetzungen') ?></strong></td>
            <td data-mvv-field="mvv_modul_deskriptor.voraussetzung"><?= formatReady($modulDeskriptor->voraussetzung) ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Kompetenzziele') ?></strong></td>
            <td data-mvv-field="mvv_modul_deskriptor.kompetenzziele"><?= formatReady($modulDeskriptor->kompetenzziele) ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Modulinhalte') ?></strong></td>
            <td data-mvv-field="mvv_modul_deskriptor.inhalte"><?= formatReady($modulDeskriptor->inhalte) ?></td>
        </tr>
Jan-Hendrik Willms's avatar
Jan-Hendrik Willms committed
        <? if (!isset($type) || $type !== 3) : ?>
        <tr>
            <td><strong><?= ngettext('Lehrveranstaltungsform', 'Lehrveranstaltungsformen', count($modul->modulteile)) ?></strong></td>
            <td data-mvv-field="mvv_modulteil_deskriptor.lernlehrform">
            <? foreach ($modul->modulteile as $modulteil) : ?>
                <? if (trim($modulteil->lernlehrform)) : ?>
                <?= $GLOBALS['MVV_MODULTEIL']['LERNLEHRFORM']['values'][$modulteil->lernlehrform]['name'] ?>
                    <? if (trim($modulteil->sws) && trim($modulteil->sws) != '0') : ?>
                        (<?= htmlReady($modulteil->sws) . ' ' . _('SWS') ?>)
                    <? endif; ?>
                    <br>
                <? endif; ?>
            <? endforeach; ?>
            </td>
        </tr>
        <? endif; ?>
        <tr>
            <td><strong><?= ngettext('Unterrichtssprache', 'Unterrichtsprachen', sizeof($modul->languages)) ?></strong></td>
            <td data-mvv-field="mvv_modul_language">
                <?= htmlReady(implode(', ', $modul->languages->map(function ($m) { return $m->getDisplayName(); }))); ?>
            </td>
        </tr>
        <tr>
            <td><strong><?= _('Dauer in Semestern') ?></strong></td>
            <td data-mvv-field="mvv_modul.dauer"><?= htmlReady($modul->dauer) ?> <?= _('Semester') ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Angebotsrhythmus Modul') ?></strong></td>
            <td data-mvv-field="mvv_modul_deskriptor.turnus"><?= htmlReady($modulDeskriptor->turnus) ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Aufnahmekapazität Modul') ?></strong></td>
            <td data-mvv-field="mvv_modul.kapazitaet"><?= htmlReady(trim($modul->kapazitaet)) ?: _('unbegrenzt') ?> <?= MVVController::trim($modulDeskriptor->kommentar_kapazitaet) ? sprintf("(%s)", formatReady($modulDeskriptor->kommentar_kapazitaet)) : '' ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Prüfungsebene') ?></strong></td>
Jan-Hendrik Willms's avatar
Jan-Hendrik Willms committed
            <td data-mvv-field="mvv_modul.pruef_ebene"><?= htmlReady($pruefungsEbene ?? '') ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Credit-Points') ?></strong></td>
            <td data-mvv-field="mvv_modul.kp"><?= sprintf("%d CP", htmlReady($modul->kp)) ?></td>
        </tr>
        <tr>
            <td><strong><?= _('Modulabschlussnote') ?></strong></td>
            <td>
Jan-Hendrik Willms's avatar
Jan-Hendrik Willms committed
                <? if (!isset($type) || $type !== 3) : ?>
                    <? $nummer_modulteil = 1; ?>
                    <? $note = []; ?>
                    <? foreach ($modul->modulteile as $modulteil): ?>
                        <? // Für die Kenntlichmachung der Modulteile in Listen die Nummer des
                        // Modulteils und den ausgewählten Namen verwenden.
                        // Ist keine Nummer vorhanden, dann Durchnummerieren und Standard-
                        // Bezeichnung verwenden.
                        if (trim($modulteil->nummer)) {
                            $num_bezeichnung = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['values'][$modulteil->num_bezeichnung]['name'];
                            $note[] = sprintf('%s %s: %s%%',
                                    '<span data-mvv-id="'. $modulteil->getId().'" data-mvv-type="modulteil">' .
                                    '<span data-mvv-field="mvv_modulteil.num_bezeichnung">' . htmlReady($num_bezeichnung) . '</span>',
                                    '<span data-mvv-field="mvv_modulteil.nummer">' . htmlReady($modulteil->nummer) . '</span>',
                                    '<span data-mvv-field="mvv_modulteil.anteil_note">' . htmlReady($modulteil->anteil_note) . '</span>' .
                                    '</span>'
                                    );
                        } else {
                            $num_bezeichnung_default = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['default'];
                            $note[] = sprintf('%s %d: %s%%',
                                    htmlReady($GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['values'][$num_bezeichnung_default]['name']),
                                    htmlReady($nummer_modulteil),
                                    htmlReady($modulteil->anteil_note)
                                    );
                            $nummer_modulteil++;
                        } ?>
                    <? endforeach; ?>
                    <? if (count($note)) : ?>
                        <?= implode('; ', $note) . '. ' ?>
                    <? endif; ?>
                <? endif; ?>
                <?= formatReady(trim($modulDeskriptor->kommentar_note)) ?>
            </td>
        </tr>
        <tr>
            <td><strong><?= _('Faktor der Modulnote für die Endnote des Studiengangs') ?></strong></td>
            <td data-mvv-field="mvv_modul.faktor_note"><?= htmlReady($modul->faktor_note) ?></td>
        </tr>
        <? if (trim($modulDeskriptor->kommentar)) : ?>
        <tr>
            <td><strong><?= _('Hinweise') ?></strong></td>
            <td data-mvv-field="mvv_modul_deskriptor.kommentar"><?= formatReady($modulDeskriptor->kommentar) ?></td>
        </tr>
        <? endif; ?>
        <? foreach ($modulDeskriptor->datafields as $entry) : ?>
        <? $df = $entry->getTypedDatafield(); ?>
        <tr>
            <td><strong><?= htmlReady($df->getName()) ?></strong></td>
            <td><?= $df->getDisplayValue(); ?></td>
        </tr>
        <? endforeach; ?>
    </tbody>
</table>