aboutsummaryrefslogtreecommitdiff
path: root/app/views/shared/modul
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+github@gmail.com>2021-07-22 16:07:19 +0200
committerJan-Hendrik Willms <tleilax+github@gmail.com>2021-07-22 16:19:12 +0200
commita3da1483a9e689846179159355badfec8073dbec (patch)
tree770dcca6bdf5f6f2a11b0e7fcbbeda6919a3fc52 /app/views/shared/modul
current code from svn, revision 62608
Diffstat (limited to 'app/views/shared/modul')
-rw-r--r--app/views/shared/modul/_modul.php235
-rw-r--r--app/views/shared/modul/_modul_ohne_lv.php37
-rw-r--r--app/views/shared/modul/_modullv.php102
-rw-r--r--app/views/shared/modul/_modullvs.php82
-rw-r--r--app/views/shared/modul/_pruefungen.php50
-rw-r--r--app/views/shared/modul/_regularien.php38
-rw-r--r--app/views/shared/modul/description.php22
-rw-r--r--app/views/shared/modul/overview.php180
8 files changed, 746 insertions, 0 deletions
diff --git a/app/views/shared/modul/_modul.php b/app/views/shared/modul/_modul.php
new file mode 100644
index 0000000..c953634
--- /dev/null
+++ b/app/views/shared/modul/_modul.php
@@ -0,0 +1,235 @@
+<? $modulDeskriptor = $modul->getDeskriptor($display_language); ?>
+<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 ($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>
+ </tr>
+ <? if ($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'];?>
+ <? $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'];
+ ?>
+ <li data-mvv-field="mvv_stgteilabschnitt_modul" data-mvv-id="<?= $affect_id; ?>" data-mvv-cooid="<?= $modul->getId(); ?>">
+ <?= htmlReady($path)?>
+ <? if (!$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>
+ <? if ($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>
+ <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>
+ <? if ($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>
diff --git a/app/views/shared/modul/_modul_ohne_lv.php b/app/views/shared/modul/_modul_ohne_lv.php
new file mode 100644
index 0000000..07e5310
--- /dev/null
+++ b/app/views/shared/modul/_modul_ohne_lv.php
@@ -0,0 +1,37 @@
+<table class="mvv-modul-details default nohover" data-mvv-id="<?= $modul->getId(); ?>" data-mvv-type="modul">
+ <tbody>
+ <? $modulSumme = $modul->wl_selbst + $modul->wl_pruef ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload selbstgestaltete Arbeit') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modul.wl_selbst mvv_modul_deskriptor.kommentar_wl_selbst"><?= htmlReady($modul->wl_selbst) ?> <?= MVVController::trim($modulDeskriptor->kommentar_wl_selbst) ? sprintf(" (%s)", formatReady($modulDeskriptor->kommentar_wl_selbst)) : '' ?></td>
+
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload Prüfung incl. Vorbereitung') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modul.wl_pruef mvv_modul_deskriptor.kommentar_wl_pruef"><?= htmlReady($modul->wl_pruef) ?> <?= MVVController::trim($modulDeskriptor->kommentar_wl_pruef) ? sprintf(" (%s)", formatReady($modulDeskriptor->kommentar_wl_pruef)) : '' ?></td>
+
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload insgesamt') ?></strong></td>
+ <td style="width: 70%;"><?= $modulSumme ?></td>
+ </tr>
+ </tbody>
+</table>
+<table class="mvv-modul-details" data-mvv-id="<?= $modulDeskriptor?$modulDeskriptor->getId():''; ?>" data-mvv-type="moduldeskriptor">
+ <tbody>
+ <? if (trim($modulDeskriptor->pruef_vorleistung)) : ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Prüfungsvorleistung') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modul_deskriptor.pruef_vorleistung" ><?= formatReady($modulDeskriptor->pruef_vorleistung) ?></td>
+ </tr>
+ <? endif; ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Prüfungsform') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modul_deskriptor.pruef_leistung"><?= formatReady($modulDeskriptor->pruef_leistung) ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Wiederholungsprüfung') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modul_deskriptor.pruef_wiederholung"><?= formatReady($modulDeskriptor->pruef_wiederholung) ?></td>
+ </tr>
+ </tbody>
+</table>
diff --git a/app/views/shared/modul/_modullv.php b/app/views/shared/modul/_modullv.php
new file mode 100644
index 0000000..f5df0a6
--- /dev/null
+++ b/app/views/shared/modul/_modullv.php
@@ -0,0 +1,102 @@
+<? $modulTeil = $modul->modulteile->first(); ?>
+<? $modulTeilDeskriptor = $modulTeil->getDeskriptor($display_language); ?>
+<table class="mvv-modul-details default nohover" data-mvv-id="<?= $modulTeil->id; ?>" data-mvv-type="modulteil">
+ <tbody>
+ <? $modulTeilSumme = $modulTeil->wl_praesenz + $modulTeil->wl_bereitung + $modulTeil->wl_selbst + $modulTeil->wl_pruef ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Lehrveranstaltungsform') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.lernlehrform"><?= $GLOBALS['MVV_MODULTEIL']['LERNLEHRFORM']['values'][$modulTeil->lernlehrform]['name'] ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Veranstaltungstitel') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil_deskriptor.bezeichnung"><?= htmlReady($modulTeilDeskriptor->bezeichnung) ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('SWS') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.sws mvv_modulteil_deskriptor.sws_alternative"><?= $modulTeil->sws ?: '' ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload Präsenz') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.wl_praesenz mvv_modulteil_deskriptor.kommentar_wl_praesenz"><?= $modulTeil->wl_praesenz ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_praesenz) ? sprintf(" (%s)", formatReady($modulTeilDeskriptor->kommentar_wl_praesenz)) : '' ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload Vor- / Nachbereitung') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.wl_bereitung mvv_modulteil_deskriptor.kommentar_wl_bereitung"><?= $modulTeil->wl_bereitung ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_bereitung) ? sprintf(" (%s)", formatReady($modulTeilDeskriptor->kommentar_wl_bereitung)) : '' ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload selbstgestaltete Arbeit') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.wl_selbst mvv_modulteil_deskriptor.kommentar_wl_selbst"><?= $modulTeil->wl_selbst ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_selbst) ? sprintf(" (%s)", formatReady($modulTeilDeskriptor->kommentar_wl_selbst)) : '' ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload Prüfung incl. Vorbereitung') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.wl_pruef mvv_modulteil_deskriptor.kommentar_wl_pruef"><?= $modulTeil->wl_pruef ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_pruef) ? sprintf(" (%s)", formatReady($modulTeilDeskriptor->kommentar_wl_pruef)) : '' ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload insgesamt') ?></strong></td>
+ <td style="width: 70%;"><?= $modulTeilSumme ?></td>
+ </tr>
+ <? if ((int) $modul->wl_selbst) : ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload selbstgestaltete Arbeit (modulbezogen') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modul.wl_selbst mvv_modul_deskriptor.kommentar_wl_selbst"><?= $modul->wl_selbst ?> <?= MVVController::trim($modulDeskriptor->kommentar_wl_selbst) ? sprintf(" (%s)", formatReady($modulDeskriptor->kommentar_wl_selbst)) : '' ?></td>
+ </tr>
+ <? endif; ?>
+ <? if ((int) $modul->wl_pruef) : ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload Prüfung incl. Vorbereitung (modulbezogen)') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modul.wl_pruef mvv_modul_deskriptor.kommentar_wl_pruef"><?= $modul->wl_pruef ?> <?= MVVController::trim($modulDeskriptor->kommentar_wl_pruef) ? sprintf(" (%s)", formatReady($modulDeskriptor->kommentar_wl_pruef)) : '' ?></td>
+ </tr>
+ <? endif; ?>
+ <? if ($modul->wl_selbst + $modul->wl_pruef) : ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Workload Modul insgesamt') ?></strong></td>
+ <td style="width: 70%;"><?= $modulTeilSumme + $modul->wl_selbst + $modul->wl_pruef ?></td>
+ </tr>
+ <? endif; ?>
+ </tbody>
+</table>
+<table class="mvv-modul-details default nohover" data-mvv-id="<?= $modulTeilDeskriptor->id; ?>" data-mvv-type="modulteil_deskriptor">
+ <tbody>
+ <? if (trim($modulTeilDeskriptor->pruef_vorleistung)) : ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Prüfungsvorleistung') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil_deskriptor.pruef_vorleistung"><?= formatReady($modulTeilDeskriptor->pruef_vorleistung) ?></td>
+ </tr>
+ <? endif; ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Prüfungsform') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil_deskriptor.pruef_leistung"><?= formatReady($modulTeilDeskriptor->pruef_leistung) ?></td>
+ </tr>
+ </tbody>
+</table>
+<table class="mvv-modul-details default nohover" data-mvv-id="<?= $modulTeil->id; ?>" data-mvv-type="modulteil">
+ <tbody>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Angebotsrhythmus') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.semester"><?= $GLOBALS['MVV_NAME_SEMESTER']['values'][$modulTeil->semester]['name'] ?></td>
+ </tr>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Aufnahmekapazität') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.kapazitaet mvv_modulteil_deskriptor.kommentar_kapazitaet"><?= trim($modulTeil->kapazitaet) ?: _('unbegrenzt') ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_kapazitaet) ? sprintf("(%s)", formatReady($modulTeilDeskriptor->kommentar_kapazitaet)) : '' ?></td>
+ </tr>
+ <? if ($modulTeil->pflicht) : ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= _('Anwesenheitspflicht') ?></strong></td>
+ <td style="width: 70%;" data-mvv-field="mvv_modulteil.pflicht mvv_modulteil_deskriptor.kommentar_pflicht"><?= $modulTeil->pflicht ? _('Ja') : _('Nein') ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_pflicht) ? sprintf("(%s)", formatReady($modulTeilDeskriptor->kommentar_pflicht)) : '' ?></td>
+ </tr>
+ <? endif; ?>
+ </tbody>
+</table>
+<? if (count($modulTeilDeskriptor->datafields)) : ?>
+<table class="mvv-modul-details default nohover" data-mvv-id="<?= $modulTeilDeskriptor->id; ?>" data-mvv-type="modulteil_deskriptor">
+ <tbody>
+ <? foreach ($modulTeilDeskriptor->datafields as $entry) : ?>
+ <? $df = $entry->getTypedDatafield(); ?>
+ <tr>
+ <td style="width: 30%;"><strong><?= htmlReady($df->getName()) ?></strong></td>
+ <td style="width: 70%;"><?= $df->getDisplayValue(); ?></td>
+ </tr>
+ <? endforeach; ?>
+ </tbody>
+</table>
+<? endif; ?>
diff --git a/app/views/shared/modul/_modullvs.php b/app/views/shared/modul/_modullvs.php
new file mode 100644
index 0000000..c288d5a
--- /dev/null
+++ b/app/views/shared/modul/_modullvs.php
@@ -0,0 +1,82 @@
+<table class="mvv-modul-details default nohover">
+ <thead>
+ <tr>
+ <th><?= _('Modulveran&shy;staltung') ?></th>
+ <th><?= _('Lehrveranstaltungs&shy;form') ?></th>
+ <th><?= _('Veranstaltungs&shy;titel') ?></th>
+ <th><?= _('SWS') ?></th>
+ <th><?= _('Workload Präsenz') ?></th>
+ <th><?= _('Workload Vor- / Nach&shy;bereitung') ?></th>
+ <th><?= _('Workload selbstge&shy;staltete Arbeit') ?></th>
+ <th><?= _('Workload Prüfung incl. Vorbereitung') ?></th>
+ <th><?= _('Workload Summe') ?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <? $wlSelbst = 0; ?>
+ <? $wlPruef = 0; ?>
+ <? $modulSumme = 0; ?>
+ <? $nummer_modulteil = 1; ?>
+ <? foreach ($modul->modulteile as $modulTeil): ?>
+ <? $modulTeilDeskriptor = $modulTeil->getDeskriptor($display_language);
+ // 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'];
+ $name_kurz = sprintf('%s %d', $num_bezeichnung, $modulTeil->nummer);
+ } else {
+ $num_bezeichnung_default = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['default'];
+ $name_kurz = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['values'][$num_bezeichnung_default]['name']
+ . ' ' . $nummer_modulteil;
+ $nummer_modulteil++;
+ } ?>
+ <? $wlSelbst += $modulTeil->wl_selbst; ?>
+ <? $wlPruef += $modulTeil->wl_pruef; ?>
+ <? $modulTeilSumme = $modulTeil->wl_praesenz + $modulTeil->wl_bereitung + $modulTeil->wl_selbst + $modulTeil->wl_pruef; ?>
+ <? $modulSumme += $modulTeilSumme; ?>
+ <? if ($show_synopse) : ?>
+ <tr data-mvv-id="<?= $modulTeil->getId(); ?>" data-mvv-type="modulteil">
+ <td data-mvv-field="mvv_modulteil.nummer mvv_modulteil.num_bezeichnung"><strong><?= htmlReady($name_kurz) ?></strong></td>
+ <td data-mvv-field="mvv_modulteil.lernlehrform"><?= $GLOBALS['MVV_MODULTEIL']['LERNLEHRFORM']['values'][$modulTeil->lernlehrform]['name'] ?></td>
+ <td data-mvv-field="mvv_modulteil_deskriptor.bezeichnung"><?= htmlReady($modulTeilDeskriptor->bezeichnung) ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.sws"><?= htmlReady($modulTeil->sws) ?: '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_praesenz mvv_modulteil_deskriptor.kommentar_wl_praesenz"><?= $modulTeil->wl_praesenz ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_praesenz) ? sprintf(' (%s)', formatReady($modulTeilDeskriptor->kommentar_wl_praesenz)) : '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_bereitung mvv_modulteil_deskriptor.kommentar_wl_bereitung"><?= $modulTeil->wl_bereitung ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_bereitung) ? sprintf(' (%s)', formatReady($modulTeilDeskriptor->kommentar_wl_bereitung)) : '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_selbst mvv_modulteil_deskriptor.kommentar_wl_selbst"><?= $modulTeil->wl_selbst ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_selbst) ? sprintf(' (%s)', formatReady($modulTeilDeskriptor->kommentar_wl_selbst)) : '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_pruef mvv_modulteil_deskriptor.kommentar_wl_pruef"><?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_pruef) ? sprintf(' (%s)',formatReady($modulTeilDeskriptor->kommentar_wl_pruef)) : '' ?><?= $modulTeil->wl_pruef ?></td>
+ <td style="text-align: right;"><?= $modulTeilSumme ?></td>
+ </tr>
+ <? else : ?>
+ <tr data-mvv-id="<?= $modulTeil->getId(); ?>" data-mvv-type="modulteil">
+ <td data-mvv-field="mvv_modulteil.nummer mvv_modulteil.num_bezeichnung"><strong><?= htmlReady($name_kurz) ?></strong></td>
+ <td data-mvv-field="mvv_modulteil.lernlehrform"><?= $GLOBALS['MVV_MODULTEIL']['LERNLEHRFORM']['values'][$modulTeil->lernlehrform]['name'] ?></td>
+ <td data-mvv-field="mvv_modulteil_deskriptor.bezeichnung"><?= htmlReady($modulTeilDeskriptor->bezeichnung) ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.sws"><?= htmlReady($modulTeil->sws) ?: '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_praesenz mvv_modulteil_deskriptor.kommentar_wl_praesenz"><?= $modulTeil->wl_praesenz ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_praesenz) ? tooltipIcon(formatReady($modulTeilDeskriptor->kommentar_wl_praesenz)) : '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_bereitung mvv_modulteil_deskriptor.kommentar_wl_bereitung"><?= $modulTeil->wl_bereitung ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_bereitung) ? tooltipIcon(formatReady($modulTeilDeskriptor->kommentar_wl_bereitung)) : '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_selbst mvv_modulteil_deskriptor.kommentar_wl_selbst"><?= $modulTeil->wl_selbst ?> <?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_selbst) ? tooltipIcon(formatReady($modulTeilDeskriptor->kommentar_wl_selbst)) : '' ?></td>
+ <td style="text-align: right;" data-mvv-field="mvv_modulteil.wl_pruef mvv_modulteil_deskriptor.kommentar_wl_pruef"><?= MVVController::trim($modulTeilDeskriptor->kommentar_wl_pruef) ? tooltipIcon(formatReady($modulTeilDeskriptor->kommentar_wl_pruef)) : '' ?><?= $modulTeil->wl_pruef ?></td>
+ <td style="text-align: right;"><?= $modulTeilSumme ?></td>
+ </tr>
+ <? endif; ?>
+ <? endforeach; ?>
+ <?
+ $modulWLSumme = $modul->wl_selbst + $modul->wl_pruef;
+ $modulSumme += $modulWLSumme;
+ ?>
+ <? if ($modulWLSumme > 0) : ?>
+ <tr>
+ <td colspan="6"><strong><?= _('Workload modulbezogen') ?></strong></td>
+ <td style="text-align: right;"><?= htmlReady($modul->wl_selbst) ?></td>
+ <td style="text-align: right;"><?= htmlReady($modul->wl_pruef) ?></td>
+ <td style="text-align: right;"><?= $modulWLSumme ?></td>
+ </tr>
+ <? endif; ?>
+ <tr>
+ <td colspan="8"><strong><?= _('Workload Modul insgesamt') ?></strong></td>
+ <td style="text-align: right;"><?= $modulSumme ?></td>
+ </tr>
+ </tbody>
+</table>
diff --git a/app/views/shared/modul/_pruefungen.php b/app/views/shared/modul/_pruefungen.php
new file mode 100644
index 0000000..f28657e
--- /dev/null
+++ b/app/views/shared/modul/_pruefungen.php
@@ -0,0 +1,50 @@
+<table class="mvv-modul-details default nohover">
+ <thead>
+ <tr>
+ <th><?= _('Prüfung') ?></th>
+ <th><?= _('Prüfungsvorleistung') ?></th>
+ <th><?= _('Prüfungsform') ?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <? foreach ($modul->modulteile as $modulTeil): ?>
+ <?
+ $modulTeilDeskriptor = $modulTeil->getDeskriptor($display_language);
+ // 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'];
+ $name_kurz = sprintf('%s %d', $num_bezeichnung, $modulTeil->nummer);
+ } else {
+ $num_bezeichnung_default = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['default'];
+ $name_kurz = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['values'][$num_bezeichnung_default]['name']
+ . ' ' . $nummer_modulteil;
+ $nummer_modulteil++;
+ }
+ ?>
+ <tr data-mvv-id="<?= $modulTeil->getId(); ?>" data-mvv-type="modulteil">
+ <td style="vertical-align: top; font-weight: bold;" data-mvv-field="mvv_modulteil.num_bezeichnung mvv_modulteil.nummer"><?= htmlReady($name_kurz) ?></td>
+ <td data-mvv-field="mvv_modulteil_deskriptor.pruef_vorleistung"><?= formatReady($modulTeilDeskriptor->pruef_vorleistung) ?></td>
+ <td data-mvv-field="mvv_modulteil_deskriptor.pruef_leistung"><?= formatReady($modulTeilDeskriptor->pruef_leistung) ?></td>
+ </tr>
+ <? endforeach; ?>
+ <tr data-mvv-id="<?= $modul->getId(); ?>" data-mvv-type="modul">
+ <? $modulDeskriptor = $modul->getDeskriptor($display_language) ?>
+ <td style="vertical-align: top; font-weight: bold;">
+ <?= _('Gesamtmodul') ?>
+ </td>
+ <td data-mvv-field="mvv_modul_deskriptor.pruef_vorleistung"><?= formatReady($modulDeskriptor->pruef_vorleistung) ?></td>
+ <td data-mvv-field="mvv_modul_deskriptor.pruef_leistung"><?= formatReady($modulDeskriptor->pruef_leistung) ?></td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; font-weight: bold;">
+ <?= _('Wiederholungsprüfung') ?>
+ </td>
+ <td colspan="3">
+ <?= formatReady($modulDeskriptor->pruef_wiederholung) ?>
+ </td>
+ </tr>
+ </tbody>
+</table> \ No newline at end of file
diff --git a/app/views/shared/modul/_regularien.php b/app/views/shared/modul/_regularien.php
new file mode 100644
index 0000000..26196b0
--- /dev/null
+++ b/app/views/shared/modul/_regularien.php
@@ -0,0 +1,38 @@
+<table class="mvv-modul-details default nohover">
+ <thead>
+ <tr>
+ <th><?= _('Regularien') ?></th>
+ <th><?= _('Teilnahme&shy;voraussetzungen') ?></th>
+ <th><?= _('Angebots&shy;rhythmus') ?></th>
+ <th><?= _('Anwesenheits&shy;pflicht') ?></th>
+ <th><?= _('Gewicht an Modulnote in %') ?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <? foreach ($modul->modulteile as $modulTeil): ?>
+ <?
+ $modulTeilDeskriptor = $modulTeil->getDeskriptor($display_language);
+ // 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'];
+ $name_kurz = sprintf('%s %d', $num_bezeichnung, $modulTeil->nummer);
+ } else {
+ $num_bezeichnung_default = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['default'];
+ $name_kurz = $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['values'][$num_bezeichnung_default]['name']
+ . ' ' . $nummer_modulteil;
+ $nummer_modulteil++;
+ }
+ ?>
+ <tr data-mvv-id="<?= $modulTeil->getId(); ?>" data-mvv-type="modulteil">
+ <td style="vertical-align: top; font-weight: bold;" data-mvv-field="mvv_modulteil.nummer mvv_modulteil.num_bezeichnung"><?= $name_kurz ?></td>
+ <td data-mvv-field="mvv_modulteil_deskriptor.voraussetzung"><?= formatReady($modulTeilDeskriptor->voraussetzung) ?></td>
+ <td data-mvv-field="mvv_modulteil.semester"><?= $GLOBALS['MVV_NAME_SEMESTER']['values'][$modulTeil->semester]['name'] ?></td>
+ <td data-mvv-field="mvv_modulteil.pflicht"><?= ($modulTeil->pflicht ? _('Ja') : _('Nein')) ?> <?= $modulTeilDeskriptor->kommentar_pflicht ? formatReady($modulTeilDeskriptor->kommentar_pflicht) : '' ?></td>
+ <td data-mvv-field="mvv_modulteil.anteil_note"><?= $modulTeil->anteil_note ?>%</td>
+ </tr>
+ <? endforeach; ?>
+ </tbody>
+</table> \ No newline at end of file
diff --git a/app/views/shared/modul/description.php b/app/views/shared/modul/description.php
new file mode 100644
index 0000000..5aac378
--- /dev/null
+++ b/app/views/shared/modul/description.php
@@ -0,0 +1,22 @@
+<? if (count($modul->deskriptoren) > 1): ?>
+<div style="width: 100%; text-align: right;">
+ <? foreach ($modul->deskriptoren->getAvailableTranslations() as $language) : ?>
+ <? $lang = $GLOBALS['MVV_MODUL_DESKRIPTOR']['SPRACHE']['values'][$language]; ?>
+ <a data-dialog="size=auto;title='<?= htmlReady($modul->getDisplayName()) ?>'" href="<?= $controller->url_for('/description/' . $modul->id . '/', ['display_language' => $language]) ?>">
+ <img src="<?= Assets::image_path('languages/lang_' . mb_strtolower($language) . '.gif') ?>" alt="<?= $lang['name'] ?>" title="<?= $lang['name'] ?>">
+ </a>
+ <? endforeach; ?>
+</div>
+<? endif; ?>
+<?= $this->render_partial('shared/modul/_modul') ?>
+<? if ($type === 1) : ?>
+ <?= $this->render_partial('shared/modul/_modullvs') ?>
+ <?= $this->render_partial('shared/modul/_pruefungen') ?>
+ <?= $this->render_partial('shared/modul/_regularien') ?>
+<? endif;?>
+<? if ($type === 2): ?>
+ <?= $this->render_partial('shared/modul/_modullv') ?>
+<? endif; ?>
+<? if ($type === 3) : ?>
+ <?= $this->render_partial('shared/modul/_modul_ohne_lv') ?>
+<? endif; ?> \ No newline at end of file
diff --git a/app/views/shared/modul/overview.php b/app/views/shared/modul/overview.php
new file mode 100644
index 0000000..0f20791
--- /dev/null
+++ b/app/views/shared/modul/overview.php
@@ -0,0 +1,180 @@
+<table class="default mvv-modul-details nohover">
+ <tr>
+ <th class="mvv-modul-details-head" style="width: 30%"><?= htmlReady($modul->code) ?></th>
+ <th class="mvv-modul-details-head" style="width: 30%"><?= htmlReady($institut->name) ?></th>
+ <th class="mvv-modul-details-head" style="width: 40%"><?= sprintf("%d CP", $modul->kp) ?> </th>
+ <th class="mvv-modul-details-head"></th>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <h3><?= htmlReady($deskriptor->bezeichnung) ?></h3>
+ <?= _('Lehrveranstaltungen') ?> <?= htmlReady($semester['name']) ?>
+ </td>
+ <td>
+ <dl>
+ <? foreach ($GLOBALS['MVV_MODUL']['PERSONEN_GRUPPEN']['values'] as $key => $gruppe) : ?>
+ <? $contacts = $modul->contact_assignments->findBy('category', $key)->orderBy('position', SORT_NUMERIC); ?>
+ <? if ($gruppe['visible'] && count($contacts)) : ?>
+ <dt><?= htmlReady($gruppe['name']) ?></dt>
+ <? foreach ($contacts as $modul_contact): ?>
+ <dd><?= htmlReady($modul_contact->contact->getDisplayName()) ?></dd>
+ <? endforeach; ?>
+ <? endif; ?>
+ <? endforeach; ?>
+ </dl>
+ </td>
+ <td>
+ <? if ($GLOBALS['perm']->have_perm('admin')) : ?>
+ <a href="<?= URLHelper::getLink("dispatch.php/shared/modul/mail/{$modul->id}/{$semester['semester_id']}")?>" data-dialog>
+ <?= Icon::create('mail', Icon::ROLE_CLICKABLE, tooltip2(_('Nachricht an alle Veranstaltungteilnehmer die diesem Modul zugeordnet sind.')))?>
+ </a>
+ <? endif; ?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4" style="padding: 0;">
+ <table class="default nohover">
+ <? if (mb_strlen($teilnahmeVoraussetzung) > 0): ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"><?= _('Teilnahmevoraussetzungen') ?></td>
+ <td ><?= formatReady($teilnahmeVoraussetzung) ?></td>
+ </tr>
+ <? endif; ?>
+ <? if (mb_strlen($deskriptor->kommentar)) : ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"><?= _('Hinweise') ?></td>
+ <td><?= formatReady($deskriptor->kommentar) ?></td>
+ </tr>
+ <? endif; ?>
+ <? if (mb_strlen($deskriptor->ersatztext) > 0): ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"> </td>
+ <td><?= formatReady($deskriptor->ersatztext) ?></td>
+ </tr>
+ <? else: ?>
+
+ <? if ($modul->kapazitaet > 0): ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"><?= _('Kapazität Modul') ?></td>
+ <td>
+ <?= htmlReady($modul->kapazitaet) ?>
+ <? if (mb_strlen($deskriptor->kommentar_kapazitaet) > 0): ?>
+ (<?= formatReady($deskriptor->kommentar_kapazitaet) ?>)
+ <? endif; ?>
+
+ </td>
+ </tr>
+ <? endif; ?>
+ <? if (mb_strlen($pruef_ebene) > 0): ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"><?= _('Prüfungsebene') ?></td>
+ <td><?= htmlReady($pruef_ebene) ?></td>
+ </tr>
+ <? endif; ?>
+ <? if (mb_strlen($deskriptor->pruef_vorleistung)) : ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"><?= _('Prüfungsvorleistung Modul') ?></td>
+ <td><?= formatReady($deskriptor->pruef_vorleistung) ?></td>
+ </tr>
+ <? endif; ?>
+ <? if (mb_strlen($deskriptor->pruef_leistung)) : ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"><?= _('Prüfungsleistung Modul') ?></td>
+ <td><?= formatReady($deskriptor->pruef_leistung) ?></td>
+ </tr>
+ <? endif; ?>
+ <? if (mb_strlen($deskriptor->kompetenzziele)): ?>
+ <tr>
+ <td style="width: 20%; font-weight: bold;"><?= _('Kompetenzziele') ?></td>
+ <td><?= formatReady($deskriptor->kompetenzziele) ?></td>
+ </tr>
+ <? endif; ?>
+
+ <? endif; ?>
+ </table>
+ </td>
+ </tr>
+ <? if ($type !== 3): ?>
+ <tr>
+ <? if ($type === 1): ?>
+ <th><?= _('Modulteile') ?></th>
+ <? endif; ?>
+ <th <? if ($type === 2): ?> colspan="3" <? endif; ?> ><?= _('Semesterveranstaltungen') ?></th>
+ <? if ($type === 1): ?>
+ <th><?= _('Prüfungsleistung') ?></th>
+ <? endif; ?>
+ </tr>
+ <? foreach ($modulTeile as $modul_teil): ?>
+ <tr>
+ <? if ($type === 1): ?>
+ <td>
+ <b> <?= htmlReady($modul_teil['name']) ?> </b>
+ <? if (mb_strlen($modul_teil['kommentar']) > 0): ?>
+ <?= $modul_teil['kommentar'] ? '<br>(' . formatReady($modul_teil['kommentar']) . ')' : '' ?>
+ <? endif; ?>
+ <? if (mb_strlen($modul_teil['voraussetzung']) > 0): ?>
+ <br>
+ <b><?= _('Teilnahmevoraussetzungen') ?>:</b> <?= formatReady($modul_teil['voraussetzung']) ?>
+ <? endif; ?>
+ </td>
+ <? endif; ?>
+ <td <? if ($type === 2): ?> colspan="3" <? endif; ?>>
+ <? foreach ($modul_teil['lvGruppen'] as $gruppe): ?>
+ <? if (mb_strlen($gruppe['alt_texte']) > 0): ?>
+ <?= formatReady($gruppe['alt_texte']) ?>
+ <? endif; ?>
+ <? if (count($gruppe['courses'])) : ?>
+ <ul>
+ <? foreach ($gruppe['courses'] as $course): ?>
+ <li>
+ <a href="<?= URLHelper::getLink('dispatch.php/course/details', ['sem_id' => $course->id]) ?>">
+ <?= htmlReady(($course['VeranstaltungsNummer'] ? $course['VeranstaltungsNummer'] . ' - ' : '') . $course['Name']) ?>
+ </a>
+ <? if ($course['visible'] != 1) : ?>
+ <em><?= _('[versteckt]') ?></em>
+ <? endif; ?>
+ <? if (Config::get()->COURSE_SEARCH_SHOW_ADMISSION_STATE) : ?>
+ <? switch (SemBrowse::getStatusCourseAdmission($course->id, $course->admission_prelim)) :
+ case 1:
+ echo Icon::create('span-2quarter', Icon::ROLE_STATUS_YELLOW, [
+ 'alt' => _('Eingeschränkter Zugang'),
+ 'title' => _('Eingeschränkter Zugang'),
+ 'style' => 'vertical-align: text-bottom',
+ ]);
+ break;
+ case 2:
+ echo Icon::create('span-empty', Icon::ROLE_STATUS_RED, [
+ 'alt' => _('Kein Zugang'),
+ 'title' => _('Kein Zugang'),
+ 'style' => 'vertical-align: text-bottom',
+ ]);
+ break;
+ default:
+ echo Icon::create('span-full', Icon::ROLE_STATUS_GREEN, [
+ 'alt' => _('Uneingeschränkter Zugang'),
+ 'title' => _('Uneingeschränkter Zugang'),
+ 'style' => 'vertical-align: text-bottom',
+ ]);
+ endswitch; ?>
+ <? endif; ?>
+ </li>
+ <? endforeach; ?>
+ </ul>
+ <? endif; ?>
+ <? endforeach; ?>
+ </td>
+ <? if ($type === 1) : ?>
+ <td>
+ <? if (mb_strlen($modul_teil['pruef_vorleistung']) > 0) : ?>
+ <b><?= _('Prüfungsvorleistung') ?>:</b> <?= htmlReady($modul_teil['pruef_vorleistung']) ?>
+
+ <? endif; ?>
+ <? if (mb_strlen($modul_teil['pruef_leistung']) > 0) : ?>
+ <b><?= _('Prüfungsform') ?>:</b> <br/><?= htmlReady($modul_teil['pruef_leistung']) ?> (<?= ($modul_teil['anteil_note'] ? '(' . htmlReady($modul_teil['anteil_note']) . '%)' : '') ?>
+ <? endif; ?>
+ </td>
+ <? endif; ?>
+ </tr>
+ <? endforeach; ?>
+ <? endif; ?>
+</table>