diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php index 46515b763a312d1603ace4562f67b3a393ba2e06..04c2b075a3a49e4dc010776ea911e35f452dced9 100644 --- a/app/controllers/admin/courses.php +++ b/app/controllers/admin/courses.php @@ -226,7 +226,7 @@ class Admin_CoursesController extends AuthenticatedController } $export = new ExportWidget(); $export->addLink( - _('Als Excel exportieren'), + _('Als CSV-Datei exportieren'), URLHelper::getURL('dispatch.php/admin/courses/export_csv', $params), Icon::create('file-excel') )->asDialog('size=auto'); @@ -461,6 +461,16 @@ class Admin_CoursesController extends AuthenticatedController 'data-dialog' => 'size=big' ]); break; + case 22: //Mehrfachzuordnung Studienbereiche + $data['buttons_top'] = '<label>' . _('Alle auswählen') . + '<input type="checkbox" data-proxyfor=".course-admin td:last-child :checkbox"></label>'; + $data['buttons_bottom'] = (string) \Studip\Button::createAccept( + _('Teilnehmendenexport'), 'batch_export_members', + [ + 'formaction' => URLHelper::getURL('dispatch.php/admin/user/batch_export_members'), + 'data-dialog' => 'size=big' + ]); + break; default: foreach (PluginManager::getInstance()->getPlugins('AdminCourseAction') as $plugin) { if ($GLOBALS['user']->cfg->MY_COURSES_ACTION_AREA === get_class($plugin)) { @@ -756,6 +766,16 @@ class Admin_CoursesController extends AuthenticatedController $template->course = $course; $d['action'] = $template->render(); break; + case 22: //Masssenexport Teilnehmendendaten + $template = $tf->open('admin/courses/batch_export_members'); + $template->course = $course; + $d['action'] = $template->render(); + break; + case 22: //Masssenexport Teilnehmendendaten + $template = $tf->open('admin/courses/batch_export_members'); + $template->course = $course; + $d['action'] = $template->render(); + break; default: foreach (PluginManager::getInstance()->getPlugins('AdminCourseAction') as $plugin) { if ($GLOBALS['user']->cfg->MY_COURSES_ACTION_AREA === get_class($plugin)) { @@ -1342,6 +1362,15 @@ class Admin_CoursesController extends AuthenticatedController 'multimode' => true, 'partial' => 'batch_assign_semtree.php' ], + 22 => [ + 'name' => _('Teilnehmendenexport'), + 'title' => _('Teilnehmendenexport'), + 'url' => 'dispatch.php/admin/user/batch_export_members', + 'dialogform' => true, + 'multimode' => true, + 'partial' => 'batch_export_members.php' + + ], ]; if (!$GLOBALS['perm']->have_perm('admin')) { diff --git a/app/controllers/admin/user.php b/app/controllers/admin/user.php index 74daee10d4d465d20f75d24cd4318ddb404fedfc..f7bf81ae8b19150fb371e3dd2e378422a4fa37c5 100644 --- a/app/controllers/admin/user.php +++ b/app/controllers/admin/user.php @@ -15,6 +15,11 @@ * @package admin * @since 2.1 */ + +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Writer\Csv; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; + require_once 'vendor/email_message/blackhole_message.php'; require_once 'lib/statusgruppe.inc.php'; @@ -1613,6 +1618,79 @@ class Admin_UserController extends AuthenticatedController $this->redirect($this->show_user_coursesURL($user)); } + public function batch_export_members_action() + { + PageLayout::setTitle(_('Teilnehmendendaten exportieren')); + + $courseIds = Request::optionArray('export_members'); + $order = Config::get()->IMPORTANT_SEMNUMBER + ? "ORDER BY `start_time` DESC, `VeranstaltungsNummer`, `Name`" + : "ORDER BY `start_time` DESC, `Name`"; + $this->courses = array_filter( + Course::findMany($courseIds, $order), + function (Course $course): bool { + /* + * Check if sem_tree entries are allowed and may be changed and remove all courses + * where this is not the case. + */ + return !LockRules::Check($course->id, 'sem_tree', 'sem') + && $course->getSemClass()['bereiche']; + } + ); + + // check if at least one course was selected (this can only happen from admin courses overview): + if (count($this->courses) === 0) { + PageLayout::postWarning('Es wurde keine Veranstaltung gewählt.'); + $this->relocate('admin/courses'); + } + + } + + /* + * Export member data of all selected courses + */ + public function do_batch_export_action() + { + CSRFProtection::verifyUnsafeRequest(); + + if (Request::submitted('xlsx')) { + $export_format = 'xlsx'; + } else if (Request::submitted('csv')) { + $export_format = 'csv'; + } else { + PageLayout::postError('Nicht unterstütztes Exportformat.'); + $this->relocate('admin/courses'); + } + + $tmp_folder = $GLOBALS['TMP_PATH'] . '/temp_folder_' . md5(uniqid()); + mkdir($tmp_folder); + + $courses = Course::findMany(Request::optionArray('courses')); + + foreach ($courses as $course) { + $header = ['Status', 'Anrede', 'Titel', 'Vorname', 'Nachname', 'Titel nachgestellt', 'Benutzername', 'Adresse', 'Telefonnr.', + 'E-Mail', 'Anmeldedatum', 'Matrikelnummer', 'Studiengänge']; + $members = CourseMember::getMemberDataByCourse($course->seminar_id); + + foreach ($members as &$member) { + $member['Anmeldedatum'] = $member['Anmeldedatum'] ? date('d.m.Y', $member['Anmeldedatum']) : _('unbekannt'); + unset($member['user_id']); + } + + $filename = FileManager::cleanFileName('Teilnehmendenexport ' . $course->Name . '.' . $export_format); + $filepath = $tmp_folder . '/'. $filename; + + $this->render_spreadsheet($header, $members, $export_format, $filename, $filepath); + + } + $archive_file_path = $GLOBALS['TMP_PATH'] . '/archiv.zip'; + $archive_filename = 'Export_Teilnehmendendaten.zip'; + FileArchiveManager::createArchiveFromPhysicalFolder($tmp_folder, $archive_file_path); + rmdirr($tmp_folder); + $this->render_temporary_file($archive_file_path, $archive_filename, 'application/zip'); + } + + /** * Init sidebar */ diff --git a/app/controllers/course/grouping.php b/app/controllers/course/grouping.php index 526217f66c794b985898aaf9ceca4af9d6dd8c50..5202967add761ae3d7d497065005b76eb52249db 100644 --- a/app/controllers/course/grouping.php +++ b/app/controllers/course/grouping.php @@ -13,8 +13,6 @@ * @package admin */ -require_once 'lib/export/export_studipdata_func.inc.php'; // Funktionne für den Export -require_once 'lib/export/export_linking_func.inc.php'; /** * @addtogroup notifications diff --git a/app/controllers/course/members.php b/app/controllers/course/members.php index 6cf3b92a7dccfbde3a462bb4b629cbad67c404c5..5f5a859af02ca908a2a1df7ee65ce4980119aa7a 100644 --- a/app/controllers/course/members.php +++ b/app/controllers/course/members.php @@ -16,9 +16,10 @@ */ require_once 'lib/messaging.inc.php'; //Funktionen des Nachrichtensystems -require_once 'lib/export/export_studipdata_func.inc.php'; // Funktionne für den Export -require_once 'lib/export/export_linking_func.inc.php'; +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Writer\Csv; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; class Course_MembersController extends AuthenticatedController { @@ -1655,35 +1656,21 @@ class Course_MembersController extends AuthenticatedController if (Config::get()->EXPORT_ENABLE) { $widget = $sidebar->addWidget(new ExportWidget()); - // create csv-export link - $csvExport = export_link( - $this->course_id, - 'person', - sprintf('%s %s', $this->status_groups['autor'], $this->course_title), - 'csv', - 'csv-teiln', - '', - _('Liste als csv-Dokument exportieren'), - 'passthrough' - ); - $widget->addLinkFromHTML( - $csvExport, + $widget->addLink( + _('Als Excel-Datei exportieren'), + URLHelper::getURL('dispatch.php/course/members/export', [ + 'course_id' => $this->course_id, + 'format' => 'xlsx', + ]), Icon::create('export') ); - // create csv-export link - $rtfExport = export_link( - $this->course_id, - 'person', - sprintf('%s %s', $this->status_groups['autor'], $this->course_title), - 'rtf', - 'rtf-teiln', - '', - _('Liste als rtf-Dokument exportieren'), - 'passthrough' - ); - $widget->addLinkFromHTML( - $rtfExport, + $widget->addLink( + _('Als CSV-Datei exportieren'), + URLHelper::getURL('dispatch.php/course/members/export', [ + 'course_id' => $this->course_id, + 'format' => 'csv', + ]), Icon::create('export') ); @@ -1763,38 +1750,27 @@ class Course_MembersController extends AuthenticatedController } } - public function export_members_csv_action() + public function export_action() { - if (!$this->is_tutor) { - throw new AccessDeniedException(); + $export_format = Request::get('format'); + + if ($export_format !== 'csv' && $export_format !== 'xlsx') { + throw new Exception('Wrong format'); } - $filtered_members = CourseMember::getMembers($this->sort_status, $this->sort_by . ' ' . $this->order); - $filtered_members = array_merge( - $filtered_members, - AdmissionApplication::getAdmissionMembers( - $this->course_id, - $this->sort_status, - $this->sort_by . ' ' . $this->order ) - ); - $dozenten = $filtered_members['dozent']->toArray('user_id username vorname nachname visible mkdate'); - $tutoren = $filtered_members['tutor']->toArray('user_id username vorname nachname visible mkdate'); - $autoren = $filtered_members['autor']->toArray('user_id username vorname nachname visible mkdate'); - - $header = [_('Titel'), _('Vorname'), _('Nachname'), _('Titel2'), _('Nutzernamen'), _('Privatadr'), _('Privatnr'), _('E-Mail'), _('Anmeldedatum'), _('Studiengänge')]; - $data = [$header]; - foreach ([$dozenten, $tutoren, $autoren] as $usergroup) { - foreach ($usergroup as $dozent) { - $line = [ - '', - $dozent['Vorname'], - $dozent['Nachname'], - '', - $dozent['username'] - ]; - $data[] = $line; - } + + $header = [_('Status'), _('Anrede'), _('Titel'), _('Vorname'), _('Nachname'), _('Titel nachgestellt'), _('Benutzername'), _('Adresse'), _('Telefonnr.'), + _('E-Mail'), _('Anmeldedatum'), _('Matrikelnummer'), _('Studiengänge')]; + $members = CourseMember::getMemberDataByCourse($this->course_id); + + foreach ($members as &$member) { + $member['Anmeldedatum'] = $member['Anmeldedatum'] ? date("d.m.Y", $member['Anmeldedatum']) : _("unbekannt"); + unset($member['user_id']); } - $csv = array_to_csv($data); + + $filename = _('Teilnehmendenexport') . ' ' . $this->course_title . '.' . $export_format; + + $this->render_spreadsheet($header, $members, $export_format, $filename); + $this->render_nothing(); } public function toggle_student_mailing_action($state) diff --git a/app/controllers/course/statusgroups.php b/app/controllers/course/statusgroups.php index a6f6b7223056298bac4239ea5dda7ef36773c9e7..826cd07fbf2daec2769ecc1f106eceed4fa792c6 100644 --- a/app/controllers/course/statusgroups.php +++ b/app/controllers/course/statusgroups.php @@ -13,9 +13,11 @@ * @since 3.5 */ +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Writer\Csv; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; + require_once 'lib/messaging.inc.php'; //Funktionen des Nachrichtensystems -require_once 'lib/export/export_studipdata_func.inc.php'; // Funktionen für den Export -require_once 'lib/export/export_linking_func.inc.php'; class Course_StatusgroupsController extends AuthenticatedController { @@ -253,23 +255,23 @@ class Course_StatusgroupsController extends AuthenticatedController } if (Config::get()->EXPORT_ENABLE) { $export = new ExportWidget(); - // create csv-export link - $csvExport = export_link($this->course_id, 'person', - sprintf('%s %s', _('Gruppenliste'), htmlReady($this->course_title)), - 'csv', 'csv-gruppen', 'status', - _('Als CSV-Dokument exportieren'), - 'passthrough'); - $element = LinkElement::fromHTML($csvExport, Icon::create('export')); - $export->addElement($element); - - // create rtf-export link - $rtfExport = export_link($this->course_id, 'person', - sprintf('%s %s', _('Gruppenliste'), htmlReady($this->course_title)), - 'rtf', 'rtf-gruppen', 'status', - _('Als RTF-Dokument exportieren'), - 'passthrough'); - $element = LinkElement::fromHTML($rtfExport, Icon::create('export')); - $export->addElement($element); + $export->addLink( + _('Als Excel-Datei exportieren'), + URLHelper::getURL('dispatch.php/course/statusgroups/export', [ + 'course_id' => $this->course_id, + 'format' => 'xlsx', + ]), + Icon::create('export') + ); + + $export->addLink( + _('Als .csv exportieren'), + URLHelper::getURL('dispatch.php/course/statusgroups/export', [ + 'course_id' => $this->course_id, + 'format' => 'csv', + ]), + Icon::create('export') + ); $sidebar->addWidget($export); } @@ -298,6 +300,71 @@ class Course_StatusgroupsController extends AuthenticatedController $sidebar->addWidget($actions); } + /** + * + */ + public function export_action() + { + $export_format = Request::get('format'); + + if ($export_format !== 'csv' && $export_format !== 'xlsx') { + throw new Exception('Wrong format'); + } + + if (Request::get('institute_id')) { + $institute_id = Request::get('institute_id'); + } + + $header = [_('Gruppe'), _('Titel'), _('Vorname'), _('Nachname'), _('Titel nachgestellt'), _('Nutzername'), + _('Privatadresse'), _('Privatnr.'), _('E-Mail'), _('Anmeldedatum'), _('Studiengänge')]; + + $temp = []; + + $groups = Statusgruppen::findBySeminar_id($this->course_id); + if ($groups) { + foreach ($groups as $group) { + foreach ($group['members'] as $mem) { + $member_data = CourseMember::getMemberDataByCourse($this->course_id, $mem['user_id']); + + foreach ($member_data as &$mem_data) { + $mem_data['Anmeldedatum'] = $mem_data['Anmeldedatum'] ? date('d.m.Y', $mem_data['Anmeldedatum']) : _('unbekannt'); + + if (!isset($temp[$group['name']])) { + $temp[$group['name']] = []; + } + $temp[$group['name']][$mem_data['user_id']] = [ + 'Gruppe' => $group['name'], + 'Titel' => $mem_data['title_front'], + 'Vorname' => $mem_data['Vorname'], + 'Nachname' => $mem_data['Nachname'], + 'Titel nachgestellt' => $mem_data['title_rear'], + 'Nutzername' => $mem_data['title_front'], + 'Privatadresse' => $mem_data['privadr'], + 'Privatnr.' => $mem_data['privatnr'], + 'E-Mail' => $mem_data['Email'], + 'Anmeldedatum' => $mem_data['Anmeldedatum'], + 'Studiengänge' => $mem_data['studiengaenge'], + ]; + } + } + } + } + + $statusgroup_data = []; + + foreach ($temp as $group => $group_members) { + foreach ($group_members as $member) { + $statusgroup_data[] = $member; + } + + } + + $filename = FileManager::cleanFileName(_('Gruppenliste') . ' ' . $this->course_title . '.' . $export_format); + + $this->render_spreadsheet($header, $statusgroup_data, $export_format, $filename); + $this->render_nothing(); + } + /** * Fetches the members of the given group. * diff --git a/app/controllers/institute/members.php b/app/controllers/institute/members.php index 99dd0f8299cd0250b11f001d3b51909b1468b29a..5cbefe22de6f44e4dc26cea3ff84be96090cdd42 100644 --- a/app/controllers/institute/members.php +++ b/app/controllers/institute/members.php @@ -7,8 +7,10 @@ * @todo test datafields! */ -require_once 'lib/export/export_studipdata_func.inc.php'; // Funktionen für den Export -require_once 'lib/export/export_linking_func.inc.php'; +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Writer\Csv; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; + class Institute_MembersController extends AuthenticatedController { @@ -517,6 +519,56 @@ class Institute_MembersController extends AuthenticatedController return $table_structure; } + public function export_action() + { + $export_format = Request::get('format'); + + if ($export_format !== 'csv' && $export_format !== 'xlsx') { + throw new Exception('Wrong format'); + } + + if (Request::get('institute_id')) { + $institute_id = Request::get('institute_id'); + } + + $inst_sql = "SELECT inst.Name AS institute, fak.Name AS faculty FROM Institute as inst + JOIN Institute as fak ON (inst.fakultaets_id = fak.Institut_id) + WHERE inst.Institut_id = :institut_id"; + $res = DBManager::get()->fetchOne($inst_sql, ['institut_id' => $institute_id]); + $faculty = $res['faculty']; + + $header = [_('Einrichtung'), _('Fakultät'), _('Gruppe'), _('Titel'), _('Vorname'), _('Nachname'), _('Titel nachgestellt'), + _('Telefon'), _('Raum'), _('Sprechzeiten'), _('E-Mail')]; + $members = InstituteMember::findByInstitute($institute_id); + + $sg_sql = "SELECT name FROM statusgruppen as sg + JOIN statusgruppe_user USING (statusgruppe_id) + WHERE user_id = :user_id + AND range_id = :range_id"; + $temp = []; + foreach ($members as $member) { + $res = DBManager::get()->fetchOne($sg_sql, ['user_id' => $member['user_id'], 'range_id' => $institute_id]); + $temp[$member['id']] = [ + 'Einrichtung' => (string) $this->institute->name, + 'Fakultät' => $faculty, + 'Gruppe' => $res['name'], + 'Titel' => $member->title_front, + 'Vorname' => $member->Vorname, + 'Nachname' => $member->Nachname, + 'Titel nachgestellt' => $member->title_rear, + 'Telefon' => $member->Telefon, + 'Raum' => $member->raum, + 'Sprechzeiten' => $member->sprechzeiten, + 'Email' => $member->Email, + ]; + } + + $filename = FileManager::cleanFileName(_('Mitarbeitendenexport') . ' ' . $this->institute->name . ' ' . $faculty . '.' . $export_format); + + $this->render_spreadsheet($header, $temp, $export_format, $filename); + $this->render_nothing(); + } + private function setupSidebar() { $sidebar = Sidebar::get(); @@ -592,11 +644,24 @@ class Institute_MembersController extends AuthenticatedController $sidebar->addWidget($widget); if (Config::get()->EXPORT_ENABLE && $GLOBALS['perm']->have_perm('tutor')) { - $widget = new SidebarWidget(); - $widget->setTitle(_('Export')); - $widget->addElement(new WidgetElement(export_form_sidebar($this->institute->id, - 'person', $this->institute->Name))); - $sidebar->addWidget($widget); + $widget = $sidebar->addWidget(new ExportWidget()); + + $widget->addLink( + _('Als Excel-Datei exportieren'), + URLHelper::getURL('dispatch.php/institute/members/export', [ + 'institute_id' => $this->institute->id, + 'format' => 'xlsx', + ]), + Icon::create('export') + ); + $widget->addLink( + _('Als .csv exportieren'), + URLHelper::getURL('dispatch.php/institute/members/export', [ + 'institute_id' => $this->institute->id, + 'format' => 'csv', + ]), + Icon::create('export') + ); } } diff --git a/app/controllers/studip_controller.php b/app/controllers/studip_controller.php index 7a4da54487cb2ce44629bb971414daad0c704c0c..06383ec9cdaea19f2135b90f7e3e0c8648d23047 100644 --- a/app/controllers/studip_controller.php +++ b/app/controllers/studip_controller.php @@ -9,6 +9,10 @@ * the License, or (at your option) any later version. */ +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Writer\Csv; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; + require_once 'studip_controller_properties_trait.php'; require_once 'studip_response.php'; @@ -797,6 +801,38 @@ abstract class StudipController extends Trails_Controller return $dt && $dt->format($format) == date('H:i',strtotime($datetime)); } + /** + * Export xlsx and csv files via PhpSpreadsheet + * @param $header + * @param $data + * @param $format + * @param $filename + * @param $filepath + * @return void + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + */ + public function render_spreadsheet($header, $data, $format, $filename, $filepath = null) + { + if ($filepath == null) { + $filepath = 'php://output'; + } + $spreadsheet = new Spreadsheet(); + $activeWorksheet = $spreadsheet->getActiveSheet(); + $activeWorksheet->fromArray($header, NULL, 'A1'); + $activeWorksheet->fromArray($data, NULL, 'A2'); + + $this->set_content_type('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + $this->response->add_header('Content-Disposition', 'attachment;' . encode_header_parameter('filename', $filename)); + $this->response->add_header('Cache-Control', 'cache, must-revalidate'); + if ($format == 'xlsx') { + $writer = new Xlsx($spreadsheet); + } else if ($format == 'csv') { + $writer = new Csv($spreadsheet); + } + + $writer->save($filepath); + } + /** * Creates the body element id for this controller a given action. * diff --git a/app/views/admin/courses/batch_export_members.php b/app/views/admin/courses/batch_export_members.php new file mode 100644 index 0000000000000000000000000000000000000000..703c3bd97d54e2022bd5b4820d3392dac21f464b --- /dev/null +++ b/app/views/admin/courses/batch_export_members.php @@ -0,0 +1,9 @@ +<?php +/** + * @var Course $course + */ +?> +<label> + <input name="export_members[]" type="checkbox" value="<?= htmlReady($course->id) ?>" + aria-label="<?= htmlReady(_('Teilnehmende exportieren')) ?>"> +</label> diff --git a/app/views/admin/user/batch_export_members.php b/app/views/admin/user/batch_export_members.php new file mode 100644 index 0000000000000000000000000000000000000000..258df5b8c7dfe9c907362ee8dc53b0c5ebe5317b --- /dev/null +++ b/app/views/admin/user/batch_export_members.php @@ -0,0 +1,42 @@ +<form class="default" action="<?= $controller->link_for('admin/user/do_batch_export') ?>" method="post"> + <?= CSRFProtection::tokenTag() ?> + <fieldset> + <legend><?= _('Die Daten der Teilnehmenden folgender Veranstaltungen werden exportiert') ?></legend> + <table class="default selected-courses"> + <thead> + <tr> + <th><?= _('Name') ?></th> + <th><?= _('Anzahl Lehrende') ?></th> + <th><?= _('Anzahl Tutor/-innen') ?></th> + <th><?= _('Anzahl Studierende') ?></th> + </tr> + </thead> + <tbody> + <? foreach ($courses as $course) : ?> + <tr> + <td> + <a href="<?= URLHelper::getLink('dispatch.php/course/overview', ['cid' => $course->id])?>" + title="<?= sprintf(_('Zur Veranstaltung %s'), htmlReady($course->getFullname())) ?>" + target="_blank"> + <?= htmlReady($course->getFullname('number-name-semester')) ?> + </a> + <input type="hidden" name="courses[]" value="<?= htmlReady($course->id) ?>"> + </td> + <td><?= count($course->getMembersWithStatus('dozent')) ?></td> + <td><?= count($course->getMembersWithStatus('tutor')) ?></td> + <td><?= count($course->getMembersWithStatus('autor')) ?></td> + </tr> + <? endforeach ?> + </tbody> + </table> + </fieldset> + <? if ($return) : ?> + <input type="hidden" name="return" value="<?= htmlReady($return) ?>"> + <? endif ?> + <footer data-dialog-button> + <?= Studip\Button::createAccept(_('Export als Excel-Datei'), 'xlsx') ?> + <?= Studip\Button::createAccept(_('Export als CSV-Datei'), 'csv') ?> + <?= Studip\Button::createCancel(_('Abbrechen'), 'cancel', ['data-dialog' => 'close']) ?> + </footer> +</form> + diff --git a/composer.json b/composer.json index f64b56ec43bce802f87ea360a8326f4a94a10b94..671d91416af261a1f6d457bc073c77b771b5f395 100644 --- a/composer.json +++ b/composer.json @@ -62,7 +62,8 @@ "phpowermove/docblock": "^2.0", "ksubileau/color-thief-php": "^2.0", "symfony/polyfill-php82": "^1.28", - "symfony/polyfill-php83": "^1.28" + "symfony/polyfill-php83": "^1.28", + "phpoffice/phpspreadsheet": "^1.19" }, "replace": { "symfony/polyfill-php54": "*", diff --git a/composer.lock b/composer.lock index b078b59467b2de25ec7fce5df10792901d7e27a0..5b69bf80abbe53452b6c44a23f54e498071a7f3c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b39a0d6902b667c47851b3899c5884fc", + "content-hash": "69792b2073d4bfc2b8ba69de88ab068b", "packages": [ { "name": "algo26-matthias/idna-convert", @@ -1172,6 +1172,188 @@ ], "time": "2021-06-28T04:27:21+00:00" }, + { + "name": "maennchen/zipstream-php", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/c4c5803cc1f93df3d2448478ef79394a5981cc58", + "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58", + "shasum": "" + }, + "require": { + "myclabs/php-enum": "^1.5", + "php": ">= 7.1", + "psr/http-message": "^1.0", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "ext-zip": "*", + "guzzlehttp/guzzle": ">= 6.3", + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": ">= 7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "ZipStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" + } + ], + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": [ + "stream", + "zip" + ], + "support": { + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/maennchen", + "type": "github" + }, + { + "url": "https://opencollective.com/zipstream", + "type": "open_collective" + } + ], + "time": "2020-05-30T13:11:16+00:00" + }, + { + "name": "markbaker/complex", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPComplex.git", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Complex\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@lange.demon.co.uk" + } + ], + "description": "PHP Class for working with complex numbers", + "homepage": "https://github.com/MarkBaker/PHPComplex", + "keywords": [ + "complex", + "mathematics" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPComplex/issues", + "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2" + }, + "time": "2022-12-06T16:21:08+00:00" + }, + { + "name": "markbaker/matrix", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPMatrix.git", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpdocumentor/phpdocumentor": "2.*", + "phploc/phploc": "^4.0", + "phpmd/phpmd": "2.*", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "sebastian/phpcpd": "^4.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Matrix\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@demon-angel.eu" + } + ], + "description": "PHP Class for working with matrices", + "homepage": "https://github.com/MarkBaker/PHPMatrix", + "keywords": [ + "mathematics", + "matrix", + "vector" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPMatrix/issues", + "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1" + }, + "time": "2022-12-02T22:17:43+00:00" + }, { "name": "mishal/iless", "version": "2.2.0", @@ -1331,6 +1513,66 @@ ], "time": "2023-02-06T13:44:46+00:00" }, + { + "name": "myclabs/php-enum", + "version": "1.7.7", + "source": { + "type": "git", + "url": "https://github.com/myclabs/php-enum.git", + "reference": "d178027d1e679832db9f38248fcc7200647dc2b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/php-enum/zipball/d178027d1e679832db9f38248fcc7200647dc2b7", + "reference": "d178027d1e679832db9f38248fcc7200647dc2b7", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7", + "squizlabs/php_codesniffer": "1.*", + "vimeo/psalm": "^3.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "MyCLabs\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP Enum contributors", + "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" + } + ], + "description": "PHP Enum implementation", + "homepage": "http://github.com/myclabs/php-enum", + "keywords": [ + "enum" + ], + "support": { + "issues": "https://github.com/myclabs/php-enum/issues", + "source": "https://github.com/myclabs/php-enum/tree/1.7.7" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", + "type": "tidelift" + } + ], + "time": "2020-11-14T18:14:52+00:00" + }, { "name": "neomerx/cors-psr7", "version": "v2.0.2", @@ -2019,6 +2261,110 @@ }, "time": "2020-10-12T12:39:22+00:00" }, + { + "name": "phpoffice/phpspreadsheet", + "version": "1.19.0", + "source": { + "type": "git", + "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", + "reference": "a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf", + "reference": "a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-gd": "*", + "ext-iconv": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "ext-xmlreader": "*", + "ext-xmlwriter": "*", + "ext-zip": "*", + "ext-zlib": "*", + "ezyang/htmlpurifier": "^4.13", + "maennchen/zipstream-php": "^2.1", + "markbaker/complex": "^3.0", + "markbaker/matrix": "^3.0", + "php": "^7.2 || ^8.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/simple-cache": "^1.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "dompdf/dompdf": "^1.0", + "friendsofphp/php-cs-fixer": "^2.18", + "jpgraph/jpgraph": "^4.0", + "mpdf/mpdf": "^8.0", + "phpcompatibility/php-compatibility": "^9.3", + "phpstan/phpstan": "^0.12.82", + "phpstan/phpstan-phpunit": "^0.12.18", + "phpunit/phpunit": "^8.5", + "squizlabs/php_codesniffer": "^3.5", + "tecnickcom/tcpdf": "^6.3" + }, + "suggest": { + "dompdf/dompdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)", + "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", + "mpdf/mpdf": "Option for rendering PDF with PDF Writer", + "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maarten Balliauw", + "homepage": "https://blog.maartenballiauw.be" + }, + { + "name": "Mark Baker", + "homepage": "https://markbakeruk.net" + }, + { + "name": "Franck Lefevre", + "homepage": "https://rootslabs.net" + }, + { + "name": "Erik Tilt" + }, + { + "name": "Adrien Crivelli" + } + ], + "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", + "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", + "keywords": [ + "OpenXML", + "excel", + "gnumeric", + "ods", + "php", + "spreadsheet", + "xls", + "xlsx" + ], + "support": { + "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.19.0" + }, + "time": "2021-10-31T15:09:20+00:00" + }, { "name": "phpowermove/docblock", "version": "v2.0.1", @@ -2340,6 +2686,58 @@ }, "time": "2021-03-05T17:36:06+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, { "name": "psr/http-factory", "version": "1.0.2", @@ -2612,6 +3010,57 @@ }, "time": "2021-05-03T11:20:27+00:00" }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, + "time": "2017-10-23T01:57:42+00:00" + }, { "name": "ralouphie/getallheaders", "version": "3.0.3", @@ -6068,58 +6517,6 @@ }, "time": "2019-01-08T18:20:26+00:00" }, - { - "name": "psr/http-client", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client/tree/master" - }, - "time": "2020-06-29T06:28:15+00:00" - }, { "name": "sebastian/code-unit-reverse-lookup", "version": "1.0.2", diff --git a/lib/evaluation/classes/EvaluationExportManager.class.php b/lib/evaluation/classes/EvaluationExportManager.class.php index 890a9a869fe02792aa5369760416ffa7a880dfed..0c88e7f2dd6407c46760c9688c922d5ea18c3354 100644 --- a/lib/evaluation/classes/EvaluationExportManager.class.php +++ b/lib/evaluation/classes/EvaluationExportManager.class.php @@ -24,7 +24,6 @@ # Include all required files ================================================ # require_once 'lib/evaluation/evaluation.config.php'; -require_once 'lib/export/export_tmp_gc.inc.php'; require_once EVAL_FILE_EVALDB; require_once EVAL_FILE_ANSWERDB; require_once EVAL_FILE_OBJECT; @@ -250,7 +249,6 @@ class EvaluationExportManager extends AuthorObject { $randomID = StudipObject::createNewID(); $this->filename = $randomID . "." . $this->extension; - export_tmp_gc(); if (!is_dir($GLOBALS['TMP_PATH'])) { return $this->throwError(1, sprintf(_("ExportManager::Das Verzeichnis %s existiert nicht."), $GLOBALS['TMP_PATH'])); } diff --git a/lib/export/csv-p-1.xsl b/lib/export/csv-p-1.xsl deleted file mode 100644 index 7ca6d539096affea3288eb33206261d72eb80305..0000000000000000000000000000000000000000 --- a/lib/export/csv-p-1.xsl +++ /dev/null @@ -1,96 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> -<!-- vosshe@fh-trier.de --> -<xsl:output method="text" encoding="UTF-8" byte-order-mark="yes"/> - -<xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:text>Typ;</xsl:text> - <xsl:text>Name;</xsl:text> - <xsl:text>Fakultaet;</xsl:text> - <xsl:text>Gruppe;</xsl:text> - <xsl:text>Titel;</xsl:text> - <xsl:text>Vorname;</xsl:text> - <xsl:text>Name;</xsl:text> - <xsl:text>Titel2;</xsl:text> - <xsl:text>Telefon;</xsl:text> - <xsl:text>Raum;</xsl:text> - <xsl:text>Sprechzeiten;</xsl:text> - <xsl:text>E-Mail</xsl:text> -<xsl:text> -</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:for-each select="personen"> - <xsl:for-each select="gruppe"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> -</xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text>"</xsl:text> - - <xsl:value-of select="../../../type" /> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="../../../name" /> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="../../../fakultaet" /> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="../@key" /> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="vorname"> - <xsl:value-of select="vorname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nachname"> - <xsl:value-of select="nachname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel2"> - <xsl:value-of select="titel2"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <xsl:text>"</xsl:text> - -<xsl:text> -</xsl:text> - - </xsl:for-each> -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/export/csv-p-2.xsl b/lib/export/csv-p-2.xsl deleted file mode 100644 index d344b3b656bd2076fa6cb852bdc90aa78d542c98..0000000000000000000000000000000000000000 --- a/lib/export/csv-p-2.xsl +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> -<!-- vosshe@fh-trier.de --> -<xsl:output method="text" encoding="UTF-8"/> - -<xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:text>Gruppe;</xsl:text> - <xsl:text>Titel;</xsl:text> - <xsl:text>Vorname;</xsl:text> - <xsl:text>Name;</xsl:text> - <xsl:text>Titel2;</xsl:text> - <xsl:text>Telefon;</xsl:text> - <xsl:text>E-Mail</xsl:text> -<xsl:text> -</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:for-each select="personen"> - <xsl:for-each select="gruppe"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> -</xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text>"</xsl:text> - - <xsl:value-of select="../@key" /> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="vorname"> - <xsl:value-of select="vorname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nachname"> - <xsl:value-of select="nachname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel2"> - <xsl:value-of select="titel2"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <xsl:text>"</xsl:text> - -<xsl:text> -</xsl:text> - - </xsl:for-each> -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/export/csv-t-1.xsl b/lib/export/csv-t-1.xsl deleted file mode 100644 index 79f57009420b44a2b69a3cf5f44b8ce5f018c9e1..0000000000000000000000000000000000000000 --- a/lib/export/csv-t-1.xsl +++ /dev/null @@ -1,194 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:exsl="http://exslt.org/common" - xmlns:func="http://exslt.org/functions" - xmlns:str="http://exslt.org/strings"> - - <xsl:output method="text" encoding="UTF-8"/> - - <xsl:key name="datafields-by-key" match="//personen//datenfeld" use="@key"/> - - <xsl:variable name="collect-datafields"> - <xsl:for-each select="//datenfeld[generate-id(.) = generate-id(key('datafields-by-key', @key)[1])]"> - <xsl:sort select="@key"/> - <entry><xsl:value-of select="@key"/></entry> - <!--xsl:message>Datenfeld: <xsl:value-of select="@key"/></xsl:message--> - </xsl:for-each> - </xsl:variable> - - <xsl:variable name="datafields" select="exsl:node-set($collect-datafields)/entry"/> - - <xsl:key name="zusatzangaben-by-key" match="//personen//zusatzangabe" use="@key"/> - - <xsl:variable name="collect-zusatzangaben"> - <xsl:for-each select="//zusatzangabe[generate-id(.) = generate-id(key('zusatzangaben-by-key', @key)[1])]"> - <xsl:sort select="@key"/> - <!-- filter out identical entries in datafields and zusatzangaben --> - <xsl:variable name="key" select="@key"/> - <xsl:if test="not(//datenfeld[@key=$key])"> - <entry><xsl:value-of select="@key"/></entry> - <!--xsl:message>Datenfeld: <xsl:value-of select="@key"/></xsl:message--> - </xsl:if> - </xsl:for-each> - </xsl:variable> - - <xsl:variable name="zusatzangaben" select="exsl:node-set($collect-zusatzangaben)/entry"/> - - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:text>Anrede;</xsl:text> - <xsl:text>Titel;</xsl:text> - <xsl:text>Vorname;</xsl:text> - <xsl:text>Nachname;</xsl:text> - <xsl:text>Titel2;</xsl:text> - <xsl:text>Nutzernamen;</xsl:text> - <xsl:text>Privatadr;</xsl:text> - <xsl:text>Privatnr;</xsl:text> - <xsl:text>E-Mail;</xsl:text> - <xsl:text>Anmeldedatum;</xsl:text> - <xsl:text>Studiengänge;</xsl:text> - <xsl:if test="$datafields"> - <xsl:for-each select="$datafields"> - <xsl:text>"</xsl:text> - <xsl:value-of select="str:replace(.,'"','""')"/> - <xsl:text>";</xsl:text> - </xsl:for-each> - </xsl:if> - <xsl:if test="$zusatzangaben"> - <xsl:for-each select="$zusatzangaben"> - <xsl:text>"</xsl:text> - <xsl:value-of select="str:replace(.,'"','""')"/> - <xsl:text>";</xsl:text> - </xsl:for-each> - </xsl:if> - <xsl:text>Bemerkung</xsl:text> - <xsl:text> -</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:for-each select="personen"> - <xsl:for-each select="gruppe"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - - </xsl:template> - - <xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text>"</xsl:text> - - <xsl:if test="geschlecht = 1">Herr</xsl:if> - <xsl:if test="geschlecht = 2">Frau</xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel"> - <xsl:value-of select="str:replace(titel,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="vorname"> - <xsl:value-of select="vorname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nachname"> - <xsl:value-of select="nachname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel2"> - <xsl:value-of select="str:replace(titel2,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="username"> - <xsl:value-of select="username"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="adresse"> - <xsl:value-of select="str:replace(adresse,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="privatnummer"> - <xsl:value-of select="str:replace(privatnummer,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="datum_anmeldung"> - <xsl:value-of select="datum_anmeldung"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nutzer_studiengaenge"> - <xsl:value-of select="str:replace(nutzer_studiengaenge,'"','""')"/> - </xsl:if> - - <xsl:text>";"</xsl:text> - <xsl:call-template name="check_datafields"> - <xsl:with-param name="daten" select="datenfelder"/> - </xsl:call-template> - - <xsl:call-template name="check_zusatzangaben"> - <xsl:with-param name="daten" select="zusatzangaben"/> - </xsl:call-template> - - <xsl:if test="bemerkung"> - <xsl:value-of select="bemerkung"/> - </xsl:if> - <xsl:text>"</xsl:text> - - <xsl:text> -</xsl:text> - </xsl:for-each> - </xsl:template> - - <xsl:template name="check_datafields"> - <xsl:param name="daten"/> - <xsl:if test="$datafields"> - <xsl:for-each select="$datafields"> - <xsl:call-template name="show_datafields"> - <xsl:with-param name="daten" select="$daten"/> - <xsl:with-param name="datatitel" select="."/> - </xsl:call-template> - <xsl:text>";"</xsl:text> - </xsl:for-each> - </xsl:if> - </xsl:template> - - <xsl:template name="check_zusatzangaben"> - <xsl:param name="daten"/> - <xsl:if test="$zusatzangaben"> - <xsl:for-each select="$zusatzangaben"> - <xsl:call-template name="show_zusatzangaben"> - <xsl:with-param name="daten" select="$daten"/> - <xsl:with-param name="datatitel" select="."/> - </xsl:call-template> - <xsl:text>";"</xsl:text> - </xsl:for-each> - </xsl:if> - </xsl:template> - - <xsl:template name="show_datafields"> - <xsl:param name="daten"/> - <xsl:param name="datatitel"/> - <xsl:value-of select="str:replace(normalize-space($daten/datenfeld[@key=$datatitel]),'"','""')"/> - </xsl:template> - - <xsl:template name="show_zusatzangaben"> - <xsl:param name="daten"/> - <xsl:param name="datatitel"/> - <xsl:value-of select="str:replace(normalize-space($daten/zusatzangabe[@key=$datatitel]),'"','""')"/> - </xsl:template> - -</xsl:stylesheet> diff --git a/lib/export/csv-t-2.xsl b/lib/export/csv-t-2.xsl deleted file mode 100644 index 53e2eb83207963a591d1e23f8157cdf066d6fa6e..0000000000000000000000000000000000000000 --- a/lib/export/csv-t-2.xsl +++ /dev/null @@ -1,194 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:exsl="http://exslt.org/common" - xmlns:func="http://exslt.org/functions" - xmlns:str="http://exslt.org/strings"> - - <xsl:output method="text" encoding="UTF-8"/> - - <xsl:key name="datafields-by-key" match="//personen//datenfeld" use="@key"/> - - <xsl:variable name="collect-datafields"> - <xsl:for-each select="//datenfeld[generate-id(.) = generate-id(key('datafields-by-key', @key)[1])]"> - <xsl:sort select="@key"/> - <entry><xsl:value-of select="@key"/></entry> - <!--xsl:message>Datenfeld: <xsl:value-of select="@key"/></xsl:message--> - </xsl:for-each> - </xsl:variable> - - <xsl:variable name="datafields" select="exsl:node-set($collect-datafields)/entry"/> - - <xsl:key name="zusatzangaben-by-key" match="//personen//zusatzangabe" use="@key"/> - - <xsl:variable name="collect-zusatzangaben"> - <xsl:for-each select="//zusatzangabe[generate-id(.) = generate-id(key('zusatzangaben-by-key', @key)[1])]"> - <xsl:sort select="@key"/> - <!-- filter out identical entries in datafields and zusatzangaben --> - <xsl:variable name="key" select="@key"/> - <xsl:if test="not(//datenfeld[@key=$key])"> - <entry><xsl:value-of select="@key"/></entry> - <!--xsl:message>Datenfeld: <xsl:value-of select="@key"/></xsl:message--> - </xsl:if> - </xsl:for-each> - </xsl:variable> - - <xsl:variable name="zusatzangaben" select="exsl:node-set($collect-zusatzangaben)/entry"/> - - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:text>Position;</xsl:text> - <xsl:text>Anrede;</xsl:text> - <xsl:text>Titel;</xsl:text> - <xsl:text>Vorname;</xsl:text> - <xsl:text>Nachname;</xsl:text> - <xsl:text>Titel2;</xsl:text> - <xsl:text>Nutzernamen;</xsl:text> - <xsl:text>Privatadr;</xsl:text> - <xsl:text>Privatnr;</xsl:text> - <xsl:text>E-Mail;</xsl:text> - <xsl:text>Studiengänge;</xsl:text> - <xsl:if test="$datafields"> - <xsl:for-each select="$datafields"> - <xsl:text>"</xsl:text> - <xsl:value-of select="str:replace(.,'"','""')"/> - <xsl:text>";</xsl:text> - </xsl:for-each> - </xsl:if> - <xsl:if test="$zusatzangaben"> - <xsl:for-each select="$zusatzangaben"> - <xsl:text>"</xsl:text> - <xsl:value-of select="str:replace(.,'"','""')"/> - <xsl:text>";</xsl:text> - </xsl:for-each> - </xsl:if> - <xsl:text>Bemerkung</xsl:text> - <xsl:text> -</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:for-each select="personen"> - <xsl:for-each select="gruppe"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - - </xsl:template> - - <xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text>"</xsl:text> - - <xsl:if test="position_warteliste"> - <xsl:value-of select="position_warteliste"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="geschlecht = 1">Herr</xsl:if> - <xsl:if test="geschlecht = 2">Frau</xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel"> - <xsl:value-of select="str:replace(titel,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="vorname"> - <xsl:value-of select="vorname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nachname"> - <xsl:value-of select="nachname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel2"> - <xsl:value-of select="str:replace(titel2,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="username"> - <xsl:value-of select="username"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="adresse"> - <xsl:value-of select="str:replace(adresse,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="privatnummer"> - <xsl:value-of select="str:replace(privatnummer,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nutzer_studiengaenge"> - <xsl:value-of select="str:replace(nutzer_studiengaenge,'"','""')"/> - </xsl:if> - - <xsl:text>";"</xsl:text> - <xsl:call-template name="check_datafields"> - <xsl:with-param name="daten" select="datenfelder"/> - </xsl:call-template> - - <xsl:call-template name="check_zusatzangaben"> - <xsl:with-param name="daten" select="zusatzangaben"/> - </xsl:call-template> - - <xsl:if test="bemerkung"> - <xsl:value-of select="bemerkung"/> - </xsl:if> - <xsl:text>"</xsl:text> - - <xsl:text> -</xsl:text> - </xsl:for-each> - </xsl:template> - - <xsl:template name="check_datafields"> - <xsl:param name="daten"/> - <xsl:if test="$datafields"> - <xsl:for-each select="$datafields"> - <xsl:call-template name="show_datafields"> - <xsl:with-param name="daten" select="$daten"/> - <xsl:with-param name="datatitel" select="."/> - </xsl:call-template> - <xsl:text>";"</xsl:text> - </xsl:for-each> - </xsl:if> - </xsl:template> - - <xsl:template name="check_zusatzangaben"> - <xsl:param name="daten"/> - <xsl:if test="$zusatzangaben"> - <xsl:for-each select="$zusatzangaben"> - <xsl:call-template name="show_zusatzangaben"> - <xsl:with-param name="daten" select="$daten"/> - <xsl:with-param name="datatitel" select="."/> - </xsl:call-template> - <xsl:text>";"</xsl:text> - </xsl:for-each> - </xsl:if> - </xsl:template> - - <xsl:template name="show_datafields"> - <xsl:param name="daten"/> - <xsl:param name="datatitel"/> - <xsl:value-of select="str:replace(normalize-space($daten/datenfeld[@key=$datatitel]),'"','""')"/> - </xsl:template> - - <xsl:template name="show_zusatzangaben"> - <xsl:param name="daten"/> - <xsl:param name="datatitel"/> - <xsl:value-of select="str:replace(normalize-space($daten/zusatzangabe[@key=$datatitel]),'"','""')"/> - </xsl:template> - -</xsl:stylesheet> diff --git a/lib/export/csv-t-3.xsl b/lib/export/csv-t-3.xsl deleted file mode 100644 index 7ae2f4969ea17f800b902d8df1cd631a2209f389..0000000000000000000000000000000000000000 --- a/lib/export/csv-t-3.xsl +++ /dev/null @@ -1,189 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:exsl="http://exslt.org/common" - xmlns:func="http://exslt.org/functions" - xmlns:str="http://exslt.org/strings"> - - <xsl:output method="text" encoding="UTF-8"/> - - <xsl:key name="datafields-by-key" match="//personen//datenfeld" use="@key"/> - - <xsl:variable name="collect-datafields"> - <xsl:for-each select="//datenfeld[generate-id(.) = generate-id(key('datafields-by-key', @key)[1])]"> - <xsl:sort select="@key"/> - <entry><xsl:value-of select="@key"/></entry> - <!--xsl:message>Datenfeld: <xsl:value-of select="@key"/></xsl:message--> - </xsl:for-each> - </xsl:variable> - - <xsl:variable name="datafields" select="exsl:node-set($collect-datafields)/entry"/> - - <xsl:key name="zusatzangaben-by-key" match="//personen//zusatzangabe" use="@key"/> - - <xsl:variable name="collect-zusatzangaben"> - <xsl:for-each select="//zusatzangabe[generate-id(.) = generate-id(key('zusatzangaben-by-key', @key)[1])]"> - <xsl:sort select="@key"/> - <!-- filter out identical entries in datafields and zusatzangaben --> - <xsl:variable name="key" select="@key"/> - <xsl:if test="not(//datenfeld[@key=$key])"> - <entry><xsl:value-of select="@key"/></entry> - <!--xsl:message>Datenfeld: <xsl:value-of select="@key"/></xsl:message--> - </xsl:if> - </xsl:for-each> - </xsl:variable> - - <xsl:variable name="zusatzangaben" select="exsl:node-set($collect-zusatzangaben)/entry"/> - - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:text>Gruppe;</xsl:text> - <xsl:text>Titel;</xsl:text> - <xsl:text>Vorname;</xsl:text> - <xsl:text>Nachname;</xsl:text> - <xsl:text>Titel2;</xsl:text> - <xsl:text>Nutzernamen;</xsl:text> - <xsl:text>Privatadr;</xsl:text> - <xsl:text>Privatnr;</xsl:text> - <xsl:text>E-Mail;</xsl:text> - <xsl:text>Anmeldedatum;</xsl:text> - <xsl:text>Studiengänge;</xsl:text> - <xsl:if test="$datafields"> - <xsl:for-each select="$datafields"> - <xsl:text>"</xsl:text> - <xsl:value-of select="str:replace(.,'"','""')"/> - <xsl:text>";</xsl:text> - </xsl:for-each> - </xsl:if> - <xsl:if test="$zusatzangaben"> - <xsl:for-each select="$zusatzangaben"> - <xsl:text>"</xsl:text> - <xsl:value-of select="str:replace(.,'"','""')"/> - <xsl:text>";</xsl:text> - </xsl:for-each> - </xsl:if> - <xsl:text> -</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:for-each select="personen"> - <xsl:for-each select="gruppe"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - - </xsl:template> - - <xsl:template name="showperson"> - <xsl:variable name="namegruppe" select="@key"/> - <xsl:for-each select="person"> - <xsl:text>"</xsl:text> - <xsl:value-of select="str:replace($namegruppe, '"','""')"/> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel"> - <xsl:value-of select="str:replace(titel,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="vorname"> - <xsl:value-of select="vorname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nachname"> - <xsl:value-of select="nachname"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="titel2"> - <xsl:value-of select="str:replace(titel2,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="username"> - <xsl:value-of select="username"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="adresse"> - <xsl:value-of select="str:replace(adresse,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="privatnummer"> - <xsl:value-of select="str:replace(privatnummer,'"','""')"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="datum_anmeldung"> - <xsl:value-of select="datum_anmeldung"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="nutzer_studiengaenge"> - <xsl:value-of select="str:replace(nutzer_studiengaenge,'"','""')"/> - </xsl:if> - - <xsl:text>";"</xsl:text> - <xsl:call-template name="check_datafields"> - <xsl:with-param name="daten" select="datenfelder"/> - </xsl:call-template> - - <xsl:call-template name="check_zusatzangaben"> - <xsl:with-param name="daten" select="zusatzangaben"/> - </xsl:call-template> - - <xsl:text>"</xsl:text> - - <xsl:text> -</xsl:text> - </xsl:for-each> - </xsl:template> - - <xsl:template name="check_datafields"> - <xsl:param name="daten"/> - <xsl:if test="$datafields"> - <xsl:for-each select="$datafields"> - <xsl:call-template name="show_datafields"> - <xsl:with-param name="daten" select="$daten"/> - <xsl:with-param name="datatitel" select="."/> - </xsl:call-template> - <xsl:text>";"</xsl:text> - </xsl:for-each> - </xsl:if> - </xsl:template> - - <xsl:template name="check_zusatzangaben"> - <xsl:param name="daten"/> - <xsl:if test="$zusatzangaben"> - <xsl:for-each select="$zusatzangaben"> - <xsl:call-template name="show_zusatzangaben"> - <xsl:with-param name="daten" select="$daten"/> - <xsl:with-param name="datatitel" select="."/> - </xsl:call-template> - <xsl:text>";"</xsl:text> - </xsl:for-each> - </xsl:if> - </xsl:template> - - <xsl:template name="show_datafields"> - <xsl:param name="daten"/> - <xsl:param name="datatitel"/> - <xsl:value-of select="str:replace(normalize-space($daten/datenfeld[@key=$datatitel]),'"','""')"/> - </xsl:template> - - <xsl:template name="show_zusatzangaben"> - <xsl:param name="daten"/> - <xsl:param name="datatitel"/> - <xsl:value-of select="str:replace(normalize-space($daten/zusatzangabe[@key=$datatitel]),'"','""')"/> - </xsl:template> - -</xsl:stylesheet> diff --git a/lib/export/csv-v-1.xsl b/lib/export/csv-v-1.xsl deleted file mode 100644 index d14f87cea4389379832faf757fda2dc4fae1e5a3..0000000000000000000000000000000000000000 --- a/lib/export/csv-v-1.xsl +++ /dev/null @@ -1,120 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> -<!-- vosshe@fh-trier.de --> -<xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:text>Einrichtung-Typ;</xsl:text> - <xsl:text>Einrichtung-Name;</xsl:text> - <xsl:text>Einrichtung-Fakultaet;</xsl:text> - <xsl:text>Typ;</xsl:text> - <xsl:text>Lehrende;</xsl:text> - <xsl:text>Titel;</xsl:text> - <xsl:text>Untertitel;</xsl:text> - <xsl:text>Raum;</xsl:text> - <xsl:text>Art;</xsl:text> - <xsl:text>max. Teilnehmende;</xsl:text> - <xsl:text>ECTS;</xsl:text> - <xsl:text>Vorbesprechung;</xsl:text> - <xsl:text>erster Termin;</xsl:text> - <xsl:text>Termin;</xsl:text> - <xsl:text>Lernorganisation;</xsl:text> - <xsl:text>sonstiges</xsl:text> -<xsl:text> -</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:for-each select="seminare"> - <xsl:for-each select="gruppe"> - <xsl:call-template name="showseminar" /> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - -</xsl:template> - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <xsl:text>"</xsl:text> - - <xsl:value-of select="../../../type" /> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="../../../name" /> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="../../../fakultaet" /> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="../@key" /> - <xsl:text>";"</xsl:text> - - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="titel"/> - <xsl:text>";"</xsl:text> - - <xsl:if test="untertitel"> - <xsl:value-of select="untertitel"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="art"> - <xsl:value-of select="art"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="teilnehmerzahl"> - <xsl:value-of select="normalize-space(teilnehmerzahl)"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="ects"> - <xsl:value-of select="ects"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="termine/vorbesprechung"> - <xsl:value-of select="termine/vorbesprechung"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="termine/erstertermin"> - <xsl:value-of select="termine/erstertermin"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="termine/termin"> - <xsl:value-of select="termine/termin"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="lernorga"> - <xsl:value-of select="lernorga"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="sonstiges"> - <xsl:value-of select="sonstiges"/> - </xsl:if> - <xsl:text>"</xsl:text> - - <xsl:text> -</xsl:text> - </xsl:for-each> -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/export/csv-v-2.xsl b/lib/export/csv-v-2.xsl deleted file mode 100644 index d993881920a9d325000a758c71346309418c68ba..0000000000000000000000000000000000000000 --- a/lib/export/csv-v-2.xsl +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> -<!-- vosshe@fh-trier.de --> -<xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:text>Typ;</xsl:text> - <xsl:text>Lehrende;</xsl:text> - <xsl:text>Titel;</xsl:text> - <xsl:text>max. Teilnehmende;</xsl:text> - <xsl:text>ECTS;</xsl:text> - <xsl:text>Termin</xsl:text> -<xsl:text> -</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:for-each select="seminare"> - <xsl:for-each select="gruppe"> - <xsl:call-template name="showseminar" /> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - </xsl:for-each> - -</xsl:template> - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <xsl:text>"</xsl:text> - - <xsl:value-of select="../@key" /> - <xsl:text>";"</xsl:text> - - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:text>";"</xsl:text> - - <xsl:value-of select="titel"/> - <xsl:text>";"</xsl:text> - - <xsl:if test="teilnehmerzahl"> - <xsl:value-of select="normalize-space(teilnehmerzahl)"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="ects"> - <xsl:value-of select="ects"/> - </xsl:if> - <xsl:text>";"</xsl:text> - - <xsl:if test="termine/termin"> - <xsl:value-of select="termine/termin"/> - </xsl:if> - <xsl:text>"</xsl:text> - - <xsl:text> -</xsl:text> - </xsl:for-each> -</xsl:template> - -</xsl:stylesheet> diff --git a/lib/export/export_choose_xslt.inc.php b/lib/export/export_choose_xslt.inc.php deleted file mode 100644 index 3bddbc336fb0e282de1fd49a3beb0426a1fa9845..0000000000000000000000000000000000000000 --- a/lib/export/export_choose_xslt.inc.php +++ /dev/null @@ -1,244 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** - * Export-subfile. Choses which XSL-Script to use. - * - * In this file there are several forms which help choosing the proper XSL-Script - * to transform the export-data into a specific file-format. - * - * @author Arne Schroeder <schroeder@data.quest.de> - * @access public - * @modulegroup export_modules - * @module export_choose_xslt - * @package Export - */ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export_choose_xslt.inc.php -// pages for choosing an xslt-script -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -use Studip\Button, Studip\LinkButton; - -$perm->check('tutor'); - -require_once 'lib/export/export_xslt_vars.inc.php'; // Liste der XSLT-Skripts -require_once 'lib/dates.inc.php'; // Datumsfunktionen - -/** - * Checks given parameters - * - * This function checks the given parameters. If some are missing or refer to a XSL-file that - * doesn't exist it returns false and adds a warning to export_error. - * - * @access public - * @return boolean - */ -function CheckParamXSLT() -{ - global $ex_type, $xml_file_id, $page, $o_mode, $format, $choose, $xslt_files, $export_o_modes, $export_ex_types, $export_error, $export_error_num; - $mod_counter = 0; - $page = (int)$page; - if ($page === 1) { - reset($xslt_files); - foreach ($xslt_files as $val) { - if (!empty($val[$ex_type]) && !empty($val[$format])) { - $mod_counter++; - } - } - if ($mod_counter === 0 && $format !== "xml") { - $export_error .= _("Für dieses Format sind keine Ausgabemodule installiert.<br>Bitte wählen Sie ein anderes Ausgabeformat.") . "<br>"; - $page = 0; - } - - if (!$format) { - $page = 0; - } - reset($xslt_files); - } - - if ($page === 2 && !$choose) { - $page = 1; - } - if ( /*($xml_file_id != "") AND */ (in_array($ex_type, $export_ex_types)) && (in_array($o_mode, $export_o_modes))) { - return true; - } - - $export_error .= "<b>" . _("Unzulässiger Seitenaufruf!") . "</b><br>"; - $export_error_num++; - return false; -} - -$export_pagename = _("Konvertierung der Daten: "); -$export_pagecontent = ''; -$xslt_filename = mb_strlen(Request::get('xslt_filename')) ? basename(stripslashes(Request::get('xslt_filename'))) : $xslt_filename_default; - -if (!CheckParamXSLT()) { - $export_pagename .= _('Es ist ein Fehler aufgetreten.'); - $export_pagecontent .= MessageBox::error( - _('Die Parameter, mit denen diese Seite aufgerufen wurde, sind fehlerhaft oder unvollständig.') - ); -} - -// Die Seiten 2 und 3 ueberspringen, wenn als Dateiformat XML gewaehlt wurde -if ($format === "xml" && $page === 1) { - $xml_file_id = ""; - $o_mode = "file"; - $page = 3; -// Seite 1 : Auswahl des Dateiformats -} elseif (!isset($page) || $page === 0) { - $export_pagename .= _("Auswahl des Dateiformats"); - - unset($export_msg); - unset($xml_printimage); - unset($xml_printlink); - unset($xml_printdesc); - unset($xml_printcontent); - - $export_info = null; - - $export_pagecontent .= "<form class=\"default\" method=\"POST\" action=\"" . URLHelper::getLink() . "\">"; - $export_pagecontent .= "<fieldset><legend>" . _("Bitte wählen Sie, in welchem Format die Daten ausgegeben werden sollen!") . "</legend>"; - - $export_pagecontent .= CSRFProtection::tokenTag(); - $export_pagecontent .= "<label>" . _("Ausgabeformat:") . "<select name=\"format\">"; - - foreach ($output_formats as $key => $val) { - $export_pagecontent .= "<option value=\"" . $key . "\""; - if ($format == $key) { - $export_pagecontent .= " selected"; - } - $export_pagecontent .= ">" . $val; - } - $export_pagecontent .= "</select></label>"; - $export_pagecontent .= "<label>" . _("Name der Datei (z.B. »Test«):"); - $export_pagecontent .= "<input type=\"text\" name=\"xslt_filename\" value=\"" . htmlReady($xslt_filename) . "\">"; - $export_pagecontent .= "</label>"; - $export_pagecontent .= "<input type=\"hidden\" name=\"page\" value=\"1\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"o_mode\" value=\"" . htmlReady($o_mode) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"range_id\" value=\"" . htmlReady($range_id) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem\" value=\"" . htmlReady($ex_sem) . "\">"; - foreach (array_keys($ex_sem_class) as $semclassid) { - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem_class[" . htmlReady($semclassid) . "]\" value=\"1\">"; - } - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_type\" value=\"" . htmlReady($ex_type) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"choose\" value=\"" . htmlReady($choose) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"xml_file_id\" value=\"" . htmlReady($xml_file_id) . "\">"; - - $export_pagecontent .= "</fieldset>"; - $export_weiter_button = '<footer>' . Button::create('<< ' . _('Zurück'), 'back'); - $export_weiter_button .= Button::create(_('Weiter') . ' >>', 'next') . "</div>"; - - $export_weiter_button .= "</footer></form>"; -// Seite 2 : Auswahl des XSLT-Scripts -} elseif ($page === 1) { - if (mb_strpos($choose, $format) === false) { - unset($choose); - } - $export_pagename .= _("Auswahl des Ausgabemoduls"); - $export_info = null; - $export_pagecontent .= '<form class="default" method="POST" action="' . URLHelper::getLink() . '">'; - $export_pagecontent .= '<fieldset><legend>' . _('Ausgabemodul') . '</legend>'; - $export_pagecontent .= CSRFProtection::tokenTag(); - $export_pagecontent .= ""; - - $opt_num = 0; - foreach ($xslt_files as $key => $val) { - if (!empty($val[$ex_type]) && !empty($val[$format])) { - $export_pagecontent .= "<label><input type=\"radio\" name=\"choose\" value=\"" . $key . "\""; - if (empty($choose) && $opt_num == 0 || (!empty($choose) && $key == $choose)) { - $export_pagecontent .= " checked"; - } - $export_pagecontent .= ">" . $val["name"]; - $export_pagecontent .= tooltipIcon($val["desc"]); - $export_pagecontent .= "</label>"; - $opt_num++; - } - } - - $export_pagecontent .= '</fieldset>'; - $export_pagecontent .= '<input type="hidden" name="page" value="2">'; - $export_pagecontent .= '<input type="hidden" name="format" value="' . htmlReady($format) . '">'; - $export_pagecontent .= '<input type="hidden" name="o_mode" value="' . htmlReady($o_mode) . '">'; - $export_pagecontent .= '<input type="hidden" name="ex_type" value="' . htmlReady($ex_type) . '">'; - $export_pagecontent .= '<input type="hidden" name="ex_sem" value="' . htmlReady($ex_sem) . '">'; - foreach (array_keys($ex_sem_class) as $semclassid) { - $export_pagecontent .= '<input type="hidden" name="ex_sem_class[' . htmlReady($semclassid) . ']" value="1">'; - } - $export_pagecontent .= '<input type="hidden" name="range_id" value="' . htmlReady($range_id) . '">'; - $export_pagecontent .= '<input type="hidden" name="xml_file_id" value="' . htmlReady($xml_file_id) . '">'; - $export_pagecontent .= '<input type="hidden" name="xslt_filename" value="' . htmlReady($xslt_filename) . '">'; - - $export_weiter_button = '<footer>' . Button::create('<< ' . _('Zurück'), 'back'); - - $export_weiter_button .= Button::create(_('Weiter') . ' >>', 'next'); - $export_weiter_button .= '</footer></form>'; -// Seite 3 : Download der Dateien -} elseif ($page === 2) { - $export_pagename .= _("Download der Dateien"); - $export_info = _("Die benötigten Dateien liegen nun zum Download bereit."); - $export_pagecontent .= "<form class=\"default\" method=\"post\" action=\"" . URLHelper::getLink() . "\">"; - $export_pagecontent .= CSRFProtection::tokenTag(); - - $xml_printimage = '<a href="' . FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) . '">'; - $xml_printimage .= Icon::create($export_icon['xml'])->asImg(['class' => 'text-top']); - $xml_printimage .= '</a>'; - $xml_printlink = '<a href="' . FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) . '">' . htmlReady($xml_filename) . '</a>'; - $xml_printdesc = _("XML-Daten"); - $xml_printcontent = _("In dieser Datei sind die Daten als XML-Tags gespeichert. Diese Tags können mit einem XSLT-Script verarbeitet werden.") . "<br>"; - - $xslt_printimage = '<a href="' . FileManager::getDownloadLinkForTemporaryFile($xslt_files[$choose]['file'], $xslt_files[$choose]['name'] . '.xsl') . '">'; - $xslt_printimage .= Icon::create($export_icon['xslt'])->asImg(['class' => 'text-top']); - $xslt_printimage .= '</a>'; - $xslt_printlink = '<a href="' . FileManager::getDownloadLinkForTemporaryFile($xslt_files[$choose]['file'], $xslt_files[$choose]['name'] . '.xsl') . '">' . $xslt_files[$choose]['name'] . '.xsl</a>'; - $xslt_printdesc = _("XSLT-Datei"); - $xslt_printcontent = _("Dies ist das XSLT-Script zur Konvertierung der Daten. Klicken Sie auf den Dateinamen, um die Datei zu öffnen.") . "<br>"; - - $export_pagecontent .= ""; - $export_pagecontent .= "<input type=\"hidden\" name=\"page\" value=\"3\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"choose\" value=\"" . htmlReady($choose) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"format\" value=\"" . htmlReady($format) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"o_mode\" value=\"" . htmlReady($o_mode) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_type\" value=\"" . htmlReady($ex_type) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem\" value=\"" . htmlReady($ex_sem) . "\">"; - foreach (array_keys($ex_sem_class) as $semclassid) { - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem_class[" . htmlReady($semclassid) . "]\" value=\"1\">"; - } - $export_pagecontent .= "<input type=\"hidden\" name=\"range_id\" value=\"" . htmlReady($range_id) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"xml_file_id\" value=\"" . htmlReady($xml_file_id) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"xslt_filename\" value=\"" . htmlReady($xslt_filename) . "\">"; - - $export_weiter_button = "<footer>" . Button::create('<< ' . _('Zurück'), 'back'); - if (Config::get()->XSLT_ENABLE) { - $export_pagecontent .= _("Um die Daten mit dem installierten XSLT-Prozessor in das gewünschte Format zu bringen, klicken Sie bitte auf 'weiter'") . "<br><br>"; - $export_weiter_button .= LinkButton::create(_('Weiter') . ' >>', '#', ['name' => 'next']); - } else { - $export_pagecontent .= "<br><br><br>"; - } - - $export_weiter_button .= "</footer></form>"; - - $export_pagecontent .= MessageBox::info(sprintf( - _('Diese Seite bereitet die Datenausgabe vor. %s Schritt 3/3 %s'), - '<br><i>', '</i>' - )); -} diff --git a/lib/export/export_config.inc.php b/lib/export/export_config.inc.php deleted file mode 100644 index d4c57cebd5d5d35495c6e9fe30e48a8e925eef02..0000000000000000000000000000000000000000 --- a/lib/export/export_config.inc.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -// <<-- EXPORT-SETTINGS -global $export_o_modes, - $export_ex_types, - $export_ex_types, - $skip_page_3, - $xml_filename, - $xslt_filename_default, - $output_formats, - $export_icon; -// Export modes -$export_o_modes = ["start","file","choose", "direct","processor","passthrough"]; -// Exportable output-types -$export_ex_types = ["veranstaltung", "person", "forschung"]; - -$skip_page_3 = true; -// name of generated XML-file -$xml_filename = "data.xml"; -// name of generated output-file -$xslt_filename_default = "studip"; - -// existing output formats -$output_formats = [ - "html" => "Hypertext Markup Language (HTML)", - "rtf" => "Rich Text Format (RTF)", - "txt" => "Text (TXT)", - "csv" => "Comma Separated Values (Excel)", - "fo" => "Adobe Postscript (PDF)", - "xml" => "Extensible Markup Language (XML)" -]; - -// Icons für die Ausgabeformate -$export_icon["xml"] = "file-generic"; -$export_icon["xslt"] = "file-office"; -$export_icon["xsl"] = "file-office"; -$export_icon["rtf"] = "file-text"; -$export_icon["fo"] = "file-pdf"; -$export_icon["pdf"] = "file-pdf"; -$export_icon["html"] = "file-text"; -$export_icon["htm"] = "file-text"; -$export_icon["txt"] = "file-text"; -$export_icon["csv"] = "file-office"; diff --git a/lib/export/export_linking_func.inc.php b/lib/export/export_linking_func.inc.php deleted file mode 100644 index d5f66aa3e34ffda6d8f97c46fa71a4f5238e9b65..0000000000000000000000000000000000000000 --- a/lib/export/export_linking_func.inc.php +++ /dev/null @@ -1,222 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Export-functions to create links to the export-module. -* -* In this file there are three functions which help to include the export-module into Stud.IP-pages. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_linking_functions -* @package Export -*/ -require_once 'lib/export/export_config.inc.php'; - -use Studip\Button, Studip\LinkButton; - -/** -* Generates a form that can be put into Stud.IP-pages to link to the export-module. -* -* This function returns a string with a HTML-form that links to the export-module. -* It passes the given parameters in order to allow to jump to a specific part of the export-module. -* -* @access public -* @param string $range_id export-range -* @param string $ex_type type of data to be exported -* @param string $filename filename for data-file -* @param string $format file-format for export -* @param string $filter grouping-category for export -* @return string -*/ -function export_form($range_id, $ex_type = "", $filename = "", $format = "", $filter = "") -{ - global $output_formats, $xslt_filename; - $filename = $xslt_filename; - require_once ("lib/export/export_xslt_vars.inc.php"); - $export_string = "<form action=\"" . "export.php\" method=\"post\">"; - $export_string .= CSRFProtection::tokenTag(); - $export_string .= "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tr><td class=\"table_row_even\"> "; - - $export_string .= "<b> "._("Diese Daten exportieren: ") . "</b>"; - $export_string .= "</td><td align=\"center\" class=\"table_row_even\">"; - $export_string .= "<select name=\"format\">"; - foreach ($output_formats as $key => $val) - { - $export_string .= "<option value=\"" . $key . "\""; - if ($format==$key) { - $export_string .= " selected"; - } - $export_string .= ">" . $val; - } - $export_string .= "</select>"; - - $export_string .= "</td><td align=\"right\" class=\"table_row_even\">"; - $export_string .= Button::create(_('Export'), 'export', ['title' => _('Diese Daten exportieren')]); - - $export_string .= "<input type=\"hidden\" name=\"range_id\" value=\"$range_id\">"; - $export_string .= "<input type=\"hidden\" name=\"o_mode\" value=\"choose\">"; - $export_string .= "<input type=\"hidden\" name=\"page\" value=\"1\">"; - $export_string .= "<input type=\"hidden\" name=\"ex_type\" value=\"$ex_type\">"; - $export_string .= "<input type=\"hidden\" name=\"filter\" value=\"$filter\">"; - $export_string .= "<input type=\"hidden\" name=\"xslt_filename\" value=\"$filename\">"; - $export_string .= "</td></tr></table>"; - $export_string .= "</form>"; - return $export_string; -} - -/** -* Generates a form that can be put into the sidebar to link to the export-module. -* -* This function returns a string with a HTML-form that links to the export-module. -* It passes the given parameters in order to allow to jump to a specific part of the export-module. -* -* @access public -* @param string $range_id export-range -* @param string $ex_type type of data to be exported -* @param string $filename filename for data-file -* @param string $format file-format for export -* @param string $filter grouping-category for export -* @return string -*/ -function export_form_sidebar($range_id, $ex_type = "", $filename = "", $format = "", $filter = "") -{ - global $output_formats, $xslt_filename; - $filename = $xslt_filename; - require_once ("lib/export/export_xslt_vars.inc.php"); - $export_string = "<form class=\"default\" action=\"" . URLHelper::getLink('export.php') . "\" method=\"post\">"; - $export_string .= CSRFProtection::tokenTag(); - $export_string .= "<select name=\"format\">"; - foreach ($output_formats as $key => $val) - { - $export_string .= "<option value=\"" . htmlReady($key) . "\""; - if ($format==$key) { - $export_string .= " selected"; - } - $export_string .= ">" . htmlReady(my_substr($val, 0, 20)) . "</option>"; - } - $export_string .= "</select>"; - - $export_string .= Button::create(_('Export'), 'export', ['title' => _('Daten Exportieren')]); - $export_string .= "<input type=\"hidden\" name=\"range_id\" value=\"" . htmlReady($range_id) . "\">"; - $export_string .= "<input type=\"hidden\" name=\"o_mode\" value=\"choose\">"; - $export_string .= "<input type=\"hidden\" name=\"page\" value=\"1\">"; - $export_string .= "<input type=\"hidden\" name=\"ex_type\" value=\"" . htmlReady($ex_type) . "\">"; - $export_string .= "<input type=\"hidden\" name=\"filter\" value=\"" . htmlReady($filter) . "\">"; - $export_string .= "<input type=\"hidden\" name=\"xslt_filename\" value=\"" . htmlReady($filename) . "\">"; - $export_string .= "</form>"; - return $export_string; -} - -/** -* Generates a link to the export-module that can be put into Stud.IP-pages. -* -* This function returns a string with a link to the export-module. -* It passes the given parameters in order to allow to jump to a specific part of the export-module. -* -* @access public -* @param string $range_id export-range -* @param string $ex_type type of data to be exported -* @param string $filename filename for data-file -* @param string $format file-format for export -* @param string $choose xslt-Script for transformation -* @param string $filter grouping-category for export -* @return string -*/ -function export_link($range_id, $ex_type = "", $filename = "", $format = "", $choose = "", $filter = "", $content = "", $o_mode = 'processor') -{ - global $i_page; - - $export_string = '<a href="'; - if ($choose != "") { - $export_string .= URLHelper::getLink( - 'export.php', - [ - 'range_id' => $range_id, - 'ex_type' => $ex_type, - 'xslt_filename' => $filename, - 'format' => $format, - 'choose' => $choose, - 'o_mode' => $o_mode, - 'filter' => $filter, - 'jump' => $i_page - ] - ); - } - elseif ($ex_type != "") { - $export_string .= URLHelper::getLink( - 'export.php', - [ - 'range_id' => $range_id, - 'ex_type' => $ex_type, - 'xslt_filename' => $filename, - 'o_mode' => 'choose', - 'filter' => $filter - ] - ); - } - else { - $export_string .= URLHelper::getLink( - 'export.php', - [ - 'range_id' => $range_id, - 'o_mode' => 'start' - ] - ); - } - - $export_string .= '">' . ($content ? $content : _("Diese Daten exportieren")); - $export_string .= '</a>'; - return $export_string; -} - -/** -* Generates a Button with a link to the export-module that can be put into Stud.IP-pages. -* -* This function returns a string containing an export-button with a link to the export-module. -* It passes the given parameters in order to allow to jump to a specific part of the export-module. -* -* @access public -* @param string $range_id export-range -* @param string $ex_type type of data to be exported -* @param string $filename filename for data-file -* @param string $format file-format for export -* @param string $choose xslt-Script for transformation -* @param string $filter grouping-category for export -* @return string -*/ -function export_button($range_id, $ex_type = "", $filename = "", $format = "", $choose = "", $filter = "") -{ - global $i_page; - if ($choose != "") { - $parameters = [ - 'range_id' => $range_id, - 'ex_type' => $ex_type, - 'xslt_filename' => $filename, - 'format' => $format, - 'choose' => $choose, - 'o_mode' => 'processor', - 'filter' => $filter, - 'jump' => $i_page - ]; - } - elseif ($ex_type != "") { - $parameters = [ - 'range_id' => $range_id, - 'ex_type' => $ex_type, - 'xslt_filename' => $filename, - 'o_mode' => 'choose', - 'filter' => $filter, - ]; - } - else { - $parameters = [ - 'range_id' => $range_id, - 'o_mode' => 'start', - ]; - } - return Studip\LinkButton::create(_('Export'), URLHelper::getURL('export.php', $parameters)); -} diff --git a/lib/export/export_run_fop.inc.php b/lib/export/export_run_fop.inc.php deleted file mode 100644 index 24a87cdaa5b9212d39a2331221051bd687cae11e..0000000000000000000000000000000000000000 --- a/lib/export/export_run_fop.inc.php +++ /dev/null @@ -1,132 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** - * Export-Subfile that calls the FOP. - * - * This file calls the Formatting-Objects-Processor to generate PDF-Files. - * - * @author Arne Schroeder <schroeder@data.quest.de> - * @access public - * @modulegroup export_modules - * @module export_run_fop - * @package Export - */ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export_run_fop.inc.php -// pages for choosing an xslt-script -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -if (($o_mode != "direct") AND ($o_mode != "passthrough")) - $perm->check("tutor"); - - -/** - * Checks given parameters - * - * This function checks the given parameters. If some are missing - * it returns false and adds a warning to $export_error. - * - * @access public - * @return boolean - */ -function CheckParamRUN_FOP() -{ - global $export_error, $export_error_num, $result_file; - - if ($result_file == "") { - $export_error .= "<b>" . _("Fehlende Parameter!") . "</b><br>"; - $export_error_num++; - return false; - } - - - return true; -} - - -if (!CheckParamRUN_FOP()) { - PageLayout::postError( - _('Die Parameter, mit denen diese Seite aufgerufen wurde, sind fehlerhaft.') - ); -} elseif (!Config::get()->FOP_ENABLE) { - PageLayout::postInfo( - _('Die Erweiterung zum Erzeugen von PDF-Dateien ist nicht aktiviert, es konnten daher nur Formatting Objects erzeugt werden.') - ); -} else { - $export_pagename = _("Download der PDF-Datei"); - - // Process the document - escapeshellcmd($result_file); - escapeshellcmd($TMP_PATH); - $pdf_file = md5(uniqid(rand())) . ".pdf"; - - $str = "$FOP_SH_CALL $TMP_PATH/$result_file $TMP_PATH/$pdf_file "; - - $out = exec($str); - if ($out == '') { - $out = $str; - } - if (file_exists($TMP_PATH . '/' . $pdf_file)) { - $link2 = '<a href="' . FileManager::getDownloadLinkForTemporaryFile($pdf_file, $xslt_filename . '.pdf') . '">'; - $export_pagecontent = '<table cellspacing="0" cellpadding="0" border="0" width="40%"><tr align="center"><td>'; - $export_pagecontent .= '<b>' . _("Ausgabe-Datei: ") . '</b>'; - $export_pagecontent .= '</td><td>' . $link2 . $xslt_filename . '.pdf</a>'; - $export_pagecontent .= '</td></tr></table><br>'; - - $result_printimage = ' <a href="' . FileManager::getDownloadLinkForTemporaryFile($pdf_file, $xslt_filename . '.pdf') . '">'; - $result_printimage .= Icon::create($export_icon['pdf'], 'clickable')->asImg(['class' => 'text-top']); - $result_printimage .= '</a>'; - $result_printlink = ' <a href="' . FileManager::getDownloadLinkForTemporaryFile($pdf_file, $xslt_filename . '.pdf') . '" class="tree"> ' . $xslt_filename . '.pdf</a>'; - $result_printdesc = _("PDF-Datei"); - $result_printcontent = _("Dies ist die fertige PDF-Datei.") . '<br>'; - } else { - unset($result_printimage); - unset($result_printlink); - unset($result_printdesc); - unset($result_printcontent); - unset($export_info); - unset($export_msg); - $export_pagecontent = ""; - $export_error = "<b>" . sprintf(_("Bei der Erzeugung der PDF-Datei ist ein Fehler aufgetreten. <br>Fehlermeldung: %s <br>Datei: %s"), $out, $pdf_file) . "</b><br>"; - $export_error_num++; - } - - $xml_printimage = ' <a href="' . FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) . '">'; - $xml_printimage .= Icon::create($export_icon['xml'], 'clickable')->asImg(['class' => 'text-top']); - $xml_printimage .= '</a>'; - $xml_printlink = ' <a href="' . FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) . '" class="tree"> ' . $xml_filename . '</a>'; - $xml_printdesc = _("XML-Daten"); - $xml_printcontent = _("In dieser Datei sind die Daten als XML-Tags gespeichert. Diese Tags können mit einem XSLT-Script verarbeitet werden.") . "<br>"; - - $xslt_printimage = '<a href="' . FileManager::getDownloadLinkForTemporaryFile($result_file, $xslt_filename . '.' . $format) . '">'; - $xslt_printimage .= Icon::create($export_icon[$format], 'clickable')->asImg(['class' => 'text-top']); - $xslt_printimage .= '</a>'; - $xslt_printlink = '<a href="' . FileManager::getDownloadLinkForTemporaryFile($result_file, $xslt_filename . '.' . $format) . '" class="tree">' . $xslt_filename . '.' . $format . '</a>'; - $xslt_printdesc = _("Formatting-Objects-Datei"); - $xslt_printcontent = _("In dieser Datei sind die Formatting Objects zur Erzeugung der PDF-Datei gespeichert.") . "<br>"; - - PageLayout::postSuccess(sprintf( - _('Um die Ausgabe-Datei herunterzuladen, klicken Sie %s hier %s.'), - $link2, '</a>' - )); -} diff --git a/lib/export/export_run_xslt.inc.php b/lib/export/export_run_xslt.inc.php deleted file mode 100644 index 4505493fb270a6581ac304fff37af8ecb7af0e9d..0000000000000000000000000000000000000000 --- a/lib/export/export_run_xslt.inc.php +++ /dev/null @@ -1,219 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Export-Subfile that calls the XSLT-Process. -* -* This file calls the XSLT-Process to convert XML-Files into other file-formats. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_run_xslt -* @package Export -*/ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export_run_xslt.inc.php -// Integration of xslt-processor -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -use Studip\Button, Studip\LinkButton; - -if (($o_mode != "direct") AND ($o_mode != "passthrough")) - $perm->check("tutor"); - -require_once ('lib/export/export_xslt_vars.inc.php'); // Liste der XSLT-Skripts - -/** -* Checks given parameters -* -* This function checks the given parameters. If some are missing -* it returns false and adds a warning to $export_error. -* -* @access public -* @return boolean -*/ -function CheckParamRUN() -{ -global $ex_type, $o_mode, $xml_file_id, $format, $choose, $xslt_files, $export_error, $export_error_num, $export_o_modes, $export_ex_types; - - if (($xml_file_id == "") - OR ($xslt_files[$choose]["file"] == "") - OR (Config::get()->XSLT_ENABLE != true)) - { - $export_error .= "<b>" . _("Fehlende Parameter!") . "</b><br>"; - $export_error_num++; - return false; - } - - if (!in_array($ex_type, $export_ex_types) - OR (!in_array($o_mode, $export_o_modes)) - OR (!$xslt_files[$choose][$format])) - { - $export_error .= "<b>" . _("Unzulässiger Seitenaufruf!") . "</b><br>"; - $export_error_num++; - return false; - } - - return true; -} - -/** - * Convert all 2, 3 and 4 byte UTF-8 characters to the RTF unicode sequence \uX - * - * @param string $utf8_text rft document - * @return string converted document - */ -function encode_utf8_for_rtf($utf8_text) -{ - $utf8_patterns = [ - "[\xC0-\xDF][\x80-\xBF]", - "[\xE0-\xEF][\x80-\xBF]{2}", - "[\xF0-\xF7][\x80-\xBF]{3}", - ]; - $unicode_text = $utf8_text; - - foreach($utf8_patterns as $pattern) { - $unicode_text = preg_replace_callback("/$pattern/", - function($treffer) { - return '\u'. hexdec(bin2hex(mb_convert_encoding($treffer[0], 'UCS-4', 'UTF-8'))).'?'; - }, - $unicode_text); - } - - return $unicode_text; -} - -$export_pagename = _("Download der Ausgabedatei"); -$xslt_process = false; -$xslt_filename = Request::get('xslt_filename', $xslt_filename_default); - -if (!CheckParamRUN()) { - PageLayout::postError( - _('Die Parameter, mit denen diese Seite aufgerufen wurde, sind fehlerhaft.') - ); -} else { - // Process the document - $result_file = md5(uniqid(rand())) . "." . $format; - $result = "" . $TMP_PATH . "/" . $result_file; - $xml_process_file = "" . $TMP_PATH . "/" . $xml_file_id; - $xslt_process_file = $GLOBALS['STUDIP_BASE_PATH'] . '/lib/export/' . $xslt_files[$choose]["file"]; - - $xh = new XSLTProcessor(); - $xml_doc = new DOMDocument(); - $xml_doc->load($xml_process_file); - $xsl_doc = new DOMDocument(); - $xsl_doc->load($xslt_process_file); - $xh->importStylesheet($xsl_doc); - $result_doc = $xh->transformToXML($xml_doc); - if ($result_doc) { - $processed = true; - - // if the output format is rtf, convert utf-8 chars to rtf escape sequences - if ($format == 'rtf') { - $result_doc = encode_utf8_for_rtf($result_doc); - } - - file_put_contents($result, $result_doc); - } else { - $xh = libxml_get_last_error(); - } - - - if ( $processed && ($o_mode != "passthrough")) { - $export_msg .= sprintf(_("Die Daten wurden erfolgreich konvertiert. %s Sie können die Ausgabedatei jetzt herunterladen. %s"), "<br>", "<br>"); - $xslt_info = _("Die Daten sind nun im gewählten Format verfügbar."); - $xslt_process = true; - $link1 = "<a href=\"" . $TMP_PATH . "/" . $result_file . "\">"; - $link2 = '<a href="'. FileManager::getDownloadLinkForTemporaryFile($result_file, $xslt_filename .'.'. $format) . '">'; - - } elseif ($o_mode != "passthrough") { - - if ($xh) $export_error .= sprintf(_("Bei der Konvertierung ist ein Fehler aufgetreten. %sDer XSLT-Prozessor meldet den Fehler %s %s"), "<br>", $xh->code, "<br>"); - $xslt_info = _("Bei der Konvertierung ist ein Fehler aufgetreten."); - $xslt_process = false; - $export_error_num++; - } - - - if ($o_mode == "passthrough") - { - header("Location: " . FileManager::getDownloadURLForTemporaryFile($result_file, $xslt_filename .'.'. $format)); - unlink( $TMP_PATH . "/" . $xml_file_id); - } else { - - $export_weiter_button = "<form method=\"POST\" action=\"" . URLHelper::getURL() . "\">"; - $export_weiter_button .= CSRFProtection::tokenTag(); - $export_weiter_button .= "<input type=\"hidden\" name=\"page\" value=\"4\">"; - $export_weiter_button .= "<input type=\"hidden\" name=\"choose\" value=\"" . htmlReady($choose) . "\">"; - $export_weiter_button .= "<input type=\"hidden\" name=\"format\" value=\"" . htmlReady($format) . "\">"; - $export_weiter_button .= "<input type=\"hidden\" name=\"o_mode\" value=\"" . htmlReady($o_mode) . "\">"; - $export_weiter_button .= "<input type=\"hidden\" name=\"ex_type\" value=\"" . htmlReady($ex_type) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem\" value=\"" . htmlReady($ex_sem) . "\">"; - foreach(array_keys($ex_sem_class) as $semclassid){ - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem_class[". htmlReady($semclassid) ."]\" value=\"1\">"; - } - $export_weiter_button .= "<input type=\"hidden\" name=\"range_id\" value=\"" . htmlReady($range_id) . "\">"; - $export_weiter_button .= "<input type=\"hidden\" name=\"xml_file_id\" value=\"" . htmlReady($xml_file_id) . "\">"; - $export_weiter_button .= "<input type=\"hidden\" name=\"xslt_filename\" value=\"" . htmlReady($xslt_filename) . "\">"; - if (Request::option('jump')) - $export_weiter_button .= '<center>' . LinkButton::create('<< ' . _('Zurück'), URLHelper::getURL('seminar_main.php', ['auswahl' => $range_id, 'redirect_to' => $jump])) . "<br>"; - else - $export_weiter_button .= "<center>" . Button::create('<< ' . _('Zurück'), 'back') . "<br>"; - $export_weiter_button .= "</center></form>"; - - if ($xslt_process) { - $export_pagecontent .= "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td width=\"40%\">"; - $export_pagecontent .= " <b>" . _("Ausgabe-Datei: ") . "</b>"; - $export_pagecontent .= "</td><td>" . $link2 . htmlReady($xslt_filename) . "." . htmlReady($format) . "</a>"; - $export_pagecontent .= "</td></tr></table></center><br>"; - } - - - $xml_printimage = ' <a href="' . FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) . '" target="_blank">'; - $xml_printimage.= Icon::create($export_icon['xml'], 'clickable')->asImg(['class' => 'text-top']); - $xml_printimage.= '</a>'; - $xml_printlink = ' <a href="'. FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) . '" class="tree">' . htmlReady($xml_filename) . '</a>'; - $xml_printdesc = _("XML-Daten"); - $xml_printcontent = _("In dieser Datei sind die Daten als XML-Tags gespeichert. Diese Tags können mit einem XSLT-Script verarbeitet werden.") . '<br>'; - - $xslt_printimage = ' <a href="'. FileManager::getDownloadLinkForTemporaryFile($xslt_files[$choose]['file'], $xslt_files[$choose]['name'].'.xsl') . '">'; - $xslt_printimage.= Icon::create($export_icon['xslt'], 'clickable')->asImg(['class' => 'text-top']); - $xslt_printimage.= '</a>'; - $xslt_printlink = ' <a href="' . FileManager::getDownloadLinkForTemporaryFile($xslt_files[$choose]['file'], $xslt_files[$choose]['name'].'.xsl') . '" class="tree"> ' . $xslt_files[$choose]['name'] . '.xsl</a>'; - $xslt_printdesc = _("XSLT-Datei"); - $xslt_printcontent = _("Dies ist das XSLT-Script zur Konvertierung der Daten. Klicken Sie auf den Dateinamen, um die Datei zu öffnen.") . '<br>'; - - if ($xslt_process) { - $result_printimage = '<a href="'. FileManager::getDownloadLinkForTemporaryFile($result_file, $xslt_filename .'.'. $format) . '">'; - $result_printimage.= Icon::create($export_icon[$format], 'clickable')->asImg(['class' => 'text-top']); - $result_printimage.= '</a>'; - $result_printlink = '<a href="'. FileManager::getDownloadLinkForTemporaryFile($result_file, $xslt_filename .'.'. $format) . '" class="tree"> ' . htmlReady($xslt_filename) . '.' . htmlReady($format) . '</a>'; - $result_printdesc = _("Ausgabe-Datei"); - $result_printcontent = _("Dies ist die fertige Ausgabedatei.") . "<br>"; - } - - - include_once ("lib/export/oscar.php"); - } - -} diff --git a/lib/export/export_start.inc.php b/lib/export/export_start.inc.php deleted file mode 100644 index 605d505ba987e9edc99bd50c9993b4d8509da4f4..0000000000000000000000000000000000000000 --- a/lib/export/export_start.inc.php +++ /dev/null @@ -1,137 +0,0 @@ -<? -# Lifter002: TODO -# Lifter003: TEST -# Lifter007: TODO -# Lifter010: TODO -/** -* Export-Subfile that contains the first page of the export-module. -* -* This file shows the first page of the export-module where the type of export and the institute can be chosen. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_start -* @package Export -*/ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export_run_xslt.inc.php -// Integration of xslt-processor -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -use Studip\Button, Studip\LinkButton; - -require_once ("lib/export/export_xslt_vars.inc.php"); // XSLT-Variablen - -$export_pagename = _("Datenexport - Startseite"); - -$export_info = null; - -$export_pagecontent = "<form class=\"default\" method=\"POST\" action=\"" . URLHelper::getLink() . "\">"; - -$export_pagecontent .= CSRFProtection::tokenTag(); -$export_pagecontent .= "<fieldset><legend>"._("Bitte wählen Sie Datenart und Einrichtung.")."</legend>"; -$export_pagecontent .="<label>". _("Bitte wählen Sie eine Einrichtung: ") . "<br><select name=\"range_id\" class=\"nested-select\">"; - -// Prepare institutes statement for faculty -$query = "SELECT Institut_id, Name - FROM Institute - WHERE fakultaets_id = ? AND institut_id != fakultaets_id - ORDER BY Name"; -$inst_statement = DBManager::get()->prepare($query); - -// Prepare and execute faculties statement -$query = "SELECT Institut_id, Name, fakultaets_id - FROM Institute - WHERE fakultaets_id = Institut_id - ORDER BY Name"; -$statement = DBManager::get()->query($query); -$faculties = $statement->fetchAll(PDO::FETCH_ASSOC); - -foreach ($faculties as $faculty) { - $export_pagecontent .= "<option class=\"nested-item-header\" "; - - if ($range_id == $faculty['fakultaets_id']) { - $export_pagecontent .= " selected"; - } - - $export_pagecontent .= " value=\"" . $faculty['Institut_id'] . "\">" . htmlReady(my_substr($faculty['Name'], 0, 60)) . "</option>"; - - $inst_statement->execute([$faculty['Institut_id']]); - while ($institute = $inst_statement->fetch(PDO::FETCH_ASSOC)) { - $export_pagecontent .= sprintf("<option value=\"%s\" class=\"nested-item\"", $institute['Institut_id']); - if ($range_id == $institute['Institut_id'] && $range_id != $faculty['Institut_id']) { - $export_pagecontent .= " selected"; - } - $export_pagecontent .= sprintf(">%s </option>\n", htmlReady(my_substr($institute['Name'], 0, 60))); - } - $inst_statement->closeCursor(); -} - -if ($perm->have_perm("root")) { - $export_pagecontent .= "<option class=\"nested-item-header\" value=\"root\">Alle Einrichtungen"; -} - -$export_pagecontent .= "</select></label>"; - -$export_pagecontent .= "<label>"._("Art der auszugebenden Daten: ") . "<select name=\"ex_type\">"; - -$export_pagecontent .= "<option"; -if ($ex_type=="veranstaltung") - $export_pagecontent .= " selected"; -$export_pagecontent .= " value=\"veranstaltung\">" . _("Veranstaltungsdaten") . "</option>"; - -$export_pagecontent .= "<option"; -if ($ex_type=="person") { - $export_pagecontent .= " selected"; -} -$export_pagecontent .= " value=\"person\">" . _("MitarbeiterInnendaten") . "</option>"; - -$export_pagecontent .= "</select></label>"; - -$export_pagecontent .="<label>". _("Aus welchem Semester sollen die Daten exportiert werden (für Veranstaltungsexport): "); -if (!isset($ex_sem)) { - $ex_sem = (Semester::findCurrent() ? Semester::findCurrent()->getId() : null); -} -$export_pagecontent .= Semester::getSemesterSelector(['name' => 'ex_sem'], $ex_sem, 'semester_id', true); -$export_pagecontent .="</label>"; - -$export_pagecontent .="<label>". _("Welche Arten von Veranstaltungen sollen exportiert werden? ") . "<br>"; - -if (!count($ex_sem_class)) { - $ex_sem_class[1] = 1; -} - -foreach (SeminarCategories::getAll() as $sem_class) { - if(!$sem_class->studygroup_mode){ - $export_pagecontent .= "<input type=\"checkbox\" name=\"ex_sem_class[$sem_class->id]\" value=\"1\""; - if (isset($ex_sem_class[$sem_class->id])) $export_pagecontent .= " checked"; - $export_pagecontent .= "> " . htmlready($sem_class->name) . " "; - } -} -$export_pagecontent .= "</label>"; - -$export_pagecontent .= "<input type=\"hidden\" name=\"o_mode\" value=\"choose\">"; -$export_pagecontent .= "<input type=\"hidden\" name=\"xslt_filename\" value=\"" . htmlReady($xslt_filename) . "\">"; -$export_pagecontent .= "<input type=\"hidden\" name=\"choose\" value=\"" . htmlReady($choose) . "\">"; -$export_pagecontent .= "<input type=\"hidden\" name=\"format\" value=\"" . htmlReady($format) . "\">"; -$export_pagecontent .= "</fieldset>"; - -$export_weiter_button = "<footer>" . Button::create(_('Weiter') . ' >>', 'continue') . "</footer></form>"; diff --git a/lib/export/export_studipdata_func.inc.php b/lib/export/export_studipdata_func.inc.php deleted file mode 100644 index 924507abd4e19177ce5bec637d1ff28c6832b278..0000000000000000000000000000000000000000 --- a/lib/export/export_studipdata_func.inc.php +++ /dev/null @@ -1,923 +0,0 @@ -<?php -# Lifter002: TODO -# Lifter003: TEST (!) -# Lifter007: TODO -# Lifter010: TODO -/** - * Export-Subfile that exports data. - * - * This file contains functions to get data from the Stud.IP-db and write it into a file. - * - * @author Arne Schroeder <schroeder@data.quest.de> - * @access public - * @modulegroup export_modules - * @module export_studipdata_functions - * @package Export - */ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export_studipdata_func.inc.php -// exportfunctions for the Stud.IP database -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -require_once 'lib/statusgruppe.inc.php'; - -/** - * Writes the xml-stream into a file or to the screen. - * - * This function writes the xml-stream $object_data into a file or to the screen, - * depending on the content of $output_mode. - * - * @access public - * @param string $object_data xml-stream - * @param string $output_mode switch for output target - */ -function output_data($object_data, $output_mode = "file", $flush = false) -{ - global $xml_file; - static $fp; - if (is_null($fp)) { - $fp = fopen('php://temp', 'r+'); - } - - fwrite($fp, $object_data); - - if ($flush && is_resource($fp)) { - rewind($fp); - if (in_array($output_mode, words('file processor passthrough choose'))) { - stream_copy_to_stream($fp, $xml_file); - } elseif ($output_mode == "direct") { - $out = fopen('php://output', 'w'); - stream_copy_to_stream($fp, $out); - fclose($out); - } - fclose($fp); - } -} - -/** - * Exports data of the given range. - * - * This function calls the functions that export the data sepcified by the given $export_range. - * It calls the function output_data afterwards. - * - * @access public - * @param string $range_id Stud.IP-range_id for export - */ -function export_range($range_id) -{ - global $o_mode, $range_name, $ex_person_details, $persons, $ex_sem; - $output_startet = false; - // Ist die Range-ID eine Einrichtungs-ID? - $query = "SELECT Name FROM Institute WHERE Institut_id = ?"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$range_id]); - $name = $statement->fetchColumn(); - if ($name) { - $range_name = $name; - output_data(xml_header(), $o_mode); - $output_startet = true; - export_inst($range_id); - - } - - // Ist die Range-ID eine Fakultaets-ID? Dann auch untergeordnete Institute exportieren! - $query = "SELECT Name, Institut_id - FROM Institute - WHERE fakultaets_id = ? AND Institut_id != fakultaets_id"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$range_id]); - while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { - if (!empty($row['Name'])) { - // output_data ( xml_header(), $o_mode); - export_inst($row['Institut_id']); - } - } - - // Ist die Range-ID eine Seminar-ID? - $query = "SELECT Name, Seminar_id, Institut_id - FROM seminare - WHERE Seminar_id = ?"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$range_id]); - $row = $statement->fetch(PDO::FETCH_ASSOC); - if ($row && $row['Name']) { - $range_name = $row['Name']; - if (!$output_startet) { - output_data(xml_header(), $o_mode); - $output_startet = true; - } - export_inst($row['Institut_id'], $row['Seminar_id']); - } - - - // Ist die Range-ID ein Range-Tree-Item? - if ($range_id != 'root') { - $tree_object = new RangeTreeObject($range_id); - $range_name = $tree_object->item_data["name"] ?? ''; - - // Tree-Item ist ein Institut: - if (!empty($tree_object->item_data['studip_object']) && $tree_object->item_data['studip_object'] === 'inst') { - if (!$output_startet) { - output_data(xml_header(), $o_mode); - $output_startet = true; - } - export_inst($tree_object->item_data['studip_object_id']); - } - - // Tree-Item hat Institute als Kinder: - $inst_array = $tree_object->GetInstKids(); - - if (count($inst_array) > 0) { - if (!$output_startet) { - output_data(xml_header(), $o_mode); - $output_startet = true; - } - foreach ($inst_array as $inst_ids) { - export_inst($inst_ids); - } - } - } - - $query = "SELECT 1 FROM sem_tree WHERE sem_tree_id = ?"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$range_id]); - $sem_ids = []; - if ($statement->fetchColumn() || $range_id == 'root') { - if (!$output_startet) { - output_data(xml_header(), $o_mode); - $output_startet = true; - } - if (isset($ex_sem) && $semester = Semester::find($ex_sem)) { - $args = ['sem_number' => [Semester::getIndexById($ex_sem)]]; - } else { - $args = []; - } - if ($range_id != 'root') { - $the_tree = TreeAbstract::GetInstance('StudipSemTree', $args); - $sem_ids = array_unique($the_tree->getSemIds($range_id, true)); - } - if (is_array($sem_ids) || $range_id == 'root') { - if (is_array($sem_ids)) { - $query = "SELECT DISTINCT Institut_id - FROM seminare - WHERE Seminar_id IN (?)"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$sem_ids]); - $to_export = $statement->fetchAll(PDO::FETCH_COLUMN); - } else { - $sem_ids = 'root'; - - $query = "SELECT DISTINCT Institut_id - FROM seminare - INNER JOIN seminar_sem_tree USING (seminar_id) - INNER JOIN semester_courses ON (semester_courses.course_id = seminare.Seminar_id) "; - if ($semester) { - $query .= " WHERE seminare.start_time <= :begin - AND (semester_courses.semester_id IS NULL OR semester_courses.semester_id = :semester_id)"; - $statement = DBManager::get()->prepare($query); - $statement->bindValue(':begin', $semester->beginn); - $statement->bindValue(':semester_id', $semester->semester_id); - $statement->execute(); - } else { - $statement = DBManager::get()->query($query); - } - - $to_export = $statement->fetchAll(PDO::FETCH_COLUMN); - } - - foreach ($to_export as $inst) { - export_inst($inst, $sem_ids); - } - } - } - - if ($ex_person_details && is_array($persons)) { - export_persons(array_keys($persons)); - } - output_data(xml_footer(), $o_mode, $flush = true); -} - - -/** - * Exports a Stud.IP-institute. - * - * This function gets the data of an institute and writes it into $data_object. - * It calls one of the functions export_sem, export_pers or export_teilis and then output_data. - * - * @access public - * @param string $inst_id Stud.IP-inst_id for export - * @param string $ex_sem_id allows to choose if only a specific lecture is to be exported - */ -function export_inst($inst_id, $ex_sem_id = "all") -{ - global $ex_type, $o_mode, $xml_names_inst, $xml_groupnames_inst, $INST_TYPE; - - $query = "SELECT * FROM Institute WHERE Institut_id = ?"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$inst_id]); - $institute = $statement->fetch(PDO::FETCH_ASSOC); - - $data_object = xml_open_tag($xml_groupnames_inst["object"], $institute['Institut_id']); - foreach ($xml_names_inst as $key => $val) { - if ($val == '') { - $val = $key; - } - if ($key === 'type' && !empty($INST_TYPE[$institute[$key]]) && $INST_TYPE[$institute[$key]]['name']) { - $data_object .= xml_tag($val, $INST_TYPE[$institute[$key]]['name']); - } elseif (!empty($institute[$key])) { - $data_object .= xml_tag($val, $institute[$key]); - } - } - reset($xml_names_inst); - - $query = "SELECT Name, Institut_id, type - FROM Institute - WHERE Institut_id = ? AND fakultaets_id = Institut_id"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$institute['fakultaets_id']]); - $faculty = $statement->fetch(PDO::FETCH_ASSOC); - if ($faculty && $faculty['Name']) { - $data_object .= xml_tag($xml_groupnames_inst["childobject"], $faculty['Name'], ['key' => $faculty['Institut_id']]); - } - - // freie Datenfelder ausgeben - $data_object .= export_datafields($inst_id, $xml_groupnames_inst["childgroup2"], $xml_groupnames_inst["childobject2"], 'inst', $faculty['type']); - output_data($data_object, $o_mode); - $data_object = ""; - - switch ($ex_type) { - case "veranstaltung": - export_sem($inst_id, $ex_sem_id); - break; - case "person": - if ($ex_sem_id == "all") - export_pers($inst_id); - elseif ($GLOBALS['perm']->have_studip_perm('tutor', $ex_sem_id)) - export_teilis($inst_id, $ex_sem_id); - else - $data_object .= xml_tag("message", _('Keine Berechtigung.')); - break; - default: - echo "</td></tr>"; - echo '<tr><td>'; - echo MessageBox::error(_('Der gewählte Exportmodus wird nicht unterstützt.')); - echo '</td></tr>'; - echo "</table></td></tr></table>"; - die(); - } - - $data_object .= xml_close_tag($xml_groupnames_inst["object"]); - - output_data($data_object, $o_mode); - $data_object = ""; -} - -/** - * Exports lecture-data. - * - * This function gets the data of the lectures at an institute and writes it into $data_object. - * It calls output_data afterwards. - * - * @access public - * @param string $inst_id Stud.IP-inst_id for export - * @param string $ex_sem_id allows to choose if only a specific lecture is to be exported - */ -function export_sem($inst_id, $ex_sem_id = 'all') -{ - global $o_mode, $xml_names_lecture, $xml_groupnames_lecture, $object_counter, $SEM_TYPE, $SEM_CLASS, $filter, $ex_sem, $ex_sem_class, $ex_person_details, $persons; - - $ex_only_homeinst = Request::int('ex_only_homeinst', 0); - $addquery = ''; - $addjoin = ''; - // Prepare user count statement - $query = "SELECT COUNT(user_id) - FROM seminar_user - WHERE seminar_id = ? AND status = 'autor'"; - $count_statement = DBManager::get()->prepare($query); - - // Prepare inner statement - $query = "SELECT seminar_user.position, - auth_user_md5.user_id, auth_user_md5.username, auth_user_md5.Vorname, auth_user_md5.Nachname, - user_info.title_front, user_info.title_rear - FROM seminar_user - LEFT JOIN user_info USING (user_id) - LEFT JOIN auth_user_md5 USING (user_id) - WHERE seminar_user.status = 'dozent' AND seminar_user.Seminar_id = ? - ORDER BY seminar_user.position"; - $inner_statement = DBManager::get()->prepare($query); - $do_group = false; - $group = null; - $group_tab_zelle = null; - // Prepare (build) and execute outmost query - switch ($filter) { - case "seminar": - $order = " seminare.Name"; - break; - case "status": - $order = "seminare.status, seminare.Name"; - $group = "FIRSTGROUP"; - $group_tab_zelle = "status"; - $do_group = true; - break; - default: - $order = "seminare.status, seminare.Name"; - $group = "FIRSTGROUP"; - $group_tab_zelle = "status"; - $do_group = true; - } - - $parameters = []; - - if (isset($ex_sem) && $semester = Semester::find($ex_sem)) { - $addjoin = " LEFT JOIN semester_courses ON (semester_courses.course_id = seminare.Seminar_id) "; - $addquery = " AND seminare.start_time <= :begin AND (semester_courses.semester_id IS NULL OR semester_courses.semester_id = :semester_id) "; - $parameters[':begin'] = $semester->beginn; - $parameters[':semester_id'] = $semester->id; - } - - if ($ex_sem_id != 'all') { - if ($ex_sem_id == 'root') { - $addquery .= " AND EXISTS (SELECT * FROM seminar_sem_tree WHERE seminar_sem_tree.seminar_id = seminare.Seminar_id) "; - } else { - if (!is_array($ex_sem_id)) $ex_sem_id = [$ex_sem_id]; - $ex_sem_id = array_flip($ex_sem_id); - } - } - - if (!$GLOBALS['perm']->have_perm('root') && !$GLOBALS['perm']->have_studip_perm('admin', $inst_id)) { - $addquery .= " AND visible = 1 "; - } - - if (count($ex_sem_class) > 0) { - $allowed_sem_types = []; - foreach (array_keys($ex_sem_class) as $semclassid) { - $allowed_sem_types = array_merge($allowed_sem_types, array_keys(SeminarCategories::get($semclassid)->getTypes())); - } - $addquery .= " AND seminare.status IN (:status) "; - $parameters[':status'] = $allowed_sem_types; - } else { - $addquery .= " AND seminare.status NOT IN (:status) "; - $parameters[':status'] = studygroup_sem_types() ?: ''; - } - - if ($ex_only_homeinst) { - $query = "SELECT seminare.*,Seminar_id as seminar_id, Institute.Name AS heimateinrichtung - FROM seminare - LEFT JOIN Institute USING (Institut_id) - {$addjoin} - WHERE Institut_id = :institute_id {$addquery} - ORDER BY " . $order; - $parameters[':institute_id'] = $inst_id; - } else { - $query = "SELECT seminare.*,Seminar_id as seminar_id, Institute.Name AS heimateinrichtung - FROM seminar_inst - LEFT JOIN seminare USING (Seminar_id) - LEFT JOIN Institute ON seminare.Institut_id = Institute.Institut_id - {$addjoin} - WHERE seminar_inst.Institut_id = :institute_id {$addquery} - ORDER BY " . $order; - $parameters[':institute_id'] = $inst_id; - } - $statement = DBManager::get()->prepare($query); - $statement->execute($parameters); - $data = $statement->fetchAll(PDO::FETCH_ASSOC); - - $data_object = xml_open_tag($xml_groupnames_lecture['group']); - - foreach ($data as $row) { - if (is_array($ex_sem_id) && !isset($ex_sem_id[$row['seminar_id']])) { - continue; - } - $group_string = ''; - if ($do_group && $group != $row[$group_tab_zelle]) { - if ($group != 'FIRSTGROUP') { - $group_string .= xml_close_tag($xml_groupnames_lecture['subgroup1']); - } - if ($group_tab_zelle == 'status') { - $group_string .= xml_open_tag($xml_groupnames_lecture['subgroup1'], $SEM_TYPE[$row[$group_tab_zelle]]['name']); - } else { - $group_string .= xml_open_tag($xml_groupnames_lecture['subgroup1'], $row[$group_tab_zelle]); - } - $group = $row[$group_tab_zelle]; - } - $data_object .= $group_string; - $object_counter += 1; - $data_object .= xml_open_tag($xml_groupnames_lecture['object'], $row['seminar_id']); - $course_object = new Course($row['seminar_id']); - $sem_obj = new Seminar($course_object); - foreach ($xml_names_lecture as $key => $val) { - if (!$val) { - $val = $key; - } - if ($key === 'status') { - $data_object .= xml_tag($val, $SEM_TYPE[$row[$key]]['name']); - } elseif ($key === 'ort') { - $data_object .= xml_tag($val, $sem_obj->getDatesTemplate('dates/seminar_export_location')); - } elseif ($key === 'bereich' && $SEM_CLASS[$SEM_TYPE[$row['status']]['class']]['bereiche']) { - $data_object .= xml_open_tag($xml_groupnames_lecture['childgroup3']); - $pathes = get_sem_tree_path($row['seminar_id']); - if (is_array($pathes)) { - foreach ($pathes as $path_name) { - $data_object .= xml_tag($val, $path_name); - } - } else { - $data_object .= xml_tag($val, 'n.a.'); - } - $data_object .= xml_close_tag($xml_groupnames_lecture['childgroup3']); - } elseif ($key === 'lvgruppe' && $SEM_CLASS[$SEM_TYPE[$row['status']]['class']]['module']) { - $data_object .= xml_open_tag($xml_groupnames_lecture['childgroup3a']); - ModuleManagementModelTreeItem::setObjectFilter('Modul', function ($modul) use ($course_object) { - // check for public status - if (!$GLOBALS['MVV_MODUL']['STATUS']['values'][$modul->stat]['public']) { - return false; - } - $modul_start = Semester::find($modul->start)->beginn ?: 0; - $modul_end = Semester::find($modul->end)->beginn ?: PHP_INT_MAX; - return ($course_object->start_time <= $modul_end) - && ( - ($course_object->start_time >= $modul_start) - || $course_object->isOpenEnded() - || $course_object->getEndSemester()->ende <= $modul_end - || $course_object->getEndSemester()->ende >= $modul_start - ); - }); - ModuleManagementModelTreeItem::setObjectFilter('StgteilVersion', function ($version) { - return $GLOBALS['MVV_STGTEILVERSION']['STATUS']['values'][$version->stat]['public']; - }); - $trail_classes = ['Modulteil', 'StgteilabschnittModul', 'StgteilAbschnitt', 'StgteilVersion']; - $mvv_object_paths = MvvCourse::get($sem_obj->id)->getTrails($trail_classes); - $mvv_paths = []; - - foreach ($mvv_object_paths as $mvv_object_path) { - // show only complete paths - if (count($mvv_object_path) === 4) { - $mvv_object_names = []; - foreach ($mvv_object_path as $mvv_object) { - $mvv_object_names[] = $mvv_object->getDisplayName(); - } - $mvv_paths[] = implode(' > ', $mvv_object_names); - } - } - foreach ($mvv_paths as $mvv_path) { - $data_object .= xml_tag($val, $mvv_path); - } - $data_object .= xml_close_tag($xml_groupnames_lecture['childgroup3a']); - } elseif ($key === 'admission_turnout') { - $data_object .= xml_open_tag($val, !empty($row['admission_type']) ? _('max.') : _('erw.')); - $data_object .= $row[$key] ?? ''; - $data_object .= xml_close_tag($val); - } elseif ($key === 'teilnehmer_anzahl_aktuell') { - $count_statement->execute([$row['seminar_id']]); - $count = $count_statement->fetchColumn(); - $count_statement->closeCursor(); - - $data_object .= xml_tag($val, $count); - } elseif ($key === 'metadata_dates') { - $data_object .= xml_open_tag($xml_groupnames_lecture['childgroup1']); - $vorb = vorbesprechung($row['seminar_id'], 'export'); - if ($vorb) { - $data_object .= xml_tag($val[0], $vorb); - } - if (($first_date = SeminarDB::getFirstDate($row['seminar_id'])) - && count($first_date)) { - $really_first_date = new SingleDate($first_date[0]); - $data_object .= xml_tag($val[1], $really_first_date->getDatesExport()); - } - $data_object .= xml_tag($val[2], $sem_obj->getDatesExport()); - $data_object .= xml_close_tag($xml_groupnames_lecture["childgroup1"]); - } elseif ($key === 'Institut_id') { - $data_object .= xml_tag($val, $row['heimateinrichtung'], ['key' => $row[$key]]); - } elseif (isset($row[$key]) && $row[$key] !== '') - $data_object .= xml_tag($val, $row[$key]); - } - - $data_object .= "<" . $xml_groupnames_lecture['childgroup2'] . ">\n"; - - $inner_statement->execute([$row['seminar_id']]); - while ($inner = $inner_statement->fetch(PDO::FETCH_ASSOC)) { - if (!isset($persons[$inner['user_id']])) { - $persons[$inner['user_id']] = false; - } - if ($ex_person_details) { - $persons[$inner['user_id']] = true; - } - $content_string = $inner['Vorname'] . ' ' . $inner['Nachname']; - if ($inner['title_front'] != '') { - $content_string = $inner['title_front'] . ' ' . $content_string; - } - if ($inner['title_rear'] != '') { - $content_string .= ', ' . $inner['title_rear']; - } - $data_object .= xml_tag($xml_groupnames_lecture['childobject2'], $content_string, ['key' => $inner['username']]); - } - - $data_object .= xml_close_tag($xml_groupnames_lecture['childgroup2']); - // freie Datenfelder ausgeben - $data_object .= export_datafields($row['seminar_id'], $xml_groupnames_lecture['childgroup4'], $xml_groupnames_lecture['childobject4'], 'sem', $row['status']); - $data_object .= xml_close_tag($xml_groupnames_lecture['object']); - reset($xml_names_lecture); - output_data($data_object, $o_mode); - $data_object = ''; - } - - if ($do_group && $group != 'FIRSTGROUP') { - $data_object .= xml_close_tag($xml_groupnames_lecture['subgroup1']); - } - - $data_object .= xml_close_tag($xml_groupnames_lecture['group']); - output_data($data_object, $o_mode); -} - - -/** - * Exports member-list for a Stud.IP-lecture. - * - * This function gets the data of the members of a lecture and writes it into $data_object. - * It calls output_data afterwards. - * - * @access public - * @param string $inst_id Stud.IP-inst_id for export - * @param string $ex_sem_id allows to choose which lecture is to be exported - */ -function export_teilis($inst_id, $ex_sem_id = "no") -{ - global $range_id, $o_mode, $xml_names_person, $xml_groupnames_person, $xml_names_studiengaenge, $xml_groupnames_studiengaenge, $object_counter, $filter, $SEM_CLASS, $SEM_TYPE; - - if ($filter == 'status') { - $query = "SELECT statusgruppe_id, name - FROM statusgruppen - WHERE range_id = ? - ORDER BY position ASC"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$ex_sem_id]); - $gruppe = $statement->fetchGrouped(PDO::FETCH_COLUMN); - - $gruppe['no'] = _('keiner Funktion oder Gruppe zugeordnet'); - } else { - - if (!in_array($filter, words('awaiting claiming'))) { - $course = Course::find($range_id); - - $gruppe = [ - 'dozent' => get_title_for_status('dozent', 2, $course->status), - 'tutor' => get_title_for_status('tutor', 2, $course->status), - 'autor' => get_title_for_status('autor', 2, $course->status), - 'user' => get_title_for_status('user', 2, $course->status), - 'accepted' => get_title_for_status('accepted', 2, $course->status) - ]; - } else { - $gruppe[$filter] = _('Anmeldeliste'); - } - } - - $data_object = xml_open_tag($xml_groupnames_person['group']); - $person_out = []; - - foreach ($gruppe as $key1 => $val1) { - $parameters = []; - if ($filter == 'status') { - // Gruppierung nach Statusgruppen / Funktionen - if ($key1 == 'no') { - $query = "SELECT ui.*, aum.*, su.*, FROM_UNIXTIME(su.mkdate) AS registration_date, - GROUP_CONCAT(CONCAT_WS(',', sg.name, a.name, user_studiengang.semester) SEPARATOR '; ') AS nutzer_studiengaenge - FROM seminar_user AS su - LEFT JOIN auth_user_md5 AS aum USING (user_id) - LEFT JOIN user_info AS ui USING (user_id) - LEFT JOIN user_studiengang USING (user_id) - LEFT JOIN fach AS sg USING(fach_id) - LEFT JOIN abschluss AS a USING (abschluss_id) - WHERE seminar_id = :seminar_id - GROUP BY aum.user_id - ORDER BY Nachname, Vorname"; - $parameters[':seminar_id'] = $ex_sem_id; - } else { - $query = "SELECT DISTINCT ui.*, aum.*, su.*, FROM_UNIXTIME(su.mkdate) AS registration_date, - GROUP_CONCAT(CONCAT_WS(',', sg.name, a.name, user_studiengang.semester) SEPARATOR '; ') AS nutzer_studiengaenge - FROM statusgruppe_user - LEFT JOIN seminar_user AS su USING (user_id) - LEFT JOIN auth_user_md5 AS aum USING (user_id) - LEFT JOIN user_info AS ui USING (user_id) - LEFT JOIN user_studiengang USING(user_id) - LEFT JOIN fach AS sg USING(fach_id) - LEFT JOIN abschluss AS a USING (abschluss_id) - WHERE statusgruppe_id = :statusgruppe_id AND seminar_id = :seminar_id - GROUP BY aum.user_id - ORDER BY Nachname, Vorname"; - $parameters[':seminar_id'] = $ex_sem_id; - $parameters[':statusgruppe_id'] = $key1; - } - } // Gruppierung nach Status in der Veranstaltung / Einrichtung - else if ($key1 == 'accepted') { - $query = "SELECT ui.*, aum.*, asu.comment, - FROM_UNIXTIME(asu.mkdate) AS registration_date, - GROUP_CONCAT(CONCAT_WS(',', sg.name, a.name, user_studiengang.semester) SEPARATOR '; ') AS nutzer_studiengaenge - FROM admission_seminar_user AS asu - LEFT JOIN user_info AS ui USING (user_id) - LEFT JOIN auth_user_md5 AS aum USING (user_id) - LEFT JOIN user_studiengang USING (user_id) - LEFT JOIN fach AS sg ON (user_studiengang.fach_id = sg.fach_id) - LEFT JOIN abschluss AS a USING (abschluss_id) - WHERE seminar_id = :seminar_id AND asu.status = 'accepted' - GROUP BY aum.user_id - ORDER BY Nachname, Vorname"; - $parameters[':seminar_id'] = $ex_sem_id; - } elseif ($key1 == 'awaiting') { - $query = "SELECT ui.*, aum.*, asu.comment, - asu.position AS admission_position, - GROUP_CONCAT(CONCAT_WS(',', sg.name, a.name, user_studiengang.semester) SEPARATOR '; ') AS nutzer_studiengaenge - FROM admission_seminar_user AS asu - LEFT JOIN user_info AS ui USING(user_id) - LEFT JOIN auth_user_md5 AS aum USING(user_id) - LEFT JOIN user_studiengang USING(user_id) - LEFT JOIN fach AS sg ON (user_studiengang.fach_id = sg.fach_id) - LEFT JOIN abschluss AS a USING (abschluss_id) - WHERE asu.seminar_id = :seminar_id AND asu.status != 'accepted' - GROUP BY aum.user_id ORDER BY position"; - $parameters[':seminar_id'] = $ex_sem_id; - } elseif ($key1 == 'claiming') { - $cs = CourseSet::getSetForCourse($ex_sem_id); - if (is_object($cs) && !$cs->hasAlgorithmRun()) { - $parameters[':users'] = array_keys(AdmissionPriority::getPrioritiesByCourse($cs->getId(), $ex_sem_id)); - } else { - $parameters[':users'] = []; - } - $query = "SELECT ui.*, aum.*, '' as comment, - 0 AS admission_position, - GROUP_CONCAT(CONCAT_WS(',', sg.name, a.name, user_studiengang.semester) SEPARATOR '; ') AS nutzer_studiengaenge - FROM auth_user_md5 AS aum - INNER JOIN user_info AS ui USING(user_id) - LEFT JOIN user_studiengang USING(user_id) - LEFT JOIN fach AS sg ON (user_studiengang.fach_id = sg.fach_id) - LEFT JOIN abschluss AS a USING (abschluss_id) - WHERE aum.user_id IN (:users) - GROUP BY aum.user_id ORDER BY Nachname, Vorname"; - } else { - $query = "SELECT ui.*, aum.*, su.*, FROM_UNIXTIME(su.mkdate) AS registration_date, - GROUP_CONCAT(CONCAT_WS(',', sg.name, a.name, us.semester) SEPARATOR '; ') AS nutzer_studiengaenge - FROM seminar_user AS su - LEFT JOIN auth_user_md5 AS aum USING ( user_id ) - LEFT JOIN user_info AS ui USING ( user_id ) - LEFT JOIN user_studiengang AS us USING(user_id) - LEFT JOIN fach AS sg USING (fach_id) - LEFT JOIN abschluss AS a USING (abschluss_id) - WHERE seminar_id = :seminar_id AND su.status = :status - GROUP BY aum.user_id - ORDER BY " . ($key1 === 'dozent' ? 'position, ' : '') . "Nachname, Vorname"; - $parameters[':seminar_id'] = $ex_sem_id; - $parameters[':status'] = $key1; - } - - $statement = DBManager::get()->prepare($query); - $statement->execute($parameters); - $data = $statement->fetchAll(PDO::FETCH_ASSOC); - $course = Course::find($ex_sem_id); - if ($course->aux) { - $zusatzangaben = array_keys($course->aux->datafields); - } else { - $zusatzangaben = []; - } - $data_object_tmp = ''; - $object_counter_tmp = $object_counter; - if (count($data) > 0) { - $data_object_tmp .= xml_open_tag($xml_groupnames_person['subgroup1'], $val1); - foreach ($data as $row) { - // Nur Personen ausgeben, die entweder einer Gruppe angehoeren - // oder zur Veranstaltung gehoeren und noch nicht ausgegeben wurden. - if ($key1 !== 'no' || empty($person_out[$row['user_id']])) { - $object_counter += 1; - $data_object_tmp .= xml_open_tag($xml_groupnames_person["object"], $row['username']); - - reset($xml_names_person); - foreach ($xml_names_person as $key => $val) { - if ($val == '') { - $val = $key; - } - if (!empty($row[$key])) { - $data_object_tmp .= xml_tag($val, $row[$key]); - } - } - // freie Datenfelder ausgeben - $data_object_tmp .= export_datafields($row['user_id'], $xml_groupnames_person['childgroup1'], $xml_groupnames_person['childobject1'], 'user'); - $data_object_tmp .= export_datafields([$row['user_id'], $ex_sem_id], 'zusatzangaben', 'zusatzangabe', 'usersemdata', null, $zusatzangaben); - $data_object_tmp .= xml_close_tag($xml_groupnames_person['object']); - $person_out[$row['user_id']] = true; - } - } - $data_object_tmp .= xml_close_tag($xml_groupnames_person['subgroup1']); - if ($object_counter_tmp != $object_counter) { - $data_object .= $data_object_tmp; - } - } - } - - $data_object .= xml_close_tag($xml_groupnames_person['group']); - - if (!in_array($filter, words('status awaiting accepted'))) { - $query = "SELECT CONCAT_WS(',', fach.name, abschluss.name) AS name, COUNT(*) AS c - FROM seminar_user - INNER JOIN user_studiengang USING (user_id) - LEFT JOIN fach USING (fach_id) - LEFT JOIN abschluss USING (abschluss_id) - WHERE seminar_id = ? - GROUP BY name"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$ex_sem_id]); - $studiengang_count = $statement->fetchGrouped(PDO::FETCH_COLUMN); - - if (count($studiengang_count) > 0) { - $data_object .= xml_open_tag($xml_groupnames_studiengaenge["group"]); - for ($i = 0; $i < count($studiengang_count); $i += 1) { // TODO: Is this really neccessary? - foreach ($studiengang_count as $key => $val) { - $data_object .= xml_open_tag($xml_groupnames_studiengaenge['object']); - $data_object .= xml_tag($xml_names_studiengaenge['name'], $key); - $data_object .= xml_tag($xml_names_studiengaenge['count'], $val); - $data_object .= xml_close_tag($xml_groupnames_studiengaenge['object']); - } - } - $data_object .= xml_close_tag($xml_groupnames_studiengaenge['group']); - } - } - - output_data($data_object, $o_mode); -} - -/** - * Exports member-list for a Stud.IP-institute. - * - * This function gets the data of the members of an institute and writes it into $data_object. - * The order of the members depends on the grouping-option $filter. - * It calls output_data afterwards. - * - * @access public - * @param string $inst_id Stud.IP-inst_id for export - * @param string $ex_sem_id allows to choose which lecture is to be exported - */ -function export_pers($inst_id) -{ - global $o_mode, $xml_names_person, $xml_groupnames_person, $object_counter; - - $group = 'FIRSTGROUP'; - $group_tab_zelle = 'name'; - $do_group = true; - - // fetch all statusgroups and their hierarchical structure - $roles = GetRoleNames(GetAllStatusgruppen($inst_id), 0, '', true) ?: []; - - // traverse and join statusgroups with memberdates - $rows = []; - foreach ($roles as $group_id => $data) { - $query = "SELECT statusgruppen.name, statusgruppen.statusgruppe_id, aum.user_id, - aum.Nachname, aum.Vorname, ui.inst_perms, ui.raum, - ui.sprechzeiten, ui.Telefon, ui.Fax, aum.Email, - aum.username, info.Home, info.geschlecht, info.title_front, info.title_rear - FROM statusgruppen - JOIN statusgruppe_user sgu USING(statusgruppe_id) - JOIN user_inst ui ON (ui.user_id = sgu.user_id AND ui.Institut_id = ? AND ui.inst_perms!='user') - JOIN auth_user_md5 aum ON (ui.user_id = aum.user_id) - LEFT JOIN user_info info ON (ui.user_id = info.user_id) - WHERE statusgruppe_id = ? - ORDER BY sgu.position"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$inst_id, $group_id]); - $rows = array_merge($rows, $statement->fetchAll(PDO::FETCH_ASSOC)); - } - // create xml-output - $data_object = xml_open_tag($xml_groupnames_person['group']); - $data_found = false; - foreach ($rows as $row) { - $data_found = true; - $group_string = ''; - if ($do_group && isset($row[$group_tab_zelle]) && $group != $row[$group_tab_zelle]) { - if ($group != 'FIRSTGROUP') { - $group_string .= xml_close_tag($xml_groupnames_person['subgroup1']); - } - $group_string .= xml_open_tag($xml_groupnames_person['subgroup1'], $roles[$row['statusgruppe_id']]); - $group = $row[$group_tab_zelle]; - } - $data_object .= $group_string; - $object_counter += 1; - $data_object .= xml_open_tag($xml_groupnames_person["object"], $row['username']); - foreach ($xml_names_person as $key => $val) { - if ($val == '') { - $val = $key; - } - if (mb_strtolower($key) == 'email') { - $row[$key] = get_visible_email($row['user_id']); - } - if (!empty($row[$key])) { - $data_object .= xml_tag($val, $row[$key]); - } - } - // freie Datenfelder ausgeben - $data_object .= export_datafields($row['user_id'], $xml_groupnames_person['childgroup1'], $xml_groupnames_person['childobject1'], 'user'); - $data_object .= xml_close_tag($xml_groupnames_person['object']); - reset($xml_names_person); - output_data($data_object, $o_mode); - $data_object = ''; - } - - if ($do_group && $data_found) { - $data_object .= xml_close_tag($xml_groupnames_person['subgroup1']); - } - - $data_object .= xml_close_tag($xml_groupnames_person['group']); - - if ($data_found) { - output_data($data_object, $o_mode); - } -} - -/** - * Exports list of persons. - * - * - * @access public - * @param array $persons Stud.IP-user_ids for export - */ -function export_persons($persons) -{ - global $xml_names_person, $xml_groupnames_person, $object_counter, $o_mode, $ex_person_details; - - if (!is_array($persons) or count($persons) == 0) { - return; - } - - $query = "SELECT * - FROM auth_user_md5 - LEFT JOIN user_info USING (user_id) - WHERE user_id IN (?)"; - $statement = DBManager::get()->prepare($query); - $statement->execute([$persons]); - while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { - $object_counter += 1; - - $data_object = xml_open_tag($xml_groupnames_person['object'], $row['username']); - if ($ex_person_details) { - $data_object .= xml_tag('id', $row['user_id']); - } - foreach ($xml_names_person as $key => $val) { - if ($val == '') { - $val = $key; - } - if (!empty($row[$key])) { - $data_object .= xml_tag($val, $row[$key]); - } - } - // freie Datenfelder ausgeben - $data_object .= export_datafields($row['user_id'], $xml_groupnames_person['childgroup1'], $xml_groupnames_person['childobject1'], 'user'); - $data_object .= xml_close_tag($xml_groupnames_person['object']); - reset($xml_names_person); - output_data($data_object, $o_mode); - } -} - -/** - * helper function to export custom datafields - * - * only visible datafields are exported (depending on user perms) - * @access public - * @param string $range_id id for object to export - * @param string $childgroup_tag name of outer tag - * @param string $childobject_tag name of inner tags - */ -function export_datafields($range_id, $childgroup_tag, $childobject_tag, $object_type = null, $object_class_hint = null, $only_these = null) -{ - $ret = ''; - $d_fields = false; - $localEntries = DataFieldEntry::getDataFieldEntries($range_id, $object_type, $object_class_hint); - if (is_array($localEntries)) { - foreach ($localEntries as $entry) { - if (is_array($only_these)) { - if (!in_array($entry->getId(), $only_these)) { - continue; - } - } - if ($entry->isVisible(null, false) && ($entry->getDisplayValue() || $only_these)) { - if (!$d_fields) $ret .= xml_open_tag($childgroup_tag); - $ret .= xml_open_tag($childobject_tag, $entry->getName()); - $ret .= xml_escape($entry->getDisplayValue(false)); - $ret .= xml_close_tag($childobject_tag); - $d_fields = true; - } - } - } - if ($d_fields) $ret .= xml_close_tag($childgroup_tag); - return $ret; -} diff --git a/lib/export/export_tmp_gc.inc.php b/lib/export/export_tmp_gc.inc.php deleted file mode 100644 index 62ab36b8b048a8b25e0de8701e6b8612106657b5..0000000000000000000000000000000000000000 --- a/lib/export/export_tmp_gc.inc.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* function to delete old files in the export tmp-directory. -* -* This file checks the tmp-directory for old files an deletes them. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @package Export -*/ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// oscar.inc.php -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -function export_tmp_gc(){ - $tmp_export = $GLOBALS['TMP_PATH']. '/export/'; - if(!is_dir($tmp_export)){ - if(!mkdir($tmp_export)){ - trigger_error("tmp directory for export ($tmp_export) could not be created",E_USER_WARNING); - return false; - } else { - chmod($tmp_export, 0700); - } - } - if (mt_rand() % 100 < 10){ - $dir = @dir($tmp_export); - if ($dir){ - while (false !== ($entry = $dir->read())) { - // Skip pointers - if ($entry == '.' || $entry == '..') { - continue; - } - $file = $tmp_export . '/' . $entry; - $now = time(); - if (@is_file($file) && (($now - filemtime($file)) > 86400)){ - @unlink($file); - } - } - $dir->close(); - } - } -} -?> diff --git a/lib/export/export_view.inc.php b/lib/export/export_view.inc.php deleted file mode 100644 index e9605d123220b85b87848ec71c38adc3df4f9b1e..0000000000000000000000000000000000000000 --- a/lib/export/export_view.inc.php +++ /dev/null @@ -1,110 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Visual presentation of the Export-module. -* -* This file outputs the forms, messages and errors to the screen. -* The HTML-Design and table-Structure for export-pages are part of this file. -* It is used for any part of the export-module. If $o_mode is "direct" or "passthrough" -* it writes only the xml-stream or the output-file to the screen. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_view -* @package Export -*/ -if (($o_mode != "direct") AND ($o_mode != "passthrough")) -{ -// Start of Output - PageLayout::setTitle($export_pagename); - Navigation::activateItem('/browse/export'); - ?> -<? - if (isset($export_error)) { - PageLayout::postError($export_error); - } - if (isset($export_msg)) { - PageLayout::postSuccess($export_msg); - } - if (isset($export_info)) { - PageLayout::postInfo($export_info); - } -?> - <? - echo $export_pagecontent; - - if (isset($xml_printlink)) - { - ?> - <table cellspacing="0" cellpadding="0" border="0" width="100%"> - <tr> - <? - printhead ("99%", FALSE, "", "open", true, ' ' . $xml_printimage, $xml_printlink, $xml_printdesc); - ?> - </tr> - </table> - <table cellspacing="0" cellpadding="0" border="0" width="100%"> - <tr> - <? - printcontent("99%", FALSE, $xml_printcontent, ""); - ?> - </tr> - </table> - <? - } - if (isset($xslt_printlink)) - { - ?> - <table cellspacing="0" cellpadding="0" border="0" width="100%"> - <tr> - <? - printhead ("99%", FALSE, "", "open", true, ' ' . $xslt_printimage, $xslt_printlink, $xslt_printdesc); - ?> - </tr> - </table> - <table cellspacing="0" cellpadding="0" border="0" width="100%"> - <tr> - <? - printcontent("99%", FALSE, $xslt_printcontent, ""); - ?> - </tr> - </table> - <? - } - if (isset($result_printlink)) - { - ?> - <table cellspacing="0" cellpadding="0" border="0" width="100%"> - <tr> - <? - printhead ("99%", FALSE, "", "open", true, ' ' . $result_printimage, $result_printlink, $result_printdesc); - ?> - </tr> - </table> - <table cellspacing="0" cellpadding="0" border="0" width="100%"> - <tr> - <? - printcontent("99%", FALSE, $result_printcontent, ""); - ?> - </tr> - </table> - <br> - <? - } - if (isset($export_weiter_button)) - { - echo $export_weiter_button; - } - ?> - -<?php -} -elseif ($export_error_num > 0) -{ - echo $export_error; -} -?> diff --git a/lib/export/export_xml.inc.php b/lib/export/export_xml.inc.php deleted file mode 100644 index f679f7cc12544fdc2703b68d21b1d4df57ef3ea6..0000000000000000000000000000000000000000 --- a/lib/export/export_xml.inc.php +++ /dev/null @@ -1,167 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Export-subfile that calls export-functions to create a xml-file. -* -* This file call export_range to get a xml-strem with the wanted data. -* Depending on $o_mode it passes the xml-stream into a file or to the screen. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_xml -* @package Export -*/ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export_xml.inc.php -// XML-functions for the Stud.IP database -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -use Studip\Button, Studip\LinkButton; - -if (($o_mode != "direct") AND ($o_mode != "passthrough")) - $perm->check("tutor"); - -$export_pagename = _("Datenexport"); -require_once 'lib/export/export_xml_vars.inc.php'; // XML-Variablen -require_once 'lib/export/export_xml_func.inc.php'; // XML-Funktionen -require_once 'lib/export/export_studipdata_func.inc.php'; // Studip-Export-Funktionen -require_once 'lib/dates.inc.php'; // Datumsfunktionen - -/** -* Checks given parameters -* -* This function checks the given parameters. If some are missing -* it returns false and adds a warning to $export_error. -* -* @access public -* @return boolean -*/ -function CheckParamXML() -{ -global $range_id, $ex_type, $xml_file_id, $o_mode, $export_error, $export_error_num, $export_o_modes, $export_ex_types,$ex_person_details,$ex_tstamp,$ex_hash,$perm; - - if ($ex_person_details && $ex_tstamp && !$perm->have_perm('admin')){ - list($y,$M,$d,$h,$m) = explode('-', $ex_tstamp); - $tstamp = mktime($h,$m,0,$M,$d,$y); - $hash = md5(Config::get()->UNIZENSUSPLUGIN_SHARED_SECRET1 . $ex_tstamp . Config::get()->UNIZENSUSPLUGIN_SHARED_SECRET2); - if ($ex_hash != $hash || $tstamp < (time() - 600)) $ex_person_details = null; - } - - if ((($range_id != "") OR ($xml_file_id != "")) AND (in_array($o_mode, $export_o_modes) AND (in_array($ex_type, $export_ex_types)))) - return true; - $export_error .= "<b>" . _("Unzulässiger Seitenaufruf!") . "</b><br>"; - $export_error_num++; - return false; -} - - -if (!CheckParamXML()) { - PageLayout::postError( - _('Die Parameter, mit denen diese Seite aufgerufen wurde, sind fehlerhaft.') - ); -} - - -if ($ex_sem == 'current'){ - $ex_sem = Semester::findCurrent()->getId(); -} - -if ($o_mode != "direct") -{ - if (!(is_dir( $TMP_PATH."/export" ))) - { - mkdir($TMP_PATH . "/export"); - chmod ($TMP_PATH . "/export", 0777); - } - $xml_file_id = md5(uniqid(rand())) . ".xml"; - $xml_file = fopen($TMP_PATH."/" . $xml_file_id, "w"); -} - -if ($o_mode == 'direct'){ - header("Content-type: text/xml; charset=utf-8"); - if ($export_error_num){ - echo '<?xml version="1.0"?>' . chr(10); - echo xml_tag('studip_export_error_msg', strip_tags($export_error)); - exit(); - } -} - -export_range( $range_id ); - - - -if ($o_mode !== "direct") { - fclose($xml_file); -} - -if ($o_mode === 'file' || $o_mode === 'choose') { - - if ($object_counter<1) { - $xml_export_text = _("Es wurden keine Daten gefunden!"); - $export_error = _("Es wurden keine Daten gefunden! Die übergebene ID ist mit keinen Veranstaltungs- / Personendaten verbunden."); - $export_pagecontent = "<form class=\"default\"><footer>" - . LinkButton::create('<< ' . _('Zurück'), URLHelper::getURL("", ['range_id' => $range_id, 'ex_type' => $ex_type, 'ex_sem' => $ex_sem, 'o_mode' => 'start'])) - . "</footer></form>"; - $export_error_num ++; - - } else { - $xml_export_text = _("Die Daten wurden erfolgreich exportiert."); - if ($object_counter == 1) { - $export_msg = sprintf(_("%s Objekt wurde verarbeitet.") . " ", $object_counter); - } else { - $export_msg = sprintf(_("%s Objekte wurden verarbeitet.") . " ", $object_counter); - } - - $export_pagecontent = "<form class=\"default\" method=\"POST\" action=\"" . URLHelper::getLink() . "\">"; - $export_pagecontent .= CSRFProtection::tokenTag(); - $export_pagecontent .= "<input type=\"hidden\" name=\"page\" value=\"2\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"format\" value=\"" . htmlReady($format) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"o_mode\" value=\"choose\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_type\" value=\"" . htmlReady($ex_type) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem\" value=\"" . htmlReady($ex_sem) . "\">"; - foreach (array_keys($ex_sem_class) as $semclassid) { - $export_pagecontent .= "<input type=\"hidden\" name=\"ex_sem_class[". htmlReady($semclassid) ."]\" value=\"1\">"; - } - $export_pagecontent .= "<input type=\"hidden\" name=\"range_id\" value=\"" . htmlReady($range_id) . "\">"; - $export_pagecontent .= "<input type=\"hidden\" name=\"xslt_filename\" value=\"" . htmlReady($xslt_filename) . "\">"; - - $export_weiter_button = "<footer>" . Button::create('<< ' . _('Zurück'), 'back') . "</footer></form>"; - $xml_printimage = '<a href="'. FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) . '">'; - $xml_printimage.= Icon::create($export_icon['xml'], 'clickable'); - $xml_printimage.= '</a>'; - $xml_printlink = '<a href="'. FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename). '" class="tree">' . htmlReady($xml_filename) . '</a>'; - $xml_printdesc = _("XML-Daten"); - $xml_printcontent = _("In dieser Datei sind die Daten als XML-Tags gespeichert. Diese Tags können mit einem XSLT-Script verarbeitet werden.") . "<br>"; - } - - PageLayout::postInfo($xml_export_text); - - if ($object_counter > 0) { - $link = '<a href="'. FileManager::getDownloadLinkForTemporaryFile($xml_file_id, $xml_filename) .' ">'; - PageLayout::postSuccess(sprintf( - _('Um die XML-Datei jetzt herunterzuladen klicken Sie %s hier %s.'), - $link, '</a>' - )); - } -} diff --git a/lib/export/export_xml_func.inc.php b/lib/export/export_xml_func.inc.php deleted file mode 100644 index a3be8c0367aba04933f0eeb4ef3422a21a7cf4d0..0000000000000000000000000000000000000000 --- a/lib/export/export_xml_func.inc.php +++ /dev/null @@ -1,162 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Export xml-functions. -* -* In this file there are several functions to generate xml-tags. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_xml_functions -* @package Export -*/ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export_xml_func.inc.php -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - - -/** -* create xml_header -* -* This function creates a xml-header for output. -* Its contents are Name of University, Stud.IP-Version, Range of Export (e.g. "root"), and temporal range. -* -* @access public -* @return string xml-header -*/ -function xml_header() -{ -global $SOFTWARE_VERSION, $ex_type, $ex_sem, $range_name, $range_id; - $semester = $ex_sem ? Semester::find($ex_sem) : Semester::findCurrent(); - $xml_tag_string = "<" . "?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; - $xml_tag_string .= "<studip version=\"" . xml_escape ($SOFTWARE_VERSION) . "\" logo=\"". xml_escape (Assets::image_path('logos/logo2b.png')) . "\""; - if ($range_id == "root") $xml_tag_string .= " range=\"" . _("Alle Einrichtungen") . "\""; - elseif ($range_name != "") $xml_tag_string .= " range=\"" . xml_escape ($range_name) . "\""; - if (Config::get()->UNI_NAME_CLEAN != "") $xml_tag_string .= " uni=\"" . xml_escape (Config::get()->UNI_NAME_CLEAN) . "\""; - if ($semester) - $xml_tag_string .= " zeitraum=\"" . xml_escape ($semester->name) . "\" semester_id=\"" . xml_escape ($semester->getId()) . "\""; - $xml_tag_string .= ">\n"; - return $xml_tag_string; -} - -/** -* create opening xml-tag -* -* This function creates an open xml-tag. -* The tag-name is defined by the given parameter $tag_name. -* An optional parameter allows to set an attribute named "key". -* -* @access public -* @param string tag name -* @param string value for optional attribute "key" -* @return string xml open tag -*/ -function xml_open_tag($tag_name, $key = null) -{ - $xml_tag_string = rtrim(' ' . xml_attributes_to_string(compact('key'))); - $xml_tag_string = "<{$tag_name}{$xml_tag_string}>\n"; - return $xml_tag_string; -} - -/** -* create closing xml-tag -* -* This function creates a closed xml-tag. -* The tag-name is defined by the given parameter $tag_name. -* -* @access public -* @param string tag name -* @return string xml close tag -*/ -function xml_close_tag($tag_name) -{ - $xml_tag_string = "</" . $tag_name . ">\n"; - return $xml_tag_string; -} - -/** -* create xml-tag -* -* This function creates a xml-tag. -* The tag-name is defined by the given parameter $tag_name. -* The given parameter tag_content is put between open tag and close tag. -* -* @access public -* @param string tag name -* @param string content for xml-tag -* @param array array of tag attributes -* @return string xml tag -*/ -function xml_tag($tag_name, $tag_content, $tag_attributes = null) -{ - $xml_tag_string = xml_attributes_to_string($tag_attributes ?? []); - $xml_tag_string = "<{$tag_name}{$xml_tag_string}>" - . xml_escape ( $tag_content ) - . "</" . $tag_name . ">\n"; - return $xml_tag_string; -} - -/** -* create xml-footer -* -* This function creates the footer for xml output, -* which is a closing "studip"-tag. -* -* @access public -* @return string xml footer -*/ -function xml_footer() -{ - $xml_tag_string = "</studip>"; - return $xml_tag_string; -} - -/** - * escapes special characters for xml use - * - * @param string $string the string to escape - * @return string - */ -function xml_escape($string) -{ - $string = preg_replace('/[\x00-\x08\x0b\x0c\x0e-\x1f]/', '', $string); - return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); -} - -function xml_attributes_to_string(array $attributes): string -{ - $attributes = array_filter($attributes, function ($attribute) { - return $attribute !== null; - }); - - if (count($attributes) === 0) { - return ''; - } - - $result = ['']; // Empty item for a leading whitespace - foreach ($attributes as $key => $value) { - $result[] = sprintf('%s="%s"', $key, xml_escape($value)); - } - return implode(' ', $result); -} diff --git a/lib/export/export_xml_vars.inc.php b/lib/export/export_xml_vars.inc.php deleted file mode 100644 index ce888e3aa33bfe3ba64e6462223920d82f91d79d..0000000000000000000000000000000000000000 --- a/lib/export/export_xml_vars.inc.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** -* Config file for xml-export -* -* This file contains several arrays, that define which names will be used for specific xml-tags in the output-file. -* Changes in this file may cause export-problems if the XSLT-Scripts are not changed either! -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_xml_vars -* @package Export -*/ - -// Variablen mit den XML-Bezeichnern -// "TABELLENSPALTE" => "XML-BEZEICHNER" -$xml_groupnames_fak = [ - 'group' => 'fakultaeten', - 'object' => 'fakultaet' -]; - -$xml_names_fak = [ - 'Name' => 'name' -]; - -$xml_groupnames_inst = [ - 'object' => 'institut', - 'childobject' => 'fakultaet', - 'childgroup2' => 'datenfelder', - 'childobject2' => 'datenfeld' -]; - -$xml_names_inst = [ - 'type' => 'type', - 'Name' => 'name', - 'Strasse' => 'strasse', - 'Plz' => 'plz', - 'url' => 'homepage', - 'telefon' => 'telefon', - 'email' => 'email', - 'fax' => 'fax' -]; - -$xml_groupnames_lecture = [ - 'group' => 'seminare', - 'subgroup1' => 'gruppe', - 'subgroup2' => 'untergruppe', - 'object' => 'seminar', - 'childgroup1' => 'termine', - 'childgroup2' => 'dozenten', - 'childobject2' => 'dozent', - 'childgroup3' => 'bereiche', - 'childgroup3a' => 'lvgruppen', - 'childgroup4' => 'datenfelder', - 'childobject4' => 'datenfeld' -]; - -$xml_names_lecture = [ - 'Name' => 'titel', - 'Untertitel' => 'untertitel', - 'status' => 'status', - 'Beschreibung' => 'beschreibung', - 'ort' => 'raum', - 'Sonstiges' => 'sonstiges', - 'art' => 'art', - 'teilnehmer' => 'teilnehmer', - 'admission_turnout' => 'teilnehmerzahl', - 'teilnehmer_anzahl_aktuell' => 'teilnehmer_anzahl_aktuell', - 'vorrausetzungen' => 'voraussetzung', - 'lernorga' => 'lernorga', - 'leistungsnachweis' => 'schein', - 'VeranstaltungsNummer' => 'veranstaltungsnummer', - 'ects' => 'ects', - 'bereich' => 'bereich', - 'lvgruppe' => 'lvgruppe', - 'metadata_dates' => ['vorbesprechung', 'erstertermin', 'termin'], - 'Institut_id' => 'heimateinrichtung' -]; - -$xml_groupnames_person = [ - 'group' => 'personen', - 'subgroup1' => 'gruppe', - 'object' => 'person', - 'childgroup1' => 'datenfelder', - 'childobject1' => 'datenfeld' -]; - -$xml_names_person = [ - 'title_front' => 'titel', - 'Vorname' => 'vorname', - 'Nachname' => 'nachname', - 'title_rear' => 'titel2', - 'username' => 'username', - 'geschlecht' => 'geschlecht', - 'sprechzeiten' => 'sprechzeiten', - 'raum' => 'raum', - 'Telefon' => 'telefon', - 'Fax' => 'fax', - 'Email' => 'email', - 'Home' => 'homepage', - 'name' => 'statusgruppe', - 'privadr' => 'adresse', - 'privatnr' => 'privatnummer', - 'comment' => 'bemerkung', - 'admission_position' => 'position_warteliste', - 'registration_date' => 'datum_anmeldung', - 'nutzer_studiengaenge' => 'nutzer_studiengaenge' -]; - -$xml_groupnames_studiengaenge = [ - 'group' => 'studiengaenge', - 'object' => 'studiengang' -]; - -$xml_names_studiengaenge = [ - 'name' => 'name', - 'count' => 'anzahl' -]; diff --git a/lib/export/export_xslt_vars.inc.php b/lib/export/export_xslt_vars.inc.php deleted file mode 100644 index 4d044011a6c00aabc517e89a7f5ea4c1fed6b429..0000000000000000000000000000000000000000 --- a/lib/export/export_xslt_vars.inc.php +++ /dev/null @@ -1,190 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Config file for xslt-script inclusion -* -* This file contains several arrays, that define which xslt-scripts are available to the export-module. -* To add new designs and file-formats to the export-module, just add a new set of filetype, name, -* description and format-name to this file. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export_xml_vars -* @package Export -*/ - -$xslt_files["txt-standard"]["name"] = _("Standardmodul"); -$xslt_files["txt-standard"]["desc"] = _("Standardmodul zur Ausgabe von Personen- oder Veranstaltungsdaten im Textformat. Die Daten werden nur mit Tabulatoren und Bindestrichen formatiert. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["txt-standard"]["file"] = "txt-vp-1.xsl"; -$xslt_files["txt-standard"]["txt"] = true; -$xslt_files["txt-standard"]["person"] = true; -$xslt_files["txt-standard"]["veranstaltung"] = true; - -$xslt_files["txt-noformat"]["name"] = _("Unformatierte Ausgabe"); -$xslt_files["txt-noformat"]["desc"] = _("Modul zur Ausgabe von Personen- oder Veranstaltungsdaten im Textformat. Die Daten werden nicht formatiert. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["txt-noformat"]["file"] = "txt-vp-2.xsl"; -$xslt_files["txt-noformat"]["txt"] = true; -$xslt_files["txt-noformat"]["person"] = true; -$xslt_files["txt-noformat"]["veranstaltung"] = true; - -$xslt_files["txt-noformat-2"]["name"] = _("Unformatiert mit Veranstaltungsnummern"); -$xslt_files["txt-noformat-2"]["desc"] = _("Modul zur Ausgabe von Personen- oder Veranstaltungsdaten im Textformat. Die Daten werden nicht formatiert. Es werden auch die Veranstaltungsnummern ausgegeben. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["txt-noformat-2"]["file"] = "txt-v-3.xsl"; -$xslt_files["txt-noformat-2"]["txt"] = true; -$xslt_files["txt-noformat-2"]["veranstaltung"] = true; - - - -$xslt_files["html-standard"]["name"] = _("Standardmodul"); -$xslt_files["html-standard"]["desc"] = _("Standardmodul zur Ausgabe von Personen- oder Veranstaltungsdaten als HTML-Seite. Personendaten werden als Tabelle angezeigt. Die Ausgabe-Datei kann in einem Web-Browser angezeigt werden."); -$xslt_files["html-standard"]["file"] = "html-vp-1.xsl"; -$xslt_files["html-standard"]["htm"] = true; -$xslt_files["html-standard"]["html"] = true; -$xslt_files["html-standard"]["person"] = true; -$xslt_files["html-standard"]["veranstaltung"] = true; - -$xslt_files["html-druck"]["name"] = _("Druckmodul"); -$xslt_files["html-druck"]["desc"] = _("Modul zur Ausgabe von Personen- oder Veranstaltungsdaten als HTML-Seite. Es wird eine druckbare HTML-Seite ohne Farben erzeugt. Die Ausgabe-Datei kann in einem Web-Browser angezeigt und ausgedruckt werden."); -$xslt_files["html-druck"]["file"] = "html-vp-2.xsl"; -$xslt_files["html-druck"]["htm"] = true; -$xslt_files["html-druck"]["html"] = true; -$xslt_files["html-druck"]["person"] = true; -$xslt_files["html-druck"]["veranstaltung"] = true; - -$xslt_files["html-liste"]["name"] = _("Ãœbersicht"); -$xslt_files["html-liste"]["desc"] = _("Modul zur Ausgabe von Personen- oder Veranstaltungsdaten als HTML-Seite. Es werden nur die Veranstaltungs-Grunddaten bzw. Namen, Telefonnummern und E-Mail-Adressen in eine Tabelle geschrieben. Die Ausgabe-Datei kann in einem Web-Browser angezeigt werden."); -$xslt_files["html-liste"]["file"] = "html-vp-3.xsl"; -$xslt_files["html-liste"]["htm"] = true; -$xslt_files["html-liste"]["html"] = true; -$xslt_files["html-liste"]["person"] = true; -$xslt_files["html-liste"]["veranstaltung"] = true; - -$xslt_files["html-standard-2"]["name"] = _("Standardmodul mit Veranstaltungsnummern"); -$xslt_files["html-standard-2"]["desc"] = _("Standardmodul zur Ausgabe von Veranstaltungsdaten als HTML-Seite. Es werden auch die Veranstaltungsnummern ausgegeben. Die Ausgabe-Datei kann in einem Web-Browser angezeigt werden."); -$xslt_files["html-standard-2"]["file"] = "html-v-4.xsl"; -$xslt_files["html-standard-2"]["htm"] = true; -$xslt_files["html-standard-2"]["html"] = true; -$xslt_files["html-standard-2"]["veranstaltung"] = true; - -$xslt_files["html-teiln"]["name"] = _("Teilnehmendenliste"); -$xslt_files["html-teiln"]["desc"] = _("Modul zur Ausgabe von Personendaten als HTML-Seite. Es werden die Grunddaten der Teilnehmenden einer einzelnen Veranstaltung in eine Tabelle geschrieben. Die Ausgabe-Datei kann in einem Web-Browser angezeigt werden."); -$xslt_files["html-teiln"]["file"] = "html-t-1.xsl"; -$xslt_files["html-teiln"]["htm"] = true; -$xslt_files["html-teiln"]["html"] = true; -//$xslt_files["html-teiln"]["person"] = true; - - - -$xslt_files["rtf-standard"]["name"] = _("Standardmodul"); -$xslt_files["rtf-standard"]["desc"] = _("Standardmodul zur Ausgabe von Personen- oder Veranstaltungsdaten als RTF-Datei. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["rtf-standard"]["file"] = "rtf-vp-1.xsl"; -$xslt_files["rtf-standard"]["rtf"] = true; -$xslt_files["rtf-standard"]["person"] = true; -$xslt_files["rtf-standard"]["veranstaltung"] = true; - -$xslt_files["rtf-liste"]["name"] = _("Ãœbersicht"); -$xslt_files["rtf-liste"]["desc"] = _("Modul zur Ausgabe von Personen- oder Veranstaltungsdaten als RTF-Datei. Es werden nur die Grunddaten in eine Tabelle geschrieben (Lehrende, Titel, Status, Termin und Raum bzw.Name, Telefon, Sprechzeiten, Raum, E-Mail). Ein Deckblatt wird automatisch erzeugt. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["rtf-liste"]["file"] = "rtf-vp-2.xsl"; -$xslt_files["rtf-liste"]["rtf"] = true; -$xslt_files["rtf-liste"]["person"] = true; -$xslt_files["rtf-liste"]["veranstaltung"] = true; - -$xslt_files["rtf-kommentar"]["name"] = _("Vorlesungskommentar"); -$xslt_files["rtf-kommentar"]["desc"] = _("Modul zur Ausgabe von Veranstaltungsdaten als Vorlesungskommentar im Rich-Text-Format. Der Kommentar enthält die Veranstaltungsdetails. Es wird automatisch ein Deckblatt generiert. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["rtf-kommentar"]["file"] = "rtf-vp-3.xsl"; -$xslt_files["rtf-kommentar"]["rtf"] = true; -$xslt_files["rtf-kommentar"]["veranstaltung"] = true; - -$xslt_files["rtf-kommentar-2"]["name"] = _("Vorlesungskommentar mit Veranstaltungsnummern"); -$xslt_files["rtf-kommentar-2"]["desc"] = _("Modul zur Ausgabe von Veranstaltungsdaten als Vorlesungskommentar im Rich-Text-Format. Der Kommentar enthält die Veranstaltungs-Details. Es wird automatisch ein Deckblatt generiert. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["rtf-kommentar-2"]["file"] = "rtf-v-4.xsl"; -$xslt_files["rtf-kommentar-2"]["rtf"] = true; -$xslt_files["rtf-kommentar-2"]["veranstaltung"] = true; - -$xslt_files["rtf-teiln"]["name"] = _("Teilnehmendenliste"); -$xslt_files["rtf-teiln"]["desc"] = _("Modul zur Ausgabe von Personendaten als RTF-Datei. Personendaten inkl. Studiengänge und Kontingente werden in eine Tabelle geschrieben. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["rtf-teiln"]["file"] = "rtf-t-1.xsl"; -$xslt_files["rtf-teiln"]["rtf"] = true; - -$xslt_files["rtf-gruppen"]["name"] = _("Liste der Guppen und Funktionen"); -$xslt_files["rtf-gruppen"]["desc"] = _("Modul zur Ausgabe von Personendaten als RTF-Datei. Personendaten werden in eine Tabelle geschrieben. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["rtf-gruppen"]["file"] = "rtf-t-2.xsl"; -$xslt_files["rtf-gruppen"]["rtf"] = true; - -$xslt_files["rtf-warteliste"]["name"] = _("Warteliste"); -$xslt_files["rtf-warteliste"]["desc"] = _("Modul zur Ausgabe von Personendaten als RTF-Datei. Personen der Warteliste einer einzelnen Veranstaltung in eine Tabelle geschrieben. Es werden auch die Kontingente und Studiengänge ausgegeben. Die Ausgabe-Datei kann in einer Textverarbeitung bearbeitet werden."); -$xslt_files["rtf-warteliste"]["file"] = "rtf-t-3.xsl"; -$xslt_files["rtf-warteliste"]["rtf"] = true; - -$xslt_files["pdf-standard"]["name"] = _("Standardmodul"); -$xslt_files["pdf-standard"]["desc"] = _("Standardmodul zur Ausgabe von Veranstaltungs- und Personendaten als Vorlesungskommentar bzw. MitarbeiterInnenlisten mit Seitenzahlen im Adobe PDF-Format. Die Datei kann mit dem Acrobat PDF-Reader gelesen werden."); -$xslt_files["pdf-standard"]["file"] = "pdf-vp-1.xsl"; -$xslt_files["pdf-standard"]["fo"] = true; -$xslt_files["pdf-standard"]["person"] = true; -$xslt_files["pdf-standard"]["veranstaltung"] = true; - -$xslt_files["pdf-kommentar"]["name"] = _("Vorlesungskommentar"); -$xslt_files["pdf-kommentar"]["desc"] = _("Modul zur Ausgabe von Veranstaltungsdaten als Vorlesungskommentar im Adobe PDF-Format. Die Seiten enthalten eine Kopfzeile und eine Fußzeile mit der Seitenzahl. Deckblatt und Inhaltsverzeichnis werden automatisch generiert. Die Datei kann mit dem Acrobat PDF-Reader gelesen werden."); -$xslt_files["pdf-kommentar"]["file"] = "pdf-vp-2.xsl"; -$xslt_files["pdf-kommentar"]["fo"] = true; -$xslt_files["pdf-kommentar"]["veranstaltung"] = true; - -$xslt_files["pdf-kommentar-2"]["name"] = _("Vorlesungskommentar mit Veranstaltungsnummern"); -$xslt_files["pdf-kommentar-2"]["desc"] = _("Modul zur Ausgabe von Veranstaltungsdaten als Vorlesungskommentar im Adobe PDF-Format. Die Seiten enthalten eine Kopfzeile und eine Fußzeile mit der Seitenzahl. Deckblatt und Inhaltsverzeichnis werden automatisch generiert. Es werden auch die Veranstaltungsnummern ausgegeben. Die Datei kann mit dem Acrobat PDF-Reader gelesen werden."); -$xslt_files["pdf-kommentar-2"]["file"] = "pdf-v-4.xsl"; -$xslt_files["pdf-kommentar-2"]["fo"] = true; -$xslt_files["pdf-kommentar-2"]["veranstaltung"] = true; - -$xslt_files["pdf-staff"]["name"] = _("MitarbeiterInnenlisten"); -$xslt_files["pdf-staff"]["desc"] = _("Modul zur Ausgabe von Personendaten als MitarbeiterInnenlisten im Adobe PDF-Format. Die Grunddaten der Personen (Name, Telefon, Sprechzeiten, Raum, E-Mail-Adresse) werden in einer Tabelle angezeigt. Die Seiten enthalten eine Kopfzeile und eine Fußzeile mit der Seitenzahl. Es wird automatisch ein Deckblatt und ein Inhaltsverzeichnis generiert. Die Datei kann mit dem PDF-Acrobat Reader gelesen werden."); -$xslt_files["pdf-staff"]["file"] = "pdf-vp-2.xsl"; -$xslt_files["pdf-staff"]["fo"] = true; -$xslt_files["pdf-staff"]["person"] = true; - -$xslt_files["pdf-liste"]["name"] = _("Vorlesungsverzeichnis"); -$xslt_files["pdf-liste"]["desc"] = _("Modul zur Ausgabe von Veranstaltungsdaten als Vorlesungsverzeichnis im Adobe PDF-Format. Die Grunddaten der Veranstaltungen (Lehrende, Titel, Status, erster Termin und Raum) werden in einer Tabelle angezeigt. Es wird automatisch ein Deckblatt und ein Inhaltsverzeichnis generiert. Die Datei kann mit dem Acrobat Reader gelesen werden."); -$xslt_files["pdf-liste"]["file"] = "pdf-v-3.xsl"; -$xslt_files["pdf-liste"]["fo"] = true; - -$xslt_files["csv-teiln"]["name"] = _("Teilnehmendenliste"); -$xslt_files["csv-teiln"]["desc"] = _("Modul zur Ausgabe von Personendaten als CSV-Datei. Es werden die Grunddaten der Personen in eine Tabelle geschrieben. Es werden auch die Kontingente und Studiengänge ausgegeben. Die Ausgabe-Datei kann in Excel bearbeitet werden."); -$xslt_files["csv-teiln"]["file"] = "csv-t-1.xsl"; -$xslt_files["csv-teiln"]["csv"] = true; - -$xslt_files["csv-warteliste"]["name"] = _("Warteliste"); -$xslt_files["csv-warteliste"]["desc"] = _("Modul zur Ausgabe von Personendaten als CSV-Datei. Es werden die Grunddaten der Personen auf der Warteliste einer einzelnen Veranstaltung in eine Tabelle geschrieben. Es werden auch die Kontingente und Studiengänge ausgegeben. Die Ausgabe-Datei kann in Excel bearbeitet werden."); -$xslt_files["csv-warteliste"]["file"] = "csv-t-2.xsl"; -$xslt_files["csv-warteliste"]["csv"] = true; - -$xslt_files["csv-gruppen"]["name"] = _("Liste der Teilnehmenden mit Gruppen"); -$xslt_files["csv-gruppen"]["desc"] = _("Modul zur Ausgabe von Personendaten mit Gruppenzugehörigkeit als CSV-Datei. Es werden die Grunddaten der Teilnehmenden einer einzelnen Veranstaltung in eine Tabelle geschrieben. Es werden auch die Kontingente und Studiengänge ausgegeben. Die Ausgabe-Datei kann in Excel bearbeitet werden."); -$xslt_files["csv-gruppen"]["file"] = "csv-t-3.xsl"; -$xslt_files["csv-gruppen"]["csv"] = true; - -$xslt_files["csv-person"]["name"] = _("Standardmodul"); -$xslt_files["csv-person"]["desc"] = _("Standardmodul zur Ausgabe von Personendaten als CSV-Datei. Die Ausgabe-Datei kann in Excel oder OpenOffice angezeigt werden."); -$xslt_files["csv-person"]["file"] = "csv-p-1.xsl"; -$xslt_files["csv-person"]["csv"] = true; -$xslt_files["csv-person"]["person"] = true; - -$xslt_files["csv-person-2"]["name"] = _("Ãœbersicht"); -$xslt_files["csv-person-2"]["desc"] = _("Modul zur Ausgabe von Personendaten als CSV-Datei. Es werden nur Name, Telefonnummern und E-Mail-Adressen gespeichert. Die Ausgabe-Datei kann in Excel oder OpenOffice angezeigt werden."); -$xslt_files["csv-person-2"]["file"] = "csv-p-2.xsl"; -$xslt_files["csv-person-2"]["csv"] = true; -$xslt_files["csv-person-2"]["person"] = true; - -$xslt_files["csv-veranstaltung"]["name"] = _("Standardmodul"); -$xslt_files["csv-veranstaltung"]["desc"] = _("Standardmodul zur Ausgabe von Veranstaltungsdaten als CSV-Datei. Die Ausgabe-Datei kann in Excel oder OpenOffice angezeigt werden."); -$xslt_files["csv-veranstaltung"]["file"] = "csv-v-1.xsl"; -$xslt_files["csv-veranstaltung"]["csv"] = true; -$xslt_files["csv-veranstaltung"]["veranstaltung"] = true; - -$xslt_files["csv-veranstaltung-2"]["name"] = _("Ãœbersicht"); -$xslt_files["csv-veranstaltung-2"]["desc"] = _("Modul zur Ausgabe von Veranstaltungsdaten als CSV-Datei. Die Ausgabe-Datei kann in Excel oder OpenOffice angezeigt werden."); -$xslt_files["csv-veranstaltung-2"]["file"] = "csv-v-2.xsl"; -$xslt_files["csv-veranstaltung-2"]["csv"] = true; -$xslt_files["csv-veranstaltung-2"]["veranstaltung"] = true; diff --git a/lib/export/html-t-1.xsl b/lib/export/html-t-1.xsl deleted file mode 100644 index 6453cd7b6f7d37e183383810d9cb25e76321f9f2..0000000000000000000000000000000000000000 --- a/lib/export/html-t-1.xsl +++ /dev/null @@ -1,116 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="html" encoding="UTF-8"/> - <xsl:template match="/"> - <html> - <meta charset="utf-8"/> - <body> - <xsl:for-each select="studip"> - <h1>Veranstaltung: <xsl:value-of select="@range"/></h1> - <xsl:for-each select="institut"> - <br/> - <xsl:if test="personen"> - <table width="100%" cellpadding="5" cellspacing="2"> - <tr colspan="5"> - <td> - <h2>Teilnehmendenliste</h2> - </td> - </tr> - <tr> - <td> - <br/> - </td> - </tr> - <tr> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Name</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Telefon</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Adresse</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">E-Mail</font> - </b> - </td> - </tr> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <tr> - <td colspan="4" bgcolor="#006699"> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </td> - </tr> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <br/> - <br/> - </xsl:for-each> - <font size="-1">Generiert von Stud.IP Version <xsl:value-of select="@version"/></font> - </xsl:for-each> - </body> - </html> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <tr> - <td bgcolor="#EEEEEE"> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text> </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="privadr"> - <xsl:value-of select="privadr"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="privatnr"> - <xsl:value-of select="privatnr"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <br/> - </td> - </tr> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> diff --git a/lib/export/html-v-4.xsl b/lib/export/html-v-4.xsl deleted file mode 100644 index 0dcf61b2d6039a0c0457e14fd2e60564d4d47fe1..0000000000000000000000000000000000000000 --- a/lib/export/html-v-4.xsl +++ /dev/null @@ -1,380 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="html" encoding="UTF-8"/> - <xsl:template match="/"> - <html> - <meta charset="utf-8"/> - <body> - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <h1><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> - </h1> -<xsl:if test="fakultaet"> - <b>Fakultät: </b> - <xsl:value-of select="fakultaet"/> - <br/> -</xsl:if> -<xsl:if test="homepage"> - <b>Homepage: </b> - <xsl:value-of select="homepage"/> - <br/> -</xsl:if> -<xsl:if test="strasse"> - <b>Strasse: </b> - <xsl:value-of select="strasse"/> - <br/> -</xsl:if> -<xsl:if test="plz"> - <b>Postleitzahl: </b> - <xsl:value-of select="plz"/> - <br/> -</xsl:if> -<xsl:if test="telefon"> - <b>Telefon: </b> - <xsl:value-of select="telefon"/> - <br/> -</xsl:if> -<xsl:if test="fax"> - <b>Fax: </b> - <xsl:value-of select="fax"/> - <br/> -</xsl:if> -<xsl:if test="email"> - <b>E-mail: </b> - <xsl:value-of select="email"/> - <br/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <b><xsl:value-of select="@key"/>: </b> - <xsl:value-of select="."/> - <br/> - </xsl:for-each> -</xsl:if> - <br/> - <xsl:if test="seminare"> - <table width="100%" cellpadding="5" cellspacing="2"> - <tr> - <td> - <h2>Veranstaltungen</h2> - </td> - </tr> - <tr> - <td> - <br/> - </td> - </tr> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <tr bgcolor="#0000BB"> - <td colspan="2" bgcolor="#006699"> - <h2> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h2> - </td> - </tr> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <tr bgcolor="#6600BB"> - <td colspan="2" bgcolor="#006699"> - <h2> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h2> - </td> - </tr> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <br/> - <br/> - </xsl:for-each> - <font size="-1">Generiert von Stud.IP Version <xsl:value-of select="@version"/></font> - </xsl:for-each> - </body> - </html> - </xsl:template> - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <tr border="0" align="left"> - <td bgcolor="#006699"> - <font color="#FFFFFF"> - <b> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </b> - </font> - </td> - <td bgcolor="#006699"> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="titel"/> - </b> - </font> - </td> - </tr> - <xsl:if test="untertitel"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Untertitel: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="untertitel"/> - </td> - </tr> - </xsl:if> - <tr> - <td bgcolor="#EEEEEE"> - <b>Lehrende: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </td> - </tr> - <tr> - <td bgcolor="#EEEEEE"> - <b>Termin: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="termine/termin"/> - </td> - </tr> - <tr> - <td bgcolor="#EEEEEE"> - <b>Erster Termin: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="termine/erstertermin"/> - </td> - </tr> - <xsl:if test="termine/vorbesprechung"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Vorbesprechung: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="termine/vorbesprechung"/> - </td> - </tr> - </xsl:if> - <xsl:if test="status"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Status: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="status"/> - </td> - </tr> - </xsl:if> - <xsl:if test="veranstaltungsnummer"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Veranstaltungsnummer: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="veranstaltungsnummer"/> - </td> - </tr> - </xsl:if> - <xsl:if test="beschreibung"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Beschreibung: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:call-template name="replace-newlines"> - <xsl:with-param name="str" select="beschreibung"/> - </xsl:call-template> - </td> - </tr> - </xsl:if> - <xsl:if test="raum"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Raum: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="raum"/> - </td> - </tr> - </xsl:if> - <xsl:if test="sonstiges"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Sonstiges: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="sonstiges"/> - </td> - </tr> - </xsl:if> - <xsl:if test="art"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Art der Veranstaltung: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="art"/> - </td> - </tr> - </xsl:if> - <xsl:if test="teilnehmer"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Teilnahme: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="teilnehmer"/> - </td> - </tr> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <tr> - <td bgcolor="#EEEEEE"> - <b><xsl:value-of select="@key"/> Anzahl Teilnehmende: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="."/> - </td> - </tr> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Voraussetzungen: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="voraussetzung"/> - </td> - </tr> - </xsl:if> - <xsl:if test="lernorga"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Lernorganisation: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="lernorga"/> - </td> - </tr> - </xsl:if> - <xsl:if test="schein"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Leistungsnachweis: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="schein"/> - </td> - </tr> - </xsl:if> - <xsl:if test="ects"> - <tr> - <td bgcolor="#EEEEEE"> - <b>ECTS: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="ects"/> - </td> - </tr> - </xsl:if> - <xsl:if test="bereiche"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Bereich: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:for-each select="bereiche/bereich"> - <xsl:value-of select="."/><br/> - </xsl:for-each> - </td> - </tr> - </xsl:if> - <xsl:if test="lvgruppen"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Module: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:for-each select="lvgruppen/lvgruppe"> - <xsl:value-of select="."/><br/> - </xsl:for-each> - </td> - </tr> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <tr> - <td bgcolor="#EEEEEE"> - <b><xsl:value-of select="@key"/>: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="."/> - <br/> - </td> - </tr> - </xsl:for-each> - </xsl:if> - <tr> - <td> - <br/> - </td> - </tr> - </xsl:for-each> -</xsl:template> - <!-- replace newline characters with <br> elements --> - <xsl:template name="replace-newlines"> - <xsl:param name="str"/> - <xsl:choose> - <xsl:when test="contains($str, ' ')"> - <xsl:value-of select="substring-before($str, ' ')"/> - <br/> - <xsl:call-template name="replace-newlines"> - <xsl:with-param name="str" select="substring-after($str, ' ')"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$str"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/html-vp-1.xsl b/lib/export/html-vp-1.xsl deleted file mode 100644 index dd8e0ed6de97f591c15f755bb9441af07e730170..0000000000000000000000000000000000000000 --- a/lib/export/html-vp-1.xsl +++ /dev/null @@ -1,478 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="html" encoding="UTF-8"/> - <xsl:template match="/"> - <html> - <meta charset="utf-8"/> - <body> - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <h1><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> - </h1> -<xsl:if test="fakultaet"> - <b>Fakultät: </b> - <xsl:value-of select="fakultaet"/> - <br/> -</xsl:if> -<xsl:if test="homepage"> - <b>Homepage: </b> - <xsl:value-of select="homepage"/> - <br/> -</xsl:if> -<xsl:if test="strasse"> - <b>Strasse: </b> - <xsl:value-of select="strasse"/> - <br/> -</xsl:if> -<xsl:if test="plz"> - <b>Postleitzahl: </b> - <xsl:value-of select="plz"/> - <br/> -</xsl:if> -<xsl:if test="telefon"> - <b>Telefon: </b> - <xsl:value-of select="telefon"/> - <br/> -</xsl:if> -<xsl:if test="fax"> - <b>Fax: </b> - <xsl:value-of select="fax"/> - <br/> -</xsl:if> -<xsl:if test="email"> - <b>E-mail: </b> - <xsl:value-of select="email"/> - <br/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <b><xsl:value-of select="@key"/>: </b> - <xsl:value-of select="."/> - <br/> - </xsl:for-each> -</xsl:if> - <br/> - <xsl:if test="seminare"> - <table width="100%" cellpadding="5" cellspacing="2"> - <tr> - <td> - <h2>Veranstaltungen</h2> - </td> - </tr> - <tr> - <td> - <br/> - </td> - </tr> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <tr bgcolor="#0000BB"> - <td colspan="2" bgcolor="#006699"> - <h2> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h2> - </td> - </tr> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <tr bgcolor="#6600BB"> - <td colspan="2" bgcolor="#006699"> - <h2> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h2> - </td> - </tr> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <xsl:if test="personen"> - <table width="100%" cellpadding="5" cellspacing="2"> - <tr colspan="5"> - <td> - <h2>MitarbeiterInnen</h2> - </td> - </tr> - <tr> - <td> - <br/> - </td> - </tr> - <tr> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Name</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Telefon</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Raum</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Sprechzeiten</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">E-Mail</font> - </b> - </td> - </tr> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <tr> - <td colspan="5" bgcolor="#006699"> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </td> - </tr> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <br/> - <br/> - </xsl:for-each> - <font size="-1">Generiert von Stud.IP Version <xsl:value-of select="@version"/></font> - </xsl:for-each> - </body> - </html> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <tr> - <td bgcolor="#EEEEEE"> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text> </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <br/> - </td> - </tr> - </xsl:for-each> -</xsl:template> - - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <tr border="0" align="left"> - <td bgcolor="#006699"> - <font color="#FFFFFF"> - <b> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </b> - </font> - </td> - <td bgcolor="#006699"> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="titel"/> - </b> - </font> - </td> - </tr> - <xsl:if test="untertitel"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Untertitel: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="untertitel"/> - </td> - </tr> - </xsl:if> - <tr> - <td bgcolor="#EEEEEE"> - <b>Lehrende: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </td> - </tr> - <tr> - <td bgcolor="#EEEEEE"> - <b>Termin: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="termine/termin"/> - </td> - </tr> - <tr> - <td bgcolor="#EEEEEE"> - <b>Erster Termin: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="termine/erstertermin"/> - </td> - </tr> - <xsl:if test="termine/vorbesprechung"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Vorbesprechung: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="termine/vorbesprechung"/> - </td> - </tr> - </xsl:if> - <xsl:if test="status"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Status: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="status"/> - </td> - </tr> - </xsl:if> - <xsl:if test="beschreibung"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Beschreibung: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:call-template name="replace-newlines"> - <xsl:with-param name="str" select="beschreibung"/> - </xsl:call-template> - </td> - </tr> - </xsl:if> - <xsl:if test="raum"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Raum: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="raum"/> - </td> - </tr> - </xsl:if> - <xsl:if test="sonstiges"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Sonstiges: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="sonstiges"/> - </td> - </tr> - </xsl:if> - <xsl:if test="art"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Art der Veranstaltung: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="art"/> - </td> - </tr> - </xsl:if> - <xsl:if test="teilnehmer"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Teilnahme: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="teilnehmer"/> - </td> - </tr> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <tr> - <td bgcolor="#EEEEEE"> - <b><xsl:value-of select="@key"/> Anzahl Teilnehmende: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="."/> - </td> - </tr> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Voraussetzungen: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="voraussetzung"/> - </td> - </tr> - </xsl:if> - <xsl:if test="lernorga"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Lernorganisation: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="lernorga"/> - </td> - </tr> - </xsl:if> - <xsl:if test="schein"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Leistungsnachweis: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="schein"/> - </td> - </tr> - </xsl:if> - <xsl:if test="ects"> - <tr> - <td bgcolor="#EEEEEE"> - <b>ECTS: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="ects"/> - </td> - </tr> - </xsl:if> - <xsl:if test="bereiche"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Bereich: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:for-each select="bereiche/bereich"> - <xsl:value-of select="."/><br/> - </xsl:for-each> - </td> - </tr> - </xsl:if> - <xsl:if test="lvgruppen"> - <tr> - <td bgcolor="#EEEEEE"> - <b>Module: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:for-each select="lvgruppen/lvgruppe"> - <xsl:value-of select="."/><br/> - </xsl:for-each> - </td> - </tr> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <tr> - <td bgcolor="#EEEEEE"> - <b><xsl:value-of select="@key"/>: </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="."/> - <br/> - </td> - </tr> - </xsl:for-each> - </xsl:if> - <tr> - <td> - <br/> - </td> - </tr> - </xsl:for-each> -</xsl:template> - <!-- replace newline characters with <br> elements --> - <xsl:template name="replace-newlines"> - <xsl:param name="str"/> - <xsl:choose> - <xsl:when test="contains($str, ' ')"> - <xsl:value-of select="substring-before($str, ' ')"/> - <br/> - <xsl:call-template name="replace-newlines"> - <xsl:with-param name="str" select="substring-after($str, ' ')"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$str"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/html-vp-2.xsl b/lib/export/html-vp-2.xsl deleted file mode 100644 index 87435698e29668bffe4a0ce899fa7d5269fa065e..0000000000000000000000000000000000000000 --- a/lib/export/html-vp-2.xsl +++ /dev/null @@ -1,473 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="html" encoding="UTF-8"/> - <xsl:template match="/"> - <html> - <meta charset="utf-8"/> - <body> - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <h1><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> - </h1> -<xsl:if test="fakultaet"> - <b>Fakultät: </b> - <xsl:value-of select="fakultaet"/> - <br/> -</xsl:if> -<xsl:if test="homepage"> - <b>Homepage: </b> - <xsl:value-of select="homepage"/> - <br/> -</xsl:if> -<xsl:if test="strasse"> - <b>Strasse: </b> - <xsl:value-of select="strasse"/> - <br/> -</xsl:if> -<xsl:if test="plz"> - <b>Postleitzahl: </b> - <xsl:value-of select="plz"/> - <br/> -</xsl:if> -<xsl:if test="telefon"> - <b>Telefon: </b> - <xsl:value-of select="telefon"/> - <br/> -</xsl:if> -<xsl:if test="fax"> - <b>Fax: </b> - <xsl:value-of select="fax"/> - <br/> -</xsl:if> -<xsl:if test="email"> - <b>E-mail: </b> - <xsl:value-of select="email"/> - <br/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <b><xsl:value-of select="@key"/>: </b> - <xsl:value-of select="."/> - <br/> - </xsl:for-each> -</xsl:if> - <br/> - <xsl:if test="seminare"> - <table width="100%" cellpadding="5" cellspacing="0" border="1"> - <tr> - <td colspan="2"> - <h2>Veranstaltungen</h2> - </td> - </tr> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <tr bgcolor="#FFFFFF"> - <td colspan="2"> - <h2> - <font color="#000000"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h2> - </td> - </tr> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <tr bgcolor="#FFFFFF"> - <td colspan="2"> - <h3> - <font color="#000000"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h3> - </td> - </tr> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <xsl:if test="personen"> - <table width="100%" cellpadding="5" cellspacing="0" border="1"> - <tr> - <td colspan="5"> - <h2>MitarbeiterInnen</h2> - </td> - </tr> - <tr> - <td colspan="5"> - <br/> - </td> - </tr> - <tr bgcolor="#FFFFFF"> - <td> - <b> - <font color="#000000">Name</font> - </b> - </td> - <td> - <b> - <font color="#000000">Telefon</font> - </b> - </td> - <td> - <b> - <font color="#000000">Raum</font> - </b> - </td> - <td> - <b> - <font color="#000000">Sprechzeiten</font> - </b> - </td> - <td> - <b> - <font color="#000000">E-Mail</font> - </b> - </td> - </tr> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <tr bgcolor="#FFFFFF"> - <td colspan="5"> - <font color="#000000"> - <h2> - <xsl:value-of select="@key"/> - </h2> - </font> - </td> - </tr> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <br/> - <br/> - </xsl:for-each> - <font size="-1">Generiert von Stud.IP Version <xsl:value-of select="@version"/></font> - </xsl:for-each> - </body> - </html> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <tr> - <td> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> - <br/> - </td> - <td> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> - <br/> - </td> - <td> - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> - <br/> - </td> - <td> - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> - <br/> - </td> - <td> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <br/> - </td> - </tr> - </xsl:for-each> -</xsl:template> - - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <tr bgcolor="#FFFFFF" border="0" align="left"> - <td> - <font color="#000000"> - <b> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </b> - </font> - </td> - <td> - <font color="#000000"> - <b> - <xsl:value-of select="titel"/> - </b> - </font> - </td> - </tr> - <xsl:if test="untertitel"> - <tr> - <td> - <b>Untertitel: </b> - </td> - <td> - <xsl:value-of select="untertitel"/> - </td> - </tr> - </xsl:if> - <tr> - <td> - <b>Lehrende: </b> - </td> - <td> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </td> - </tr> - <tr> - <td> - <b>Termin: </b> - </td> - <td> - <xsl:value-of select="termine/termin"/> - </td> - </tr> - <tr> - <td> - <b>Erster Termin: </b> - </td> - <td> - <xsl:value-of select="termine/erstertermin"/> - </td> - </tr> - <xsl:if test="termine/vorbesprechung"> - <tr> - <td> - <b>Vorbesprechung: </b> - </td> - <td> - <xsl:value-of select="termine/vorbesprechung"/> - </td> - </tr> - </xsl:if> - <xsl:if test="status"> - <tr> - <td> - <b>Status: </b> - </td> - <td> - <xsl:value-of select="status"/> - </td> - </tr> - </xsl:if> - <xsl:if test="beschreibung"> - <tr> - <td> - <b>Beschreibung: </b> - </td> - <td> - <xsl:call-template name="replace-newlines"> - <xsl:with-param name="str" select="beschreibung"/> - </xsl:call-template> - </td> - </tr> - </xsl:if> - <xsl:if test="raum"> - <tr> - <td> - <b>Raum: </b> - </td> - <td> - <xsl:value-of select="raum"/> - </td> - </tr> - </xsl:if> - <xsl:if test="sonstiges"> - <tr> - <td> - <b>Sonstiges: </b> - </td> - <td> - <xsl:value-of select="sonstiges"/> - </td> - </tr> - </xsl:if> - <xsl:if test="art"> - <tr> - <td> - <b>Art der Veranstaltung: </b> - </td> - <td> - <xsl:value-of select="art"/> - </td> - </tr> - </xsl:if> - <xsl:if test="teilnehmer"> - <tr> - <td> - <b>Teilnahme: </b> - </td> - <td> - <xsl:value-of select="teilnehmer"/> - </td> - </tr> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <tr> - <td> - <b><xsl:value-of select="@key"/> Anzahl Teilnehmende: </b> - </td> - <td> - <xsl:value-of select="."/> - </td> - </tr> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <tr> - <td> - <b>Voraussetzungen: </b> - </td> - <td> - <xsl:value-of select="voraussetzung"/> - </td> - </tr> - </xsl:if> - <xsl:if test="lernorga"> - <tr> - <td> - <b>Lernorganisation: </b> - </td> - <td> - <xsl:value-of select="lernorga"/> - </td> - </tr> - </xsl:if> - <xsl:if test="schein"> - <tr> - <td> - <b>Leistungsnachweis: </b> - </td> - <td> - <xsl:value-of select="schein"/> - </td> - </tr> - </xsl:if> - <xsl:if test="ects"> - <tr> - <td> - <b>ECTS: </b> - </td> - <td> - <xsl:value-of select="ects"/> - </td> - </tr> - </xsl:if> - <xsl:if test="bereiche"> - <tr> - <td> - <b>Bereich: </b> - </td> - <td> - <xsl:for-each select="bereiche/bereich"> - <xsl:value-of select="."/><br/> - </xsl:for-each> - </td> - </tr> - </xsl:if> - <xsl:if test="lvgruppen"> - <tr> - <td> - <b>Module: </b> - </td> - <td> - <xsl:for-each select="lvgruppen/lvgruppe"> - <xsl:value-of select="."/><br/> - </xsl:for-each> - </td> - </tr> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <tr> - <td> - <b><xsl:value-of select="@key"/>: </b> - </td> - <td> - <xsl:value-of select="."/> - <br/> - </td> - </tr> - </xsl:for-each> - </xsl:if> - <tr> - <td colspan="2"> - <br/> - </td> - </tr> - </xsl:for-each> -</xsl:template> - <!-- replace newline characters with <br> elements --> - <xsl:template name="replace-newlines"> - <xsl:param name="str"/> - <xsl:choose> - <xsl:when test="contains($str, ' ')"> - <xsl:value-of select="substring-before($str, ' ')"/> - <br/> - <xsl:call-template name="replace-newlines"> - <xsl:with-param name="str" select="substring-after($str, ' ')"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$str"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/html-vp-3.xsl b/lib/export/html-vp-3.xsl deleted file mode 100644 index 5d500c69f8a4fd96df690a27f994e94ce7e06a22..0000000000000000000000000000000000000000 --- a/lib/export/html-vp-3.xsl +++ /dev/null @@ -1,265 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="html" encoding="UTF-8"/> - <xsl:template match="/"> - <html> - <meta charset="utf-8"/> - <body> - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <h1><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> - </h1> -<xsl:if test="fakultaet"> - <b>Fakultät: </b> - <xsl:value-of select="fakultaet"/> - <br/> -</xsl:if> -<xsl:if test="homepage"> - <b>Homepage: </b> - <xsl:value-of select="homepage"/> - <br/> -</xsl:if> -<xsl:if test="strasse"> - <b>Strasse: </b> - <xsl:value-of select="strasse"/> - <br/> -</xsl:if> -<xsl:if test="plz"> - <b>Postleitzahl: </b> - <xsl:value-of select="plz"/> - <br/> -</xsl:if> -<xsl:if test="telefon"> - <b>Telefon: </b> - <xsl:value-of select="telefon"/> - <br/> -</xsl:if> -<xsl:if test="fax"> - <b>Fax: </b> - <xsl:value-of select="fax"/> - <br/> -</xsl:if> -<xsl:if test="email"> - <b>E-mail: </b> - <xsl:value-of select="email"/> - <br/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <b><xsl:value-of select="@key"/>: </b> - <xsl:value-of select="."/> - <br/> - </xsl:for-each> -</xsl:if> - <br/> - <xsl:if test="seminare"> - <table width="100%" cellpadding="5" cellspacing="2"> - <tr> - <td> - <h2>Veranstaltungen</h2> - </td> - </tr> - <tr> - <td> - <br/> - </td> - </tr> - <tr> - <td width="20%" bgcolor="#006699"> - <b> - <font color="#FFFFFF">Lehrende</font> - </b> - </td> - <td width="35%" bgcolor="#006699"> - <b> - <font color="#FFFFFF">Veranstaltung</font> - </b> - </td> - <td width="20%" bgcolor="#006699"> - <b> - <font color="#FFFFFF">Status</font> - </b> - </td> - <td width="15%" bgcolor="#006699"> - <b> - <font color="#FFFFFF">Termin</font> - </b> - </td> - <td width="10%" bgcolor="#006699"> - <b> - <font color="#FFFFFF">Raum</font> - </b> - </td> - </tr> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <tr bgcolor="#0000BB"> - <td colspan="5"> - <h2> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h2> - </td> - </tr> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <tr bgcolor="#6600BB"> - <td colspan="5"> - <h2> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </h2> - </td> - </tr> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <xsl:if test="personen"> - <table width="100%" cellpadding="5" cellspacing="2"> - <tr colspan="3"> - <td> - <h2>MitarbeiterInnen</h2> - </td> - </tr> - <tr> - <td> - <br/> - </td> - </tr> - <tr> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Name</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">Telefon</font> - </b> - </td> - <td bgcolor="#006699"> - <b> - <font color="#FFFFFF">E-Mail</font> - </b> - </td> - </tr> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <tr bgcolor="#006699"> - <td colspan="3"> - <font color="#FFFFFF"> - <b> - <xsl:value-of select="@key"/> - </b> - </font> - </td> - </tr> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </table> - </xsl:if> - <br/> - <br/> - </xsl:for-each> - <font size="-1">Generiert von Stud.IP Version <xsl:value-of select="@version"/></font> - </xsl:for-each> - </body> - </html> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <tr> - <td bgcolor="#EEEEEE"> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> - <br/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - <br/> - </td> - </tr> - </xsl:for-each> -</xsl:template> - - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <tr border="0" align="left"> - <td bgcolor="#EEEEEE"> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </td> - <td bgcolor="#EEEEEE"> - <b> - <xsl:value-of select="titel"/> - </b> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="status"/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="termine/termin"/> - </td> - <td bgcolor="#EEEEEE"> - <xsl:value-of select="raum"/> - </td> - </tr> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> diff --git a/lib/export/oscar.php b/lib/export/oscar.php deleted file mode 100644 index ce0ab0eabc6fc7c7d8ff29b4eea473c02a1b16df..0000000000000000000000000000000000000000 --- a/lib/export/oscar.php +++ /dev/null @@ -1,40 +0,0 @@ -<? -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Tool to delete old files in the tmp-directory. -* -* This file checks the tmp-directory for old files an deletes them. -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module oscar -* @package Export -*/ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// oscar.inc.php -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -require_once ("export_tmp_gc.inc.php"); -export_tmp_gc(); -?> \ No newline at end of file diff --git a/lib/export/pdf-v-3.xsl b/lib/export/pdf-v-3.xsl deleted file mode 100644 index 43d04e1a580dd257be96e3cbd8715b91380ecaff..0000000000000000000000000000000000000000 --- a/lib/export/pdf-v-3.xsl +++ /dev/null @@ -1,422 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="xml"/> - <xsl:template match="/"> - <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <fo:layout-master-set> - <fo:simple-page-master master-name="cover" page-height="29.7cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1cm" margin-right="0.5cm"> - <fo:region-body margin-top="3cm"/> - </fo:simple-page-master> - <fo:simple-page-master master-name="leftPage" page-height="29.7cm" page-width="21cm" margin-left="0.5cm" margin-right="1.5cm" margin-top="0.5cm" margin-bottom="0.5cm"> - <fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/> - <fo:region-before extent="2cm"/> - <fo:region-after extent="2cm"/> - </fo:simple-page-master> - <fo:simple-page-master master-name="rightPage" page-height="29.7cm" page-width="21cm" margin-left="1.5cm" margin-right="0.5cm" margin-top="0.5cm" margin-bottom="0.5cm"> - <fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/> - <fo:region-before extent="2cm"/> - <fo:region-after extent="2cm"/> - </fo:simple-page-master> - <fo:page-sequence-master master-name="contents"> - <fo:repeatable-page-master-alternatives> - <fo:conditional-page-master-reference master-reference="leftPage" odd-or-even="even"/> - <fo:conditional-page-master-reference master-reference="rightPage" odd-or-even="odd"/> - </fo:repeatable-page-master-alternatives> - </fo:page-sequence-master> - </fo:layout-master-set> - <fo:page-sequence master-reference="cover"> - <fo:flow flow-name="xsl-region-body"> - <fo:block font-family="Helvetica" font-size="36pt" text-align="center"> -Vorlesungskommentar - </fo:block> - <xsl:for-each select="studip"> - <fo:block font-family="Helvetica" font-size="24pt" text-align="center" space-after="17cm"> - <xsl:value-of select="@range"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="20pt"> - <xsl:value-of select="@zeitraum"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="18pt"> - <xsl:value-of select="@uni"/> - </fo:block> - <fo:block text-align="right" font-family="Helvetica" font-size="10pt"> - Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </fo:block> - </xsl:for-each> - </fo:flow> - </fo:page-sequence> - <fo:page-sequence master-reference="contents" initial-page-number="2"> - <fo:static-content flow-name="xsl-region-before"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center" border-style="solid" border-color="black"> - Inhaltsverzeichnis - </fo:block> - </fo:static-content> - <fo:static-content flow-name="xsl-region-after"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center"> - Seite <fo:page-number/> - </fo:block> - </fo:static-content> - <fo:flow flow-name="xsl-region-body"> - <fo:block text-align="justify"> - <fo:block font-size="14pt"> - <fo:inline font-weight="bold">Inhaltsverzeichnis</fo:inline> - </fo:block> - <xsl:for-each select="studip/institut"> - <fo:block space-after="10pt"> - </fo:block> - <fo:block font-size="12pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="name"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <fo:block font-size="10pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <fo:block font-size="10pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:for-each select="seminar"> - <fo:block font-size="10pt" text-align-last="justify"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminar"> - <fo:block font-size="10pt"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare/seminar"> - <fo:block font-size="10pt"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </fo:block> - </fo:flow> - </fo:page-sequence> - <xsl:for-each select="studip/institut"> - <fo:page-sequence master-reference="contents"> - <fo:static-content flow-name="xsl-region-before"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center" border-style="solid" border-color="black"> - Vorlesungskommentar - </fo:block> - </fo:static-content> - <fo:static-content flow-name="xsl-region-after"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center"> - Seite <fo:page-number/> - </fo:block> - </fo:static-content> - <fo:flow flow-name="xsl-region-body"> - <fo:block text-align="left" font-size="12pt" id="{generate-id()}"> - <fo:block text-align="center" font-size="16pt" space-after="10pt"> - <fo:inline font-weight="bold"> - <xsl:value-of select="name"/> - </fo:inline> - </fo:block> -<xsl:if test="fakultaet"> - <fo:block> - <fo:inline font-weight="bold">Fakultät: </fo:inline> - <xsl:value-of select="fakultaet"/> - </fo:block> -</xsl:if> -<xsl:if test="homepage"> - <fo:block> - <fo:inline font-weight="bold">Homepage: </fo:inline> - <xsl:value-of select="homepage"/> - </fo:block> -</xsl:if> -<xsl:if test="strasse"> - <fo:block> - <fo:inline font-weight="bold">Strasse: </fo:inline> - <xsl:value-of select="strasse"/> - </fo:block> -</xsl:if> -<xsl:if test="plz"> - <fo:block> - <fo:inline font-weight="bold">Postleitzahl: </fo:inline> - <xsl:value-of select="plz"/> - </fo:block> -</xsl:if> -<xsl:if test="telefon"> - <fo:block> - <fo:inline font-weight="bold">Telefon: </fo:inline> - <xsl:value-of select="telefon"/> - </fo:block> -</xsl:if> -<xsl:if test="fax"> - <fo:block> - <fo:inline font-weight="bold">Fax: </fo:inline> - <xsl:value-of select="fax"/> - </fo:block> -</xsl:if> -<xsl:if test="email"> - <fo:block> - <fo:inline font-weight="bold">E-mail: </fo:inline> - <xsl:value-of select="email"/> - </fo:block> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> -</xsl:if> - <fo:block space-after="12pt"> - </fo:block> - <xsl:if test="seminare"> - <fo:block text-align="center" font-size="14pt" space-after="10pt"> - Veranstaltungen -</fo:block> -<fo:block> -<fo:table border-style="solid" border-color="black" table-layout="fixed"> - <fo:table-column column-number="1" column-width="5cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="2" column-width="3cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="3" column-width="2.5cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="4" column-width="4cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="5" column-width="4cm" border-after-style="solid" border-after-color="black"/> - <fo:table-header> - <fo:table-row> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Name</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Telefon</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Raum</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Sprechzeiten</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>E-Mail</fo:block> - </fo:table-cell> - </fo:table-row> - </fo:table-header> - <fo:table-body> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <fo:table-row> - <fo:table-cell> - <fo:block id="{generate-id()}"> -<fo:inline font-weight="bold"> -<xsl:value-of select="@key"/> -</fo:inline> - </fo:block> - </fo:table-cell> - </fo:table-row> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <fo:table-row> - <fo:table-cell> - <fo:block id="{generate-id()}"> -<fo:inline font-weight="bold"> -<xsl:value-of select="@key"/> -</fo:inline> - </fo:block> - </fo:table-cell> - </fo:table-row> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </fo:table-body> -</fo:table> -</fo:block> - </xsl:if> - </fo:block> - </fo:flow> - </fo:page-sequence> - </xsl:for-each> - </fo:root> - </xsl:template> - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <fo:block text-align="justify" font-size="14pt" border-style="solid" border-color="black" space-after="6pt" id="{generate-id()}"> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each>: <xsl:value-of select="titel"/> - </fo:block> - <xsl:if test="untertitel"> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Untertitel: </fo:inline> - <xsl:value-of select="untertitel"/> - </fo:block> - </xsl:if> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Lehrende: </fo:inline> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Termin: </fo:inline> - <xsl:value-of select="termine/termin"/> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Erster Termin: </fo:inline> - <xsl:value-of select="termine/erstertermin"/> - </fo:block> - <xsl:if test="termine/vorbesprechung"> - <fo:block> - <fo:inline font-weight="bold">Vorbesprechung: </fo:inline> - <xsl:value-of select="termine/vorbesprechung"/> - </fo:block> - </xsl:if> - <xsl:text> -</xsl:text> - <xsl:if test="status"> - <fo:block> - <fo:inline font-weight="bold">Status: </fo:inline> - <xsl:value-of select="status"/> - </fo:block> - </xsl:if> - <xsl:if test="beschreibung"> - <fo:block linefeed-treatment="preserve"> - <fo:inline font-weight="bold">Beschreibung: </fo:inline> - <xsl:value-of select="beschreibung"/> - </fo:block> - </xsl:if> - <xsl:if test="raum"> - <fo:block> - <fo:inline font-weight="bold">Raum: </fo:inline> - <xsl:value-of select="raum"/> - </fo:block> - </xsl:if> - <xsl:if test="sonstiges"> - <fo:block> - <fo:inline font-weight="bold">Sonstiges: </fo:inline> - <xsl:value-of select="sonstiges"/> - </fo:block> - </xsl:if> - <xsl:if test="art"> - <fo:block> - <fo:inline font-weight="bold">Art der Veranstaltung: </fo:inline> - <xsl:value-of select="art"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmer"> - <fo:block> - <fo:inline font-weight="bold">Teilnahme: </fo:inline> - <xsl:value-of select="teilnehmer"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/> Anzahl Teilnehmende: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <fo:block> - <fo:inline font-weight="bold">Voraussetzungen: </fo:inline> - <xsl:value-of select="voraussetzung"/> - </fo:block> - </xsl:if> - <xsl:if test="lernorga"> - <fo:block> - <fo:inline font-weight="bold">Lernorganisation: </fo:inline> - <xsl:value-of select="lernorga"/> - </fo:block> - </xsl:if> - <xsl:if test="schein"> - <fo:block> - <fo:inline font-weight="bold">Leistungsnachweis: </fo:inline> - <xsl:value-of select="schein"/> - </fo:block> - </xsl:if> - <xsl:if test="ects"> - <fo:block> - <fo:inline font-weight="bold">ECTS: </fo:inline> - <xsl:value-of select="ects"/> - </fo:block> - </xsl:if> - <xsl:if test="bereiche"> - <fo:block> - <fo:inline font-weight="bold">Bereich: </fo:inline> - </fo:block> - <xsl:for-each select="bereiche/bereich"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - <fo:block> - <fo:inline font-weight="bold">Module: </fo:inline> - </fo:block> - <xsl:for-each select="lvgruppen/lvgruppe"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <fo:block space-after="12pt"> -</fo:block> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/pdf-v-4.xsl b/lib/export/pdf-v-4.xsl deleted file mode 100644 index 10d776db1582141031e9b0306244ec771ae037fc..0000000000000000000000000000000000000000 --- a/lib/export/pdf-v-4.xsl +++ /dev/null @@ -1,401 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="xml"/> - <xsl:template match="/"> - <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <fo:layout-master-set> - <fo:simple-page-master master-name="cover" page-height="29.7cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1cm" margin-right="0.5cm"> - <fo:region-body margin-top="3cm"/> - </fo:simple-page-master> - <fo:simple-page-master master-name="leftPage" page-height="29.7cm" page-width="21cm" margin-left="0.5cm" margin-right="1.5cm" margin-top="0.5cm" margin-bottom="0.5cm"> - <fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/> - <fo:region-before extent="2cm"/> - <fo:region-after extent="2cm"/> - </fo:simple-page-master> - <fo:simple-page-master master-name="rightPage" page-height="29.7cm" page-width="21cm" margin-left="1.5cm" margin-right="0.5cm" margin-top="0.5cm" margin-bottom="0.5cm"> - <fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/> - <fo:region-before extent="2cm"/> - <fo:region-after extent="2cm"/> - </fo:simple-page-master> - <fo:page-sequence-master master-name="contents"> - <fo:repeatable-page-master-alternatives> - <fo:conditional-page-master-reference master-reference="leftPage" odd-or-even="even"/> - <fo:conditional-page-master-reference master-reference="rightPage" odd-or-even="odd"/> - </fo:repeatable-page-master-alternatives> - </fo:page-sequence-master> - </fo:layout-master-set> - <fo:page-sequence master-reference="cover"> - <fo:flow flow-name="xsl-region-body"> - <fo:block font-family="Helvetica" font-size="36pt" text-align="center"> - <xsl:if test="studip/institut/seminare"> -Vorlesungskommentar - </xsl:if> - <xsl:if test="studip/institut/personen"> -MitarbeiterInnenliste - </xsl:if> - </fo:block> - <xsl:for-each select="studip"> - <fo:block font-family="Helvetica" font-size="24pt" text-align="center" space-after="17cm"> - <xsl:value-of select="@range"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="20pt"> - <xsl:value-of select="@zeitraum"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="18pt"> - <xsl:value-of select="@uni"/> - </fo:block> - <fo:block text-align="right" font-family="Helvetica" font-size="10pt"> - Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </fo:block> - </xsl:for-each> - </fo:flow> - </fo:page-sequence> - <fo:page-sequence master-reference="contents" initial-page-number="2"> - <fo:static-content flow-name="xsl-region-before"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center" border-style="solid" border-color="black"> - Inhaltsverzeichnis - </fo:block> - </fo:static-content> - <fo:static-content flow-name="xsl-region-after"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center"> - Seite <fo:page-number/> - </fo:block> - </fo:static-content> - <fo:flow flow-name="xsl-region-body"> - <fo:block text-align="justify"> - <fo:block font-size="14pt"> - <fo:inline font-weight="bold">Inhaltsverzeichnis</fo:inline> - </fo:block> - <xsl:for-each select="studip/institut"> - <fo:block space-after="10pt"> - </fo:block> - <fo:block font-size="12pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="name"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <fo:block font-size="10pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <fo:block font-size="10pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:for-each select="seminar"> - <fo:block font-size="10pt" text-align-last="justify"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminar"> - <fo:block font-size="10pt"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare/seminar"> - <fo:block font-size="10pt"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </fo:block> - </fo:flow> - </fo:page-sequence> - <xsl:for-each select="studip/institut"> - <fo:page-sequence master-reference="contents"> - <fo:static-content flow-name="xsl-region-before"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center" border-style="solid" border-color="black"> - <xsl:if test="seminare"> - Vorlesungskommentar - </xsl:if> - </fo:block> - </fo:static-content> - <fo:static-content flow-name="xsl-region-after"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center"> - Seite <fo:page-number/> - </fo:block> - </fo:static-content> - <fo:flow flow-name="xsl-region-body"> - <fo:block text-align="left" font-size="12pt" id="{generate-id()}"> - <fo:block text-align="center" font-size="16pt" space-after="10pt"> - <fo:inline font-weight="bold"> - <xsl:value-of select="name"/> - </fo:inline> - </fo:block> -<xsl:if test="fakultaet"> - <fo:block> - <fo:inline font-weight="bold">Fakultät: </fo:inline> - <xsl:value-of select="fakultaet"/> - </fo:block> -</xsl:if> -<xsl:if test="homepage"> - <fo:block> - <fo:inline font-weight="bold">Homepage: </fo:inline> - <xsl:value-of select="homepage"/> - </fo:block> -</xsl:if> -<xsl:if test="strasse"> - <fo:block> - <fo:inline font-weight="bold">Strasse: </fo:inline> - <xsl:value-of select="strasse"/> - </fo:block> -</xsl:if> -<xsl:if test="plz"> - <fo:block> - <fo:inline font-weight="bold">Postleitzahl: </fo:inline> - <xsl:value-of select="plz"/> - </fo:block> -</xsl:if> -<xsl:if test="telefon"> - <fo:block> - <fo:inline font-weight="bold">Telefon: </fo:inline> - <xsl:value-of select="telefon"/> - </fo:block> -</xsl:if> -<xsl:if test="fax"> - <fo:block> - <fo:inline font-weight="bold">Fax: </fo:inline> - <xsl:value-of select="fax"/> - </fo:block> -</xsl:if> -<xsl:if test="email"> - <fo:block> - <fo:inline font-weight="bold">E-mail: </fo:inline> - <xsl:value-of select="email"/> - </fo:block> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> -</xsl:if> - <fo:block space-after="12pt"> - </fo:block> - <xsl:if test="seminare"> - <fo:block text-align="center" font-size="14pt" space-after="10pt"> - Veranstaltungen -</fo:block> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <fo:block text-align="justify" font-size="16pt" space-after="6pt" id="{generate-id()}"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <fo:block text-align="justify" font-size="14pt" space-after="6pt" id="{generate-id()}"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - </fo:inline> - <fo:block> - <xsl:text> - </xsl:text> - </fo:block> - </fo:block> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </fo:block> - </fo:flow> - </fo:page-sequence> - </xsl:for-each> - </fo:root> - </xsl:template> - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <fo:block text-align="justify" font-size="14pt" border-style="solid" border-color="black" space-after="6pt" id="{generate-id()}"> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each>: <xsl:value-of select="titel"/> - </fo:block> - <xsl:if test="untertitel"> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Untertitel: </fo:inline> - <xsl:value-of select="untertitel"/> - </fo:block> - </xsl:if> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Lehrende: </fo:inline> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Termin: </fo:inline> - <xsl:value-of select="termine/termin"/> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Erster Termin: </fo:inline> - <xsl:value-of select="termine/erstertermin"/> - </fo:block> - <xsl:if test="termine/vorbesprechung"> - <fo:block> - <fo:inline font-weight="bold">Vorbesprechung: </fo:inline> - <xsl:value-of select="termine/vorbesprechung"/> - </fo:block> - </xsl:if> - <xsl:text> -</xsl:text> - <xsl:if test="status"> - <fo:block> - <fo:inline font-weight="bold">Status: </fo:inline> - <xsl:value-of select="status"/> - </fo:block> - </xsl:if> - <xsl:if test="veranstaltungsnummer"> - <fo:block> - <fo:inline font-weight="bold">Veranstaltungsnummer: </fo:inline> - <xsl:value-of select="veranstaltungsnummer"/> - </fo:block> - </xsl:if> - <xsl:if test="beschreibung"> - <fo:block linefeed-treatment="preserve"> - <fo:inline font-weight="bold">Beschreibung: </fo:inline> - <xsl:value-of select="beschreibung"/> - </fo:block> - </xsl:if> - <xsl:if test="raum"> - <fo:block> - <fo:inline font-weight="bold">Raum: </fo:inline> - <xsl:value-of select="raum"/> - </fo:block> - </xsl:if> - <xsl:if test="sonstiges"> - <fo:block> - <fo:inline font-weight="bold">Sonstiges: </fo:inline> - <xsl:value-of select="sonstiges"/> - </fo:block> - </xsl:if> - <xsl:if test="art"> - <fo:block> - <fo:inline font-weight="bold">Art der Veranstaltung: </fo:inline> - <xsl:value-of select="art"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmer"> - <fo:block> - <fo:inline font-weight="bold">Teilnahme: </fo:inline> - <xsl:value-of select="teilnehmer"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/> Anzahl Teilnehmende: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <fo:block> - <fo:inline font-weight="bold">Voraussetzungen: </fo:inline> - <xsl:value-of select="voraussetzung"/> - </fo:block> - </xsl:if> - <xsl:if test="lernorga"> - <fo:block> - <fo:inline font-weight="bold">Lernorganisation: </fo:inline> - <xsl:value-of select="lernorga"/> - </fo:block> - </xsl:if> - <xsl:if test="schein"> - <fo:block> - <fo:inline font-weight="bold">Leistungsnachweis: </fo:inline> - <xsl:value-of select="schein"/> - </fo:block> - </xsl:if> - <xsl:if test="ects"> - <fo:block> - <fo:inline font-weight="bold">ECTS: </fo:inline> - <xsl:value-of select="ects"/> - </fo:block> - </xsl:if> - <xsl:if test="bereiche"> - <fo:block> - <fo:inline font-weight="bold">Bereich: </fo:inline> - </fo:block> - <xsl:for-each select="bereiche/bereich"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - <fo:block> - <fo:inline font-weight="bold">Module: </fo:inline> - </fo:block> - <xsl:for-each select="lvgruppen/lvgruppe"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <fo:block space-after="12pt"> -</fo:block> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/pdf-vp-1.xsl b/lib/export/pdf-vp-1.xsl deleted file mode 100644 index 97f4c8cae14a3d2576464a12f65dccf82edb8a02..0000000000000000000000000000000000000000 --- a/lib/export/pdf-vp-1.xsl +++ /dev/null @@ -1,406 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="xml"/> - <xsl:template match="/"> - <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <fo:layout-master-set> - <fo:simple-page-master master-name="cover" page-height="29.7cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1cm" margin-right="0.5cm"> - <fo:region-body margin-top="3cm"/> - </fo:simple-page-master> - <fo:simple-page-master master-name="contents" page-height="29.7cm" page-width="21cm" margin-left="2cm" margin-right="2cm" margin-top="0.5cm" margin-bottom="0.5cm"> - <fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/> - <fo:region-before extent="2cm"/> - <fo:region-after extent="2cm"/> - </fo:simple-page-master> - </fo:layout-master-set> - <fo:page-sequence master-reference="cover"> - <fo:flow flow-name="xsl-region-body"> - <fo:block font-family="Helvetica" font-size="36pt" text-align="center"> - <xsl:if test="studip/institut/seminare"> -Veranstaltungen - </xsl:if> - <xsl:if test="studip/institut/personen"> -MitarbeiterInnen - </xsl:if> - </fo:block> - <xsl:for-each select="studip"> - <fo:block font-family="Helvetica" font-size="24pt" text-align="center" space-after="17cm"> - <xsl:value-of select="@range"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="20pt"> - <xsl:value-of select="@zeitraum"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="18pt"> - <xsl:value-of select="@uni"/> - </fo:block> - <fo:block text-align="right" font-family="Helvetica" font-size="10pt"> - Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </fo:block> - </xsl:for-each> - </fo:flow> - </fo:page-sequence> - - <xsl:for-each select="studip/institut"> - <fo:page-sequence master-reference="contents"> - <fo:static-content flow-name="xsl-region-before"> - <fo:block/> - </fo:static-content> - <fo:static-content flow-name="xsl-region-after"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center"> - Seite <fo:page-number/> - </fo:block> - </fo:static-content> - <fo:flow flow-name="xsl-region-body"> - <fo:block text-align="left" font-size="12pt" id="{generate-id()}"> - <fo:block text-align="center" font-size="16pt" space-after="10pt"> - <fo:inline font-weight="bold"> - <xsl:value-of select="name"/> - </fo:inline> - </fo:block> -<xsl:if test="fakultaet"> - <fo:block> - <fo:inline font-weight="bold">Fakultät: </fo:inline> - <xsl:value-of select="fakultaet"/> - </fo:block> -</xsl:if> -<xsl:if test="homepage"> - <fo:block> - <fo:inline font-weight="bold">Homepage: </fo:inline> - <xsl:value-of select="homepage"/> - </fo:block> -</xsl:if> -<xsl:if test="strasse"> - <fo:block> - <fo:inline font-weight="bold">Strasse: </fo:inline> - <xsl:value-of select="strasse"/> - </fo:block> -</xsl:if> -<xsl:if test="plz"> - <fo:block> - <fo:inline font-weight="bold">Postleitzahl: </fo:inline> - <xsl:value-of select="plz"/> - </fo:block> -</xsl:if> -<xsl:if test="telefon"> - <fo:block> - <fo:inline font-weight="bold">Telefon: </fo:inline> - <xsl:value-of select="telefon"/> - </fo:block> -</xsl:if> -<xsl:if test="fax"> - <fo:block> - <fo:inline font-weight="bold">Fax: </fo:inline> - <xsl:value-of select="fax"/> - </fo:block> -</xsl:if> -<xsl:if test="email"> - <fo:block> - <fo:inline font-weight="bold">E-mail: </fo:inline> - <xsl:value-of select="email"/> - </fo:block> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> -</xsl:if> - <fo:block space-after="12pt"> - </fo:block> - <xsl:if test="seminare"> - <fo:block text-align="center" font-size="14pt" space-after="10pt"> - Veranstaltungen -</fo:block> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <fo:block text-align="justify" font-size="16pt" space-after="6pt" id="{generate-id()}"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <fo:block text-align="justify" font-size="14pt" space-after="6pt" id="{generate-id()}"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - </fo:inline> - <fo:block> - <xsl:text> - </xsl:text> - </fo:block> - </fo:block> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:if test="personen"> - <fo:block text-align="center" font-size="14pt" space-after="10pt"> - MitarbeiterInnen -</fo:block> -<fo:block> -<fo:table border-style="solid" border-color="black" table-layout="fixed"> - <fo:table-column column-number="1" column-width="5cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="2" column-width="3cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="3" column-width="2.5cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="4" column-width="4cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="5" column-width="4cm" border-after-style="solid" border-after-color="black"/> - <fo:table-header> - <fo:table-row> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Name</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Telefon</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Raum</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Sprechzeiten</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>E-Mail</fo:block> - </fo:table-cell> - </fo:table-row> - </fo:table-header> - <fo:table-body> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <fo:table-row> - <fo:table-cell> - <fo:block> -<fo:inline font-weight="bold"> -<xsl:value-of select="@key"/> -</fo:inline> - </fo:block> - </fo:table-cell> - </fo:table-row> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </fo:table-body> -</fo:table> -</fo:block> - </xsl:if> - </fo:block> - </fo:flow> - </fo:page-sequence> - </xsl:for-each> - </fo:root> - </xsl:template> - - <xsl:template name="showperson"> - <xsl:for-each select="person"> - <fo:table-row> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - </fo:block> - </fo:table-cell> - </fo:table-row> - </xsl:for-each> - </xsl:template> - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <fo:block text-align="justify" font-size="14pt" border-style="solid" border-color="black" space-after="6pt" id="{generate-id()}"> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each>: <xsl:value-of select="titel"/> - </fo:block> - <xsl:if test="untertitel"> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Untertitel: </fo:inline> - <xsl:value-of select="untertitel"/> - </fo:block> - </xsl:if> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Lehrende: </fo:inline> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Termin: </fo:inline> - <xsl:value-of select="termine/termin"/> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Erster Termin: </fo:inline> - <xsl:value-of select="termine/erstertermin"/> - </fo:block> - <xsl:if test="termine/vorbesprechung"> - <fo:block> - <fo:inline font-weight="bold">Vorbesprechung: </fo:inline> - <xsl:value-of select="termine/vorbesprechung"/> - </fo:block> - </xsl:if> - <xsl:text> -</xsl:text> - <xsl:if test="status"> - <fo:block> - <fo:inline font-weight="bold">Status: </fo:inline> - <xsl:value-of select="status"/> - </fo:block> - </xsl:if> - <xsl:if test="beschreibung"> - <fo:block linefeed-treatment="preserve"> - <fo:inline font-weight="bold">Beschreibung: </fo:inline> - <xsl:value-of select="beschreibung"/> - </fo:block> - </xsl:if> - <xsl:if test="raum"> - <fo:block> - <fo:inline font-weight="bold">Raum: </fo:inline> - <xsl:value-of select="raum"/> - </fo:block> - </xsl:if> - <xsl:if test="sonstiges"> - <fo:block> - <fo:inline font-weight="bold">Sonstiges: </fo:inline> - <xsl:value-of select="sonstiges"/> - </fo:block> - </xsl:if> - <xsl:if test="art"> - <fo:block> - <fo:inline font-weight="bold">Art der Veranstaltung: </fo:inline> - <xsl:value-of select="art"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmer"> - <fo:block> - <fo:inline font-weight="bold">Teilnahme: </fo:inline> - <xsl:value-of select="teilnehmer"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/> Anzahl Teilnehmende: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <fo:block> - <fo:inline font-weight="bold">Voraussetzungen: </fo:inline> - <xsl:value-of select="voraussetzung"/> - </fo:block> - </xsl:if> - <xsl:if test="lernorga"> - <fo:block> - <fo:inline font-weight="bold">Lernorganisation: </fo:inline> - <xsl:value-of select="lernorga"/> - </fo:block> - </xsl:if> - <xsl:if test="schein"> - <fo:block> - <fo:inline font-weight="bold">Leistungsnachweis: </fo:inline> - <xsl:value-of select="schein"/> - </fo:block> - </xsl:if> - <xsl:if test="ects"> - <fo:block> - <fo:inline font-weight="bold">ECTS: </fo:inline> - <xsl:value-of select="ects"/> - </fo:block> - </xsl:if> - <xsl:if test="bereiche"> - <fo:block> - <fo:inline font-weight="bold">Bereich: </fo:inline> - </fo:block> - <xsl:for-each select="bereiche/bereich"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - <fo:block> - <fo:inline font-weight="bold">Module: </fo:inline> - </fo:block> - <xsl:for-each select="lvgruppen/lvgruppe"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <fo:block space-after="12pt"> -</fo:block> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/pdf-vp-2.xsl b/lib/export/pdf-vp-2.xsl deleted file mode 100644 index 06cd5b24c5998e68c52e1bdd08d59a92996d6f40..0000000000000000000000000000000000000000 --- a/lib/export/pdf-vp-2.xsl +++ /dev/null @@ -1,504 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="xml"/> - <xsl:template match="/"> - <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <fo:layout-master-set> - <fo:simple-page-master master-name="cover" page-height="29.7cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1cm" margin-right="0.5cm"> - <fo:region-body margin-top="3cm"/> - </fo:simple-page-master> - <fo:simple-page-master master-name="leftPage" page-height="29.7cm" page-width="21cm" margin-left="0.5cm" margin-right="1.5cm" margin-top="0.5cm" margin-bottom="0.5cm"> - <fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/> - <fo:region-before extent="2cm"/> - <fo:region-after extent="2cm"/> - </fo:simple-page-master> - <fo:simple-page-master master-name="rightPage" page-height="29.7cm" page-width="21cm" margin-left="1.5cm" margin-right="0.5cm" margin-top="0.5cm" margin-bottom="0.5cm"> - <fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/> - <fo:region-before extent="2cm"/> - <fo:region-after extent="2cm"/> - </fo:simple-page-master> - <fo:page-sequence-master master-name="contents"> - <fo:repeatable-page-master-alternatives> - <fo:conditional-page-master-reference master-reference="leftPage" odd-or-even="even"/> - <fo:conditional-page-master-reference master-reference="rightPage" odd-or-even="odd"/> - </fo:repeatable-page-master-alternatives> - </fo:page-sequence-master> - </fo:layout-master-set> - <fo:page-sequence master-reference="cover"> - <fo:flow flow-name="xsl-region-body"> - <fo:block font-family="Helvetica" font-size="36pt" text-align="center"> - <xsl:if test="studip/institut/seminare"> -Vorlesungskommentar - </xsl:if> - <xsl:if test="studip/institut/personen"> -MitarbeiterInnenliste - </xsl:if> - </fo:block> - <xsl:for-each select="studip"> - <fo:block font-family="Helvetica" font-size="24pt" text-align="center" space-after="17cm"> - <xsl:value-of select="@range"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="20pt"> - <xsl:value-of select="@zeitraum"/> - </fo:block> - <fo:block text-align="center" font-family="Helvetica" font-size="18pt"> - <xsl:value-of select="@uni"/> - </fo:block> - <fo:block text-align="right" font-family="Helvetica" font-size="10pt"> - Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </fo:block> - </xsl:for-each> - </fo:flow> - </fo:page-sequence> - <fo:page-sequence master-reference="contents" initial-page-number="2"> - <fo:static-content flow-name="xsl-region-before"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center" border-style="solid" border-color="black"> - Inhaltsverzeichnis - </fo:block> - </fo:static-content> - <fo:static-content flow-name="xsl-region-after"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center"> - Seite <fo:page-number/> - </fo:block> - </fo:static-content> - <fo:flow flow-name="xsl-region-body"> - <fo:block text-align="justify"> - <fo:block font-size="14pt"> - <fo:inline font-weight="bold">Inhaltsverzeichnis</fo:inline> - </fo:block> - <xsl:for-each select="studip/institut"> - <fo:block space-after="10pt"> - </fo:block> - <fo:block font-size="12pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="name"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <fo:block font-size="10pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <fo:block font-size="10pt" text-align-last="justify"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:inline> - </fo:block> - <xsl:for-each select="seminar"> - <fo:block font-size="10pt" text-align-last="justify"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminar"> - <fo:block font-size="10pt"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare/seminar"> - <fo:block font-size="10pt"> - <xsl:value-of select="titel"/> - <fo:leader leader-pattern="space"/> - <fo:page-number-citation ref-id="{generate-id()}"/> - </fo:block> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </fo:block> - </fo:flow> - </fo:page-sequence> - <xsl:for-each select="studip/institut"> - <fo:page-sequence master-reference="contents"> - <fo:static-content flow-name="xsl-region-before"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center" border-style="solid" border-color="black"> - <xsl:if test="seminare"> - Vorlesungskommentar - </xsl:if> - <xsl:if test="personen"> - MitarbeiterInnenliste - </xsl:if> - </fo:block> - </fo:static-content> - <fo:static-content flow-name="xsl-region-after"> - <fo:block font-family="Helvetica" font-size="10pt" text-align="center"> - Seite <fo:page-number/> - </fo:block> - </fo:static-content> - <fo:flow flow-name="xsl-region-body"> - <fo:block text-align="left" font-size="12pt" id="{generate-id()}"> - <fo:block text-align="center" font-size="16pt" space-after="10pt"> - <fo:inline font-weight="bold"> - <xsl:value-of select="name"/> - </fo:inline> - </fo:block> -<xsl:if test="fakultaet"> - <fo:block> - <fo:inline font-weight="bold">Fakultät: </fo:inline> - <xsl:value-of select="fakultaet"/> - </fo:block> -</xsl:if> -<xsl:if test="homepage"> - <fo:block> - <fo:inline font-weight="bold">Homepage: </fo:inline> - <xsl:value-of select="homepage"/> - </fo:block> -</xsl:if> -<xsl:if test="strasse"> - <fo:block> - <fo:inline font-weight="bold">Strasse: </fo:inline> - <xsl:value-of select="strasse"/> - </fo:block> -</xsl:if> -<xsl:if test="plz"> - <fo:block> - <fo:inline font-weight="bold">Postleitzahl: </fo:inline> - <xsl:value-of select="plz"/> - </fo:block> -</xsl:if> -<xsl:if test="telefon"> - <fo:block> - <fo:inline font-weight="bold">Telefon: </fo:inline> - <xsl:value-of select="telefon"/> - </fo:block> -</xsl:if> -<xsl:if test="fax"> - <fo:block> - <fo:inline font-weight="bold">Fax: </fo:inline> - <xsl:value-of select="fax"/> - </fo:block> -</xsl:if> -<xsl:if test="email"> - <fo:block> - <fo:inline font-weight="bold">E-mail: </fo:inline> - <xsl:value-of select="email"/> - </fo:block> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> -</xsl:if> - <fo:block space-after="12pt"> - </fo:block> - <xsl:if test="seminare"> - <fo:block text-align="center" font-size="14pt" space-after="10pt"> - Veranstaltungen -</fo:block> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <fo:block text-align="justify" font-size="16pt" space-after="6pt" id="{generate-id()}"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - </fo:inline> - </fo:block> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <fo:block text-align="justify" font-size="14pt" space-after="6pt" id="{generate-id()}"> - <fo:inline font-weight="bold"> - <xsl:value-of select="@key"/> - </fo:inline> - <fo:block> - <xsl:text> - </xsl:text> - </fo:block> - </fo:block> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:if test="personen"> - <fo:block text-align="center" font-size="14pt" space-after="10pt"> - MitarbeiterInnen -</fo:block> -<fo:block> -<fo:table border-style="solid" border-color="black" table-layout="fixed"> - <fo:table-column column-number="1" column-width="5cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="2" column-width="3cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="3" column-width="2.5cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="4" column-width="4cm" border-after-style="solid" border-after-color="black"/> - <fo:table-column column-number="5" column-width="4cm" border-after-style="solid" border-after-color="black"/> - <fo:table-header> - <fo:table-row> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Name</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Telefon</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Raum</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>Sprechzeiten</fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block>E-Mail</fo:block> - </fo:table-cell> - </fo:table-row> - </fo:table-header> - <fo:table-body> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <fo:table-row> - <fo:table-cell> - <fo:block> -<fo:inline font-weight="bold"> -<xsl:value-of select="@key"/> -</fo:inline> - </fo:block> - </fo:table-cell> - </fo:table-row> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </fo:table-body> -</fo:table> -</fo:block> - </xsl:if> - </fo:block> - </fo:flow> - </fo:page-sequence> - </xsl:for-each> - </fo:root> - </xsl:template> - - <xsl:template name="showperson"> - <xsl:for-each select="person"> - <fo:table-row> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> - </fo:block> - </fo:table-cell> - <fo:table-cell border-style="solid" border-color="black"> - <fo:block hyphenate="true"> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> - </fo:block> - </fo:table-cell> - </fo:table-row> - </xsl:for-each> - </xsl:template> - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <fo:block text-align="justify" font-size="14pt" border-style="solid" border-color="black" space-after="6pt" id="{generate-id()}"> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each>: <xsl:value-of select="titel"/> - </fo:block> - <xsl:if test="untertitel"> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Untertitel: </fo:inline> - <xsl:value-of select="untertitel"/> - </fo:block> - </xsl:if> - <fo:block text-align="justify" font-size="12pt"> - <fo:inline font-weight="bold">Lehrende: </fo:inline> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Termin: </fo:inline> - <xsl:value-of select="termine/termin"/> - </fo:block> - <fo:block> - <fo:inline font-weight="bold">Erster Termin: </fo:inline> - <xsl:value-of select="termine/erstertermin"/> - </fo:block> - <xsl:if test="termine/vorbesprechung"> - <fo:block> - <fo:inline font-weight="bold">Vorbesprechung: </fo:inline> - <xsl:value-of select="termine/vorbesprechung"/> - </fo:block> - </xsl:if> - <xsl:text> -</xsl:text> - <xsl:if test="status"> - <fo:block> - <fo:inline font-weight="bold">Status: </fo:inline> - <xsl:value-of select="status"/> - </fo:block> - </xsl:if> - <xsl:if test="beschreibung"> - <fo:block linefeed-treatment="preserve"> - <fo:inline font-weight="bold">Beschreibung: </fo:inline> - <xsl:value-of select="beschreibung"/> - </fo:block> - </xsl:if> - <xsl:if test="raum"> - <fo:block> - <fo:inline font-weight="bold">Raum: </fo:inline> - <xsl:value-of select="raum"/> - </fo:block> - </xsl:if> - <xsl:if test="sonstiges"> - <fo:block> - <fo:inline font-weight="bold">Sonstiges: </fo:inline> - <xsl:value-of select="sonstiges"/> - </fo:block> - </xsl:if> - <xsl:if test="art"> - <fo:block> - <fo:inline font-weight="bold">Art der Veranstaltung: </fo:inline> - <xsl:value-of select="art"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmer"> - <fo:block> - <fo:inline font-weight="bold">Teilnahme: </fo:inline> - <xsl:value-of select="teilnehmer"/> - </fo:block> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/> Anzahl Teilnehmende: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <fo:block> - <fo:inline font-weight="bold">Voraussetzungen: </fo:inline> - <xsl:value-of select="voraussetzung"/> - </fo:block> - </xsl:if> - <xsl:if test="lernorga"> - <fo:block> - <fo:inline font-weight="bold">Lernorganisation: </fo:inline> - <xsl:value-of select="lernorga"/> - </fo:block> - </xsl:if> - <xsl:if test="schein"> - <fo:block> - <fo:inline font-weight="bold">Leistungsnachweis: </fo:inline> - <xsl:value-of select="schein"/> - </fo:block> - </xsl:if> - <xsl:if test="ects"> - <fo:block> - <fo:inline font-weight="bold">ECTS: </fo:inline> - <xsl:value-of select="ects"/> - </fo:block> - </xsl:if> - <xsl:if test="bereiche"> - <fo:block> - <fo:inline font-weight="bold">Bereich: </fo:inline> - </fo:block> - <xsl:for-each select="bereiche/bereich"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - <fo:block> - <fo:inline font-weight="bold">Module: </fo:inline> - </fo:block> - <xsl:for-each select="lvgruppen/lvgruppe"> - <fo:block> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <fo:block> - <fo:inline font-weight="bold"><xsl:value-of select="@key"/>: </fo:inline> - <xsl:value-of select="."/> - </fo:block> - </xsl:for-each> - </xsl:if> - <fo:block space-after="12pt"> -</fo:block> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/rtf-t-1.xsl b/lib/export/rtf-t-1.xsl deleted file mode 100644 index b91e35b418b2207446cf8cd9f106bfacfb56d9a7..0000000000000000000000000000000000000000 --- a/lib/export/rtf-t-1.xsl +++ /dev/null @@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> -<xsl:text>{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} -\viewkind4\uc1\pard</xsl:text> - - <xsl:for-each select="studip"> - <xsl:text>\par\fs36 Veranstaltung: </xsl:text><xsl:value-of select="@range"/> - <xsl:for-each select="institut"><xsl:text> -\par</xsl:text> - <xsl:if test="personen"> - <xsl:text> -\par\fs28 Teilnehmendenliste -\par -\par\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx2233\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx4536\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx5839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx6839\pard \nowidctlpar\widctlpar\intbl\adjustright {Name\cell Telefon\cell E-Mail\cell Bemerkung\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <xsl:text> -\trowd \trgaph70\trleft-70\trkeep\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx6839\pard \nowidctlpar\widctlpar\intbl\adjustright {\b\fs24 -</xsl:text> - <xsl:value-of select="@key"/> - <xsl:text>\b0\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }</xsl:text> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:text>\par</xsl:text> - <xsl:if test="studiengaenge/studiengang"> - <xsl:text>\fs28\b Studiengänge:\b0</xsl:text> - <xsl:for-each select="studiengaenge/studiengang"> - <xsl:text>\par\fs24 </xsl:text><xsl:value-of select="name"/><xsl:text>: </xsl:text><xsl:value-of select="anzahl"/> - </xsl:for-each> - <xsl:text>\par</xsl:text> - </xsl:if> - </xsl:for-each> -\par\qr\fs16 Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - <xsl:text> }</xsl:text> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text> -\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt -\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2233\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx4536\clvertalt\clbrdrt -\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx6839\pard\plain \nowidctlpar\widctlpar\intbl\adjustright \lang1031\cgrid {\fs24</xsl:text> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="nachname"/> - <xsl:text>, </xsl:text> - <xsl:value-of select="vorname"/> - <xsl:if test="titel2"> - <xsl:text> </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="privatnummer"> - <xsl:value-of select="privatnummer"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="bemerkung"> - <xsl:value-of select="bemerkung"/> - </xsl:if> -<xsl:text>\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> diff --git a/lib/export/rtf-t-2.xsl b/lib/export/rtf-t-2.xsl deleted file mode 100644 index 08c24de415edb8dec80b735d599e2b59e70835c2..0000000000000000000000000000000000000000 --- a/lib/export/rtf-t-2.xsl +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> -<xsl:text>{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} -\viewkind4\uc1\pard</xsl:text> - - <xsl:for-each select="studip"> - <xsl:text>\par\fs36 Veranstaltung: </xsl:text><xsl:value-of select="@range"/> - <xsl:for-each select="institut"><xsl:text> -\par</xsl:text> - <xsl:if test="personen"> - <xsl:text> -\par\fs28 Gruppen / Funktionen -\par -\par\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx3000\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx6070\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx9140\pard \nowidctlpar\widctlpar\intbl\adjustright {Name\cell Telefon\cell E-Mail\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <xsl:text> -\trowd \trgaph70\trleft-70\trkeep\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt -\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9142\pard \nowidctlpar\widctlpar\intbl\adjustright {\b\fs24 -</xsl:text> - <xsl:value-of select="@key"/> - <xsl:text>\b0\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }</xsl:text> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </xsl:for-each> -\par\qr\fs16 Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - <xsl:text> }</xsl:text> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text> -\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb -\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3000\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl -\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx6070\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9140\pard \nowidctlpar\widctlpar\intbl\adjustright {\fs24</xsl:text> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="nachname"/> - <xsl:text>, </xsl:text> - <xsl:value-of select="vorname"/> - <xsl:if test="titel2"> - <xsl:text> </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="privatnummer"> - <xsl:value-of select="privatnummer"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> -<xsl:text>\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> \ No newline at end of file diff --git a/lib/export/rtf-t-3.xsl b/lib/export/rtf-t-3.xsl deleted file mode 100644 index f9af9cf8ed12fe33e3e74f9896db53d21fd2225b..0000000000000000000000000000000000000000 --- a/lib/export/rtf-t-3.xsl +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> -<xsl:text>{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} -\viewkind4\uc1\pard</xsl:text> - - <xsl:for-each select="studip"> - <xsl:text>\par\fs36 Veranstaltung: </xsl:text><xsl:value-of select="@range"/> - <xsl:for-each select="institut"><xsl:text> -\par</xsl:text> - <xsl:if test="personen"> - <xsl:text> -\par\fs28 Anmeldeliste -\par -\par\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx2233\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx4536\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr -\brdrs\brdrw10 \cltxlrtb \cellx5839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx6839\pard \nowidctlpar\widctlpar\intbl\adjustright {Name\cell Telefon\cell E-Mail\cell Bemerkung\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:text>\par</xsl:text> - <xsl:if test="studiengaenge/studiengang"> - <xsl:text>\fs28\b Studiengänge:\b0</xsl:text> - <xsl:for-each select="studiengaenge/studiengang"> - <xsl:text>\par\fs24</xsl:text><xsl:value-of select="name"/><xsl:text>: </xsl:text><xsl:value-of select="anzahl"/> - </xsl:for-each> - <xsl:text>\par</xsl:text> - </xsl:if> - </xsl:for-each> -\par\qr\fs16 Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - <xsl:text> }</xsl:text> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text> -\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt -\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2233\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx4536\clvertalt\clbrdrt -\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx6839\pard\plain \nowidctlpar\widctlpar\intbl\adjustright \lang1031\cgrid {\fs24</xsl:text> - <xsl:if test="titel"> - <xsl:value-of select="titel"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="nachname"/> - <xsl:text>, </xsl:text> - <xsl:value-of select="vorname"/> - <xsl:if test="titel2"> - <xsl:text> </xsl:text> - <xsl:value-of select="titel2"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="privatnummer"> - <xsl:value-of select="privatnummer"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="bemerkung"> - <xsl:value-of select="bemerkung"/> - </xsl:if> -<xsl:text>\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> diff --git a/lib/export/rtf-v-4.xsl b/lib/export/rtf-v-4.xsl deleted file mode 100644 index bf1d1a75698dca0d36be9571e7a77955487214ef..0000000000000000000000000000000000000000 --- a/lib/export/rtf-v-4.xsl +++ /dev/null @@ -1,231 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str="http://exslt.org/strings"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:for-each select="studip"> - <xsl:text>{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} -\viewkind4\uc1\pard\par\qc\fs56 </xsl:text><xsl:value-of select="@range"/> -<xsl:text>\par\fs36 </xsl:text><xsl:value-of select="@uni"/> -<xsl:text>\par\pard\fs44 -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par\qc\fs96 </xsl:text> - <xsl:if test="institut/seminare"> - <xsl:text>Vorlesungskommentar</xsl:text> - </xsl:if> -<xsl:text>\par\fs56 </xsl:text><xsl:value-of select="@zeitraum"/> -\par -\par\qr\fs24 Generiert von Stud.IP Version <xsl:value-of select="@version"/> -<xsl:text>\fs24\par\pard\page</xsl:text> - <xsl:for-each select="institut"> - <xsl:text> -\fs36 </xsl:text><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> -<xsl:if test="fakultaet"> - <xsl:text> -\par\par\fs24\b Fakultät: \b0 </xsl:text> - <xsl:value-of select="fakultaet"/> -</xsl:if> -<xsl:if test="homepage"> - <xsl:text> -\par\b Homepage: \b0 </xsl:text> - <xsl:value-of select="homepage"/> -</xsl:if> -<xsl:if test="strasse"> - <xsl:text> -\par\b Strasse: \b0 </xsl:text> - <xsl:value-of select="strasse"/> -</xsl:if> -<xsl:if test="plz"> - <xsl:text> -\par\b Postleitzahl: \b0 </xsl:text> - <xsl:value-of select="plz"/> -</xsl:if> -<xsl:if test="telefon"> - <xsl:text> -\par\b Telefon: \b0 </xsl:text> - <xsl:value-of select="telefon"/> -</xsl:if> -<xsl:if test="fax"> - <xsl:text> -\par\b Fax: \b0 </xsl:text> - <xsl:value-of select="fax"/> -</xsl:if> -<xsl:if test="email"> - <xsl:text> -\par\b E-mail: \b0 </xsl:text> - <xsl:value-of select="email"/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text>: \b0 </xsl:text> - <xsl:value-of select="."/> - </xsl:for-each> -</xsl:if> - <xsl:if test="seminare"> - <xsl:text> -\page\fs36 Veranstaltungen\fs24\par</xsl:text> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <xsl:text> -\par\fs32\b </xsl:text> - <xsl:value-of select="@key"/><xsl:text>\b0\fs24 </xsl:text> - - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <xsl:text> -\par\fs28\b </xsl:text> - <xsl:value-of select="@key"/><xsl:text>\b0\fs24 </xsl:text> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:text> -\page</xsl:text> - </xsl:for-each> - </xsl:for-each> - <xsl:text> }</xsl:text> - </xsl:template> - - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <xsl:text> -\par\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs26\b\lang1031\cgrid { </xsl:text> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:value-of select="titel"/> - <xsl:text>\b0\par }\pard</xsl:text> - <xsl:if test="untertitel"> - <xsl:text> -\b Untertitel: \b0 </xsl:text> - <xsl:value-of select="untertitel"/> - <xsl:text>\par </xsl:text> - </xsl:if> - <xsl:text> -\b Lehrende: \b0 </xsl:text><xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:text> -\par\b Termin: \b0 </xsl:text><xsl:value-of select="termine/termin"/> - <xsl:text> -\par\b Erster Termin: \b0 </xsl:text><xsl:value-of select="termine/erstertermin"/> - <xsl:if test="termine/vorbesprechung"> - <xsl:text> -\par\b Vorbesprechung: \b0 </xsl:text><xsl:value-of select="termine/vorbesprechung"/> - </xsl:if> - <xsl:if test="status"> - <xsl:text> -\par\b Status: \b0 </xsl:text><xsl:value-of select="status"/> - </xsl:if> - <xsl:if test="veranstaltungsnummer"> - <xsl:text> -\par\b Veranstaltungsnummer: \b0 </xsl:text><xsl:value-of select="veranstaltungsnummer"/> - </xsl:if> - <xsl:if test="beschreibung"> - <xsl:text> -\par\b Beschreibung: \b0 </xsl:text><xsl:value-of select="str:replace(beschreibung, ' ', '\line ')"/> - </xsl:if> - <xsl:if test="raum"> - <xsl:text> -\par\b Raum: \b0 </xsl:text><xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sonstiges"> - <xsl:text> -\par\b Sonstiges: \b0 </xsl:text><xsl:value-of select="sonstiges"/> - </xsl:if> - <xsl:if test="art"> - <xsl:text> -\par\b Art der Veranstaltung: \b0 </xsl:text><xsl:value-of select="art"/> - </xsl:if> - <xsl:if test="teilnehmer"> - <xsl:text> -\par\b Teilnahme: \b0 </xsl:text><xsl:value-of select="teilnehmer"/> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text> Anzahl Teilnehmende: \b0 </xsl:text><xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <xsl:text> -\par\b Voraussetzungen: \b0 </xsl:text><xsl:value-of select="voraussetzung"/> - </xsl:if> - <xsl:if test="lernorga"> - <xsl:text> -\par\b Lernorganisation: \b0 </xsl:text><xsl:value-of select="lernorga"/> - </xsl:if> - <xsl:if test="schein"> - <xsl:text> -\par\b Leistungsnachweis: \b0 </xsl:text><xsl:value-of select="schein"/> - </xsl:if> - <xsl:if test="ects"> - <xsl:text> -\par\b ECTS: \b0 </xsl:text><xsl:value-of select="ects"/> - </xsl:if> - <xsl:if test="bereiche"> - <xsl:text> -\par\b Bereich: \b0 </xsl:text> - <xsl:for-each select="bereiche/bereich"> -\par <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - <xsl:text> -\par\b Module: \b0 </xsl:text> - <xsl:for-each select="lvgruppen/lvgruppe"> -\par <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text>: \b0 </xsl:text> - <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:text> -\par </xsl:text> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/rtf-vp-1.xsl b/lib/export/rtf-vp-1.xsl deleted file mode 100644 index 5f7c4e51110914813d9f3ca0906298cf9631c610..0000000000000000000000000000000000000000 --- a/lib/export/rtf-vp-1.xsl +++ /dev/null @@ -1,264 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str="http://exslt.org/strings"> - <xsl:output method="text" encoding='UTF-8'/> - <xsl:template match="/"> - <xsl:text>{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} -\viewkind4\uc1\pard\par\</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:text> -\fs36 </xsl:text><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> -<xsl:if test="fakultaet"> - <xsl:text> -\par\par\fs24\b Fakultät: \b0 </xsl:text> - <xsl:value-of select="fakultaet"/> -</xsl:if> -<xsl:if test="homepage"> - <xsl:text> -\par\b Homepage: \b0 </xsl:text> - <xsl:value-of select="homepage"/> -</xsl:if> -<xsl:if test="strasse"> - <xsl:text> -\par\b Strasse: \b0 </xsl:text> - <xsl:value-of select="strasse"/> -</xsl:if> -<xsl:if test="plz"> - <xsl:text> -\par\b Postleitzahl: \b0 </xsl:text> - <xsl:value-of select="plz"/> -</xsl:if> -<xsl:if test="telefon"> - <xsl:text> -\par\b Telefon: \b0 </xsl:text> - <xsl:value-of select="telefon"/> -</xsl:if> -<xsl:if test="fax"> - <xsl:text> -\par\b Fax: \b0 </xsl:text> - <xsl:value-of select="fax"/> -</xsl:if> -<xsl:if test="email"> - <xsl:text> -\par\b E-mail: \b0 </xsl:text> - <xsl:value-of select="email"/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text>: \b0 </xsl:text> - <xsl:value-of select="."/> - </xsl:for-each> -</xsl:if> - <xsl:if test="seminare"> - <xsl:text> -\page\fs36 Veranstaltungen\fs24\par</xsl:text> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <xsl:text> -\par\fs32\b </xsl:text> - <xsl:value-of select="@key"/><xsl:text>\b0\fs24 </xsl:text> - - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <xsl:text> -\par\fs28\b </xsl:text> - <xsl:value-of select="@key"/><xsl:text>\b0\fs24 </xsl:text> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:if test="personen"> - <xsl:text> -\page\par\fs36 MitarbeiterInnen\fs24\par </xsl:text> - <xsl:text> -\par\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24\b Name\b0\cell\b Telefon\b0\cell\b Raum\b0\cell\b Sprechzeit\b0\cell\b E-Mail\b0\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <xsl:text> -\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs24\lang1031\cgrid { </xsl:text> - <xsl:value-of select="@key"/> - <xsl:text>\par }\pard</xsl:text> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:text> -\page</xsl:text> - </xsl:for-each> -\par\qr\fs24 Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - <xsl:text> }</xsl:text> - </xsl:template> - <xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text> -\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24 </xsl:text> - <xsl:if test="titel"> - <xsl:value-of select="titel"/><xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text><xsl:value-of select="titel2"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> -<xsl:text>\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - </xsl:for-each> - </xsl:template> - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <xsl:text> -\par\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs26\b\lang1031\cgrid { </xsl:text> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:value-of select="titel"/> - <xsl:text>\b0\par }\pard</xsl:text> - <xsl:if test="untertitel"> - <xsl:text> -\b Untertitel: \b0 </xsl:text> - <xsl:value-of select="untertitel"/> - <xsl:text>\par </xsl:text> - </xsl:if> - <xsl:text> -\b Lehrende: \b0 </xsl:text><xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:text> -\par\b Termin: \b0 </xsl:text><xsl:value-of select="termine/termin"/> - <xsl:text> -\par\b Erster Termin: \b0 </xsl:text><xsl:value-of select="termine/erstertermin"/> - <xsl:if test="termine/vorbesprechung"> - <xsl:text> -\par\b Vorbesprechung: \b0 </xsl:text><xsl:value-of select="termine/vorbesprechung"/> - </xsl:if> - <xsl:if test="status"> - <xsl:text> -\par\b Status: \b0 </xsl:text><xsl:value-of select="status"/> - </xsl:if> - <xsl:if test="beschreibung"> - <xsl:text> -\par\b Beschreibung: \b0 </xsl:text><xsl:value-of select="str:replace(beschreibung, ' ', '\line ')"/> - </xsl:if> - <xsl:if test="raum"> - <xsl:text> -\par\b Raum: \b0 </xsl:text><xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sonstiges"> - <xsl:text> -\par\b Sonstiges: \b0 </xsl:text><xsl:value-of select="sonstiges"/> - </xsl:if> - <xsl:if test="art"> - <xsl:text> -\par\b Art der Veranstaltung: \b0 </xsl:text><xsl:value-of select="art"/> - </xsl:if> - <xsl:if test="teilnehmer"> - <xsl:text> -\par\b Teilnahme: \b0 </xsl:text><xsl:value-of select="teilnehmer"/> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text> Anzahl Teilnehmende: \b0 </xsl:text><xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <xsl:text> -\par\b Voraussetzungen: \b0 </xsl:text><xsl:value-of select="voraussetzung"/> - </xsl:if> - <xsl:if test="lernorga"> - <xsl:text> -\par\b Lernorganisation: \b0 </xsl:text><xsl:value-of select="lernorga"/> - </xsl:if> - <xsl:if test="schein"> - <xsl:text> -\par\b Leistungsnachweis: \b0 </xsl:text><xsl:value-of select="schein"/> - </xsl:if> - <xsl:if test="ects"> - <xsl:text> -\par\b ECTS: \b0 </xsl:text><xsl:value-of select="ects"/> - </xsl:if> - <xsl:if test="bereiche"> - <xsl:text> -\par\b Bereich: \b0 </xsl:text> - <xsl:for-each select="bereiche/bereich"> -\par <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - <xsl:text> -\par\b Module: \b0 </xsl:text> - <xsl:for-each select="lvgruppen/lvgruppe"> -\par <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text>: \b0 </xsl:text> - <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:text> -\par </xsl:text> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/rtf-vp-2.xsl b/lib/export/rtf-vp-2.xsl deleted file mode 100644 index 55a3290faaa693898aee5c7a35d8735c8f58766e..0000000000000000000000000000000000000000 --- a/lib/export/rtf-vp-2.xsl +++ /dev/null @@ -1,195 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:text>{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} -\viewkind4\uc1\pard\par\</xsl:text> - - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> - <xsl:text> -\fs36 </xsl:text><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> -<xsl:if test="fakultaet"> - <xsl:text> -\par\par\fs24\b Fakultät: \b0 </xsl:text> - <xsl:value-of select="fakultaet"/> -</xsl:if> -<xsl:if test="homepage"> - <xsl:text> -\par\b Homepage: \b0 </xsl:text> - <xsl:value-of select="homepage"/> -</xsl:if> -<xsl:if test="strasse"> - <xsl:text> -\par\b Strasse: \b0 </xsl:text> - <xsl:value-of select="strasse"/> -</xsl:if> -<xsl:if test="plz"> - <xsl:text> -\par\b Postleitzahl: \b0 </xsl:text> - <xsl:value-of select="plz"/> -</xsl:if> -<xsl:if test="telefon"> - <xsl:text> -\par\b Telefon: \b0 </xsl:text> - <xsl:value-of select="telefon"/> -</xsl:if> -<xsl:if test="fax"> - <xsl:text> -\par\b Fax: \b0 </xsl:text> - <xsl:value-of select="fax"/> -</xsl:if> -<xsl:if test="email"> - <xsl:text> -\par\b E-mail: \b0 </xsl:text> - <xsl:value-of select="email"/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text>: \b0 </xsl:text> - <xsl:value-of select="."/> - </xsl:for-each> -</xsl:if> - <xsl:if test="seminare"> - <xsl:text> -\page\fs36 Veranstaltungen\fs24\par</xsl:text> - <xsl:text> -\par\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24\b Lehrende\b0\cell\b Veranstaltung\b0\cell\b Status\b0\cell\b Termin\b0\cell\b Raum\b0\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <xsl:text> -\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs28\lang1031\cgrid { </xsl:text> - <xsl:value-of select="@key"/> - <xsl:text>\par }\pard</xsl:text> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <xsl:text> -\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs24\lang1031\cgrid { </xsl:text> - <xsl:value-of select="@key"/> - <xsl:text>\par }\pard</xsl:text> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:if test="personen"> - <xsl:text> -\page\par\fs36 MitarbeiterInnen\fs24\par </xsl:text> - <xsl:text> -\par\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24\b Name\b0\cell\b Telefon\b0\cell\b Raum\b0\cell\b Sprechzeit\b0\cell\b E-Mail\b0\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <xsl:text> -\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs24\lang1031\cgrid { </xsl:text> - <xsl:value-of select="@key"/> - <xsl:text>\par }\pard</xsl:text> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:text> -\page</xsl:text> - </xsl:for-each> -\par\qr\fs24 Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - <xsl:text> }</xsl:text> - </xsl:template> - - <xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text> -\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24 </xsl:text> - <xsl:if test="titel"> - <xsl:value-of select="titel"/><xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text><xsl:value-of select="titel2"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> -<xsl:text>\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - </xsl:for-each> - </xsl:template> - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <xsl:text> -\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24 </xsl:text> - <xsl:value-of select="titel"/> -<xsl:text>\cell </xsl:text> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> -<xsl:text>\cell </xsl:text> - <xsl:value-of select="status"/> -<xsl:text>\cell </xsl:text> - <xsl:value-of select="termine/termin"/> -<xsl:text>\cell </xsl:text> - <xsl:value-of select="raum"/> -<xsl:text>\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> \ No newline at end of file diff --git a/lib/export/rtf-vp-3.xsl b/lib/export/rtf-vp-3.xsl deleted file mode 100644 index 3dad3a584d8e0336db4f84c58b1e1bc40e569cc4..0000000000000000000000000000000000000000 --- a/lib/export/rtf-vp-3.xsl +++ /dev/null @@ -1,293 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str="http://exslt.org/strings"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:for-each select="studip"> - <xsl:text>{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} -\viewkind4\uc1\pard\par\qc\fs56 </xsl:text><xsl:value-of select="@range"/> -<xsl:text>\par\fs36 </xsl:text><xsl:value-of select="@uni"/> -<xsl:text>\par\pard\fs44 -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par -\par\qc\fs96 </xsl:text> - <xsl:if test="institut/seminare"> - <xsl:text>Vorlesungskommentar</xsl:text> - </xsl:if> - <xsl:if test="institut/personen"> - <xsl:text>MitarbeiterInnenliste</xsl:text> - </xsl:if> -<xsl:text>\par\fs56 </xsl:text><xsl:value-of select="@zeitraum"/> -\par -\par\qr\fs24 Generiert von Stud.IP Version <xsl:value-of select="@version"/> -<xsl:text>\fs24\par\pard\page</xsl:text> - <xsl:for-each select="institut"> - <xsl:text> -\fs36 </xsl:text><xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> -<xsl:if test="fakultaet"> - <xsl:text> -\par\par\fs24\b Fakultät: \b0 </xsl:text> - <xsl:value-of select="fakultaet"/> -</xsl:if> -<xsl:if test="homepage"> - <xsl:text> -\par\b Homepage: \b0 </xsl:text> - <xsl:value-of select="homepage"/> -</xsl:if> -<xsl:if test="strasse"> - <xsl:text> -\par\b Strasse: \b0 </xsl:text> - <xsl:value-of select="strasse"/> -</xsl:if> -<xsl:if test="plz"> - <xsl:text> -\par\b Postleitzahl: \b0 </xsl:text> - <xsl:value-of select="plz"/> -</xsl:if> -<xsl:if test="telefon"> - <xsl:text> -\par\b Telefon: \b0 </xsl:text> - <xsl:value-of select="telefon"/> -</xsl:if> -<xsl:if test="fax"> - <xsl:text> -\par\b Fax: \b0 </xsl:text> - <xsl:value-of select="fax"/> -</xsl:if> -<xsl:if test="email"> - <xsl:text> -\par\b E-mail: \b0 </xsl:text> - <xsl:value-of select="email"/> -</xsl:if> -<xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text>: \b0 </xsl:text> - <xsl:value-of select="."/> - </xsl:for-each> -</xsl:if> - <xsl:if test="seminare"> - <xsl:text> -\page\fs36 Veranstaltungen\fs24\par</xsl:text> - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - <xsl:text> -\par\fs32\b </xsl:text> - <xsl:value-of select="@key"/><xsl:text>\b0\fs24 </xsl:text> - - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - <xsl:text> -\par\fs28\b </xsl:text> - <xsl:value-of select="@key"/><xsl:text>\b0\fs24 </xsl:text> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:if test="personen"> - <xsl:text> -\page\par\fs36 MitarbeiterInnen\fs24\par </xsl:text> - <xsl:text> -\par\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24\b Name\b0\cell\b Telefon\b0\cell\b Raum\b0\cell\b Sprechzeit\b0\cell\b E-Mail\b0\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> - <xsl:text> -\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs24\lang1031\cgrid { </xsl:text> - <xsl:value-of select="@key"/> - <xsl:text>\par }\pard</xsl:text> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:text> -\page</xsl:text> - </xsl:for-each> - </xsl:for-each> - <xsl:text> }</xsl:text> - </xsl:template> - - <xsl:template name="showperson"> - <xsl:for-each select="person"> - <xsl:text> -\trowd \trgaph70\trleft-70\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 -\trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx1839\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx3748\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx5657\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb -\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7566\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx9475\pard\plain \nowidctlpar\intbl\adjustright \lang1031\cgrid -{\fs24 </xsl:text> - <xsl:if test="titel"> - <xsl:value-of select="titel"/><xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text><xsl:value-of select="titel2"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="telefon"> - <xsl:value-of select="telefon"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="raum"> - <xsl:value-of select="raum"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="sprechzeiten"> - <xsl:value-of select="sprechzeiten"/> - </xsl:if> -<xsl:text>\cell </xsl:text> - <xsl:if test="email"> - <xsl:value-of select="email"/> - </xsl:if> -<xsl:text>\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard</xsl:text> - </xsl:for-each> - </xsl:template> - - <xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - <xsl:text> -\par\brdrt\brdrs\brdrw10\brsp20 \brdrl\brdrs\brdrw10\brsp80 \brdrb -\brdrs\brdrw10\brsp20 \brdrr\brdrs\brdrw10\brsp80 \adjustright \fs26\b\lang1031\cgrid { </xsl:text> - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:value-of select="titel"/> - <xsl:text>\b0\par }\pard</xsl:text> - <xsl:if test="untertitel"> - <xsl:text> -\b Untertitel: \b0 </xsl:text> - <xsl:value-of select="untertitel"/> - <xsl:text>\par </xsl:text> - </xsl:if> - <xsl:text> -\b Lehrende: \b0 </xsl:text><xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:text> -\par\b Termin: \b0 </xsl:text><xsl:value-of select="termine/termin"/> - <xsl:text> -\par\b Erster Termin: \b0 </xsl:text><xsl:value-of select="termine/erstertermin"/> - <xsl:if test="termine/vorbesprechung"> - <xsl:text> -\par\b Vorbesprechung: \b0 </xsl:text><xsl:value-of select="termine/vorbesprechung"/> - </xsl:if> - <xsl:if test="status"> - <xsl:text> -\par\b Status: \b0 </xsl:text><xsl:value-of select="status"/> - </xsl:if> - <xsl:if test="beschreibung"> - <xsl:text> -\par\b Beschreibung: \b0 </xsl:text><xsl:value-of select="str:replace(beschreibung, ' ', '\line ')"/> - </xsl:if> - <xsl:if test="raum"> - <xsl:text> -\par\b Raum: \b0 </xsl:text><xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sonstiges"> - <xsl:text> -\par\b Sonstiges: \b0 </xsl:text><xsl:value-of select="sonstiges"/> - </xsl:if> - <xsl:if test="art"> - <xsl:text> -\par\b Art der Veranstaltung: \b0 </xsl:text><xsl:value-of select="art"/> - </xsl:if> - <xsl:if test="teilnehmer"> - <xsl:text> -\par\b Teilnahme: \b0 </xsl:text><xsl:value-of select="teilnehmer"/> - </xsl:if> - <xsl:if test="teilnehmerzahl"> - <xsl:for-each select="teilnehmerzahl"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text> Anzahl Teilnehmende: \b0 </xsl:text><xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="voraussetzung"> - <xsl:text> -\par\b Voraussetzungen: \b0 </xsl:text><xsl:value-of select="voraussetzung"/> - </xsl:if> - <xsl:if test="lernorga"> - <xsl:text> -\par\b Lernorganisation: \b0 </xsl:text><xsl:value-of select="lernorga"/> - </xsl:if> - <xsl:if test="schein"> - <xsl:text> -\par\b Leistungsnachweis: \b0 </xsl:text><xsl:value-of select="schein"/> - </xsl:if> - <xsl:if test="ects"> - <xsl:text> -\par\b ECTS: \b0 </xsl:text><xsl:value-of select="ects"/> - </xsl:if> - <xsl:if test="bereiche"> - <xsl:text> -\par\b Bereich: \b0 </xsl:text> - <xsl:for-each select="bereiche/bereich"> -\par <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - <xsl:text> -\par\b Module: \b0 </xsl:text> - <xsl:for-each select="lvgruppen/lvgruppe"> -\par <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> -\par\b </xsl:text><xsl:value-of select="@key"/><xsl:text>: \b0 </xsl:text> - <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - <xsl:text> -\par </xsl:text> - </xsl:for-each> - </xsl:template> -</xsl:stylesheet> diff --git a/lib/export/txt-v-3.xsl b/lib/export/txt-v-3.xsl deleted file mode 100644 index 167402e87e21c5791f48043311bd75d6d3957a8c..0000000000000000000000000000000000000000 --- a/lib/export/txt-v-3.xsl +++ /dev/null @@ -1,151 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> -<xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> -<xsl:if test="fakultaet"> -Fakultät: <xsl:value-of select="fakultaet"/> -</xsl:if> -<xsl:if test="homepage"> -Homepage: <xsl:value-of select="homepage"/> -</xsl:if> -<xsl:if test="strasse"> -Strasse: <xsl:value-of select="strasse"/> -</xsl:if> -<xsl:if test="plz"> -Postleitzahl: <xsl:value-of select="plz"/> -</xsl:if> -<xsl:if test="telefon"> -Telefon: <xsl:value-of select="telefon"/> -</xsl:if> -<xsl:if test="fax"> -Fax: <xsl:value-of select="fax"/> -</xsl:if> -<xsl:if test="email"> -E-mail: <xsl:value-of select="email"/> -</xsl:if> -<xsl:if test="datenfelder"> -<xsl:for-each select="datenfelder/datenfeld"><xsl:text> -</xsl:text><xsl:value-of select="@key"/>: <xsl:value-of select="."/> -</xsl:for-each> -</xsl:if> -<xsl:text> -</xsl:text> -<xsl:if test="seminare"> -Veranstaltungen - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> -Gruppe: <xsl:value-of select="@key"/><xsl:text> -</xsl:text> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> -Untergruppe:<xsl:value-of select="@key"/><xsl:text> -</xsl:text> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </xsl:for-each> - - Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - </xsl:template> - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> -Veranstaltung - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:value-of select="titel"/> - - <xsl:if test="untertitel"> -Untertitel: <xsl:value-of select="untertitel"/> - </xsl:if> -Lehrende: <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> -Termin: <xsl:value-of select="termine/termin"/> -Erster Termin: <xsl:value-of select="termine/erstertermin"/> - <xsl:if test="termine/vorbesprechung"> -Vorbesprechung: <xsl:value-of select="termine/vorbesprechung"/> - </xsl:if> - <xsl:if test="status"> -Status: <xsl:value-of select="status"/> - </xsl:if> - <xsl:if test="veranstaltungsnummer"> -Veranstaltungsnummer: <xsl:value-of select="veranstaltungsnummer"/> - </xsl:if> - <xsl:if test="beschreibung"> -Beschreibung: <xsl:value-of select="beschreibung"/> - </xsl:if> - <xsl:if test="raum"> -Raum: <xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sonstiges"> -Sonstiges: <xsl:value-of select="sonstiges"/> - </xsl:if> - <xsl:if test="art"> -Art der Veranstaltung: <xsl:value-of select="art"/> - </xsl:if> - <xsl:if test="teilnehmer"> -Teilnahme: <xsl:value-of select="teilnehmer"/> - </xsl:if> - <xsl:if test="teilnehmerzahl"> <xsl:for-each select="teilnehmerzahl"><xsl:text> -</xsl:text><xsl:value-of select="@key"/> Anzahl Teilnehmende: <xsl:value-of select="."/> - </xsl:for-each></xsl:if> - <xsl:if test="voraussetzung"> -Voraussetzungen: <xsl:value-of select="voraussetzung"/> - </xsl:if> - <xsl:if test="lernorga"> -Lernorganisation: <xsl:value-of select="lernorga"/> - </xsl:if> - <xsl:if test="schein"> -Leistungsnachweis: <xsl:value-of select="schein"/> - </xsl:if> - <xsl:if test="ects"> -ECTS: <xsl:value-of select="ects"/> - </xsl:if> - <xsl:if test="bereiche"> -Bereich: -<xsl:for-each select="bereiche/bereich"><xsl:value-of select="."/><xsl:text> -</xsl:text></xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> -Module: -<xsl:for-each select="lvgruppen/lvgruppe"><xsl:value-of select="."/><xsl:text> -</xsl:text></xsl:for-each> - </xsl:if> -<xsl:if test="datenfelder"> -<xsl:for-each select="datenfelder/datenfeld"> -<xsl:value-of select="@key"/>: <xsl:value-of select="."/> -</xsl:for-each> -</xsl:if> -<xsl:text> -</xsl:text> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> diff --git a/lib/export/txt-vp-1.xsl b/lib/export/txt-vp-1.xsl deleted file mode 100644 index 59e133f59e175c38a79a35d50f555b1821e3b2ac..0000000000000000000000000000000000000000 --- a/lib/export/txt-vp-1.xsl +++ /dev/null @@ -1,202 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> ------------------------------------------------------------------ -<xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> ------------------------------------------------------------------ - <xsl:if test="fakultaet"> - Fakultät: <xsl:value-of select="fakultaet"/> - </xsl:if> - <xsl:if test="homepage"> - Homepage: <xsl:value-of select="homepage"/> - </xsl:if> - <xsl:if test="strasse"> - Strasse: <xsl:value-of select="strasse"/> - </xsl:if> - <xsl:if test="plz"> - Postleitzahl: <xsl:value-of select="plz"/> - </xsl:if> - <xsl:if test="telefon"> - Telefon: <xsl:value-of select="telefon"/> - </xsl:if> - <xsl:if test="fax"> - Fax: <xsl:value-of select="fax"/> - </xsl:if> - <xsl:if test="email"> - E-mail: <xsl:value-of select="email"/> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> - <xsl:text> - </xsl:text><xsl:value-of select="@key"/>: <xsl:text> </xsl:text><xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> - - <xsl:if test="seminare"> - ------------------------------------------------------------ - Veranstaltungen - ------------------------------------------------------------ - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> - -------- <xsl:value-of select="@key"/> --------<xsl:text> -</xsl:text> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> - --- <xsl:value-of select="@key"/> ---<xsl:text> -</xsl:text> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:if test="personen"> - ------------------------------------------------------------ - MitarbeiterInnen - ------------------------------------------------------------ - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> -<xsl:text> -</xsl:text> -------- <xsl:value-of select="@key"/> --------<xsl:text> -</xsl:text> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </xsl:for-each> - - Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> - - <xsl:if test="titel"> - <xsl:value-of select="titel"/><xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text><xsl:value-of select="titel2"/> - </xsl:if> - <xsl:if test="telefon"> - Telefon: <xsl:value-of select="telefon"/> - </xsl:if> - <xsl:if test="raum"> - Raum: <xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sprechzeiten"> - Sprechzeit: <xsl:value-of select="sprechzeiten"/> - </xsl:if> - <xsl:if test="email"> - E-Mail: <xsl:value-of select="email"/> - </xsl:if> -<xsl:text> -</xsl:text> - </xsl:for-each> -</xsl:template> - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> - Veranstaltung - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:value-of select="titel"/> - - <xsl:if test="untertitel"> - Untertitel: <xsl:value-of select="untertitel"/> - </xsl:if> - Lehrende: <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - Termin: <xsl:value-of select="termine/termin"/> - Erster Termin: <xsl:value-of select="termine/erstertermin"/> - <xsl:if test="termine/vorbesprechung"> - Vorbesprechung: <xsl:value-of select="termine/vorbesprechung"/> - </xsl:if> -<xsl:text> -</xsl:text> - <xsl:if test="status"> - Status: <xsl:value-of select="status"/> - </xsl:if> - <xsl:if test="beschreibung"> - Beschreibung: <xsl:value-of select="beschreibung"/> - </xsl:if> - <xsl:if test="raum"> - Raum: <xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sonstiges"> - Sonstiges: <xsl:value-of select="sonstiges"/> - </xsl:if> - <xsl:if test="art"> - Art der Veranstaltung: <xsl:value-of select="art"/> - </xsl:if> - <xsl:if test="teilnehmer"> - Teilnahme: <xsl:value-of select="teilnehmer"/> - </xsl:if> - <xsl:if test="teilnehmerzahl"> <xsl:for-each select="teilnehmerzahl"><xsl:text> - </xsl:text><xsl:value-of select="@key"/> Anzahl Teilnehmende: <xsl:text> </xsl:text><xsl:value-of select="."/> - </xsl:for-each></xsl:if> - <xsl:if test="voraussetzung"> - Voraussetzungen: <xsl:value-of select="voraussetzung"/> - </xsl:if> - <xsl:if test="lernorga"> - Lernorganisation: <xsl:value-of select="lernorga"/> - </xsl:if> - <xsl:if test="schein"> - Leistungsnachweis: <xsl:value-of select="schein"/> - </xsl:if> - <xsl:if test="ects"> - ECTS: <xsl:value-of select="ects"/> - </xsl:if> - <xsl:if test="bereiche"> - Bereich: -<xsl:for-each select="bereiche/bereich"><xsl:text> </xsl:text><xsl:value-of select="."/><xsl:text> -</xsl:text></xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> - Module: -<xsl:for-each select="lvgruppen/lvgruppe"><xsl:text> </xsl:text><xsl:value-of select="."/><xsl:text> -</xsl:text></xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> -<xsl:text> </xsl:text><xsl:value-of select="@key"/>: <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> -<xsl:text> -</xsl:text> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> diff --git a/lib/export/txt-vp-2.xsl b/lib/export/txt-vp-2.xsl deleted file mode 100644 index f58e192d6fd5668e433883d11182aab44a3c15ed..0000000000000000000000000000000000000000 --- a/lib/export/txt-vp-2.xsl +++ /dev/null @@ -1,194 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> - <xsl:output method="text" encoding="UTF-8"/> - <xsl:template match="/"> - <xsl:text></xsl:text> - <xsl:for-each select="studip"> - <xsl:for-each select="institut"> -<xsl:choose> - <xsl:when test="type"><xsl:value-of select="type"/></xsl:when> - <xsl:otherwise>Einrichtung</xsl:otherwise> -</xsl:choose>: <xsl:value-of select="name"/> -<xsl:if test="fakultaet"> -Fakultät: <xsl:value-of select="fakultaet"/> -</xsl:if> -<xsl:if test="homepage"> -Homepage: <xsl:value-of select="homepage"/> -</xsl:if> -<xsl:if test="strasse"> -Strasse: <xsl:value-of select="strasse"/> -</xsl:if> -<xsl:if test="plz"> -Postleitzahl: <xsl:value-of select="plz"/> -</xsl:if> -<xsl:if test="telefon"> -Telefon: <xsl:value-of select="telefon"/> -</xsl:if> -<xsl:if test="fax"> -Fax: <xsl:value-of select="fax"/> -</xsl:if> -<xsl:if test="email"> -E-mail: <xsl:value-of select="email"/> -</xsl:if> -<xsl:if test="datenfelder"> -<xsl:for-each select="datenfelder/datenfeld"><xsl:text> -</xsl:text><xsl:value-of select="@key"/>: <xsl:value-of select="."/> -</xsl:for-each> -</xsl:if> -<xsl:text> -</xsl:text> -<xsl:if test="seminare"> -Veranstaltungen - <xsl:choose> - <xsl:when test="seminare/gruppe"> - <xsl:for-each select="seminare/gruppe"> -Gruppe: <xsl:value-of select="@key"/><xsl:text> -</xsl:text> - <xsl:choose> - <xsl:when test="untergruppe"> - <xsl:for-each select="untergruppe"> -Untergruppe:<xsl:value-of select="@key"/><xsl:text> -</xsl:text> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="showseminar"/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="seminare"> - <xsl:call-template name="showseminar"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - <xsl:if test="personen"> -MitarbeiterInnen - <xsl:choose> - <xsl:when test="personen/gruppe"> - <xsl:for-each select="personen/gruppe"> -<xsl:text> -</xsl:text><xsl:value-of select="@key"/><xsl:text> -</xsl:text> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="personen"> - <xsl:call-template name="showperson"/> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </xsl:for-each> - - Generiert von Stud.IP Version <xsl:value-of select="@version"/> - </xsl:for-each> - </xsl:template> - -<xsl:template name="showperson"> - <xsl:for-each select="person"> -<xsl:if test="titel"> - <xsl:value-of select="titel"/><xsl:text> </xsl:text> - </xsl:if> - <xsl:value-of select="vorname"/> - <xsl:text> </xsl:text> - <xsl:value-of select="nachname"/> - <xsl:if test="titel2"> - <xsl:text>, </xsl:text><xsl:value-of select="titel2"/> - </xsl:if> - <xsl:if test="telefon"> -Telefon: <xsl:value-of select="telefon"/> - </xsl:if> - <xsl:if test="raum"> -Raum: <xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sprechzeiten"> -Sprechzeit: <xsl:value-of select="sprechzeiten"/> - </xsl:if> - <xsl:if test="email"> -E-Mail: <xsl:value-of select="email"/> - </xsl:if> -<xsl:text> -</xsl:text> - </xsl:for-each> -</xsl:template> - -<xsl:template name="showseminar"> - <xsl:for-each select="seminar"> -Veranstaltung - <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - <xsl:value-of select="titel"/> - - <xsl:if test="untertitel"> -Untertitel: <xsl:value-of select="untertitel"/> - </xsl:if> -Lehrende: <xsl:for-each select="dozenten/dozent"> - <xsl:if test="position() > 1"> - <xsl:text>, </xsl:text> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> -Termin: <xsl:value-of select="termine/termin"/> -Erster Termin: <xsl:value-of select="termine/erstertermin"/> - <xsl:if test="termine/vorbesprechung"> -Vorbesprechung: <xsl:value-of select="termine/vorbesprechung"/> - </xsl:if> - <xsl:if test="status"> -Status: <xsl:value-of select="status"/> - </xsl:if> - <xsl:if test="beschreibung"> -Beschreibung: <xsl:value-of select="beschreibung"/> - </xsl:if> - <xsl:if test="raum"> -Raum: <xsl:value-of select="raum"/> - </xsl:if> - <xsl:if test="sonstiges"> -Sonstiges: <xsl:value-of select="sonstiges"/> - </xsl:if> - <xsl:if test="art"> -Art der Veranstaltung: <xsl:value-of select="art"/> - </xsl:if> - <xsl:if test="teilnehmer"> -Teilnahme: <xsl:value-of select="teilnehmer"/> - </xsl:if> - <xsl:if test="teilnehmerzahl"> <xsl:for-each select="teilnehmerzahl"><xsl:text> -</xsl:text><xsl:value-of select="@key"/> Anzahl Teilnehmende: <xsl:value-of select="."/> - </xsl:for-each></xsl:if> - <xsl:if test="voraussetzung"> -Voraussetzungen: <xsl:value-of select="voraussetzung"/> - </xsl:if> - <xsl:if test="lernorga"> -Lernorganisation: <xsl:value-of select="lernorga"/> - </xsl:if> - <xsl:if test="schein"> -Leistungsnachweis: <xsl:value-of select="schein"/> - </xsl:if> - <xsl:if test="ects"> -ECTS: <xsl:value-of select="ects"/> - </xsl:if> - <xsl:if test="bereiche"> -Bereich: -<xsl:for-each select="bereiche/bereich"><xsl:value-of select="."/><xsl:text> -</xsl:text></xsl:for-each> - </xsl:if> - <xsl:if test="lvgruppen"> -Module: -<xsl:for-each select="lvgruppen/lvgruppe"><xsl:value-of select="."/><xsl:text> -</xsl:text></xsl:for-each> - </xsl:if> - <xsl:if test="datenfelder"> - <xsl:for-each select="datenfelder/datenfeld"> -<xsl:value-of select="@key"/>: <xsl:value-of select="."/> - </xsl:for-each> - </xsl:if> -<xsl:text> -</xsl:text> - </xsl:for-each> -</xsl:template> -</xsl:stylesheet> diff --git a/lib/functions.php b/lib/functions.php index 5f7cf8cdddfb56deff13e2884a7e02b09d349224..ea9b7b1a2d9c7dc6757af3874a0bbb25580bd40c 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -1890,3 +1890,15 @@ function randomString(int $length = 32): string return $string; } + +/** + * escapes special characters for xml use + * + * @param string $string the string to escape + * @return string + */ +function xml_escape($string) +{ + $string = preg_replace('/[\x00-\x08\x0b\x0c\x0e-\x1f]/', '', $string); + return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); +} diff --git a/lib/models/CourseMember.class.php b/lib/models/CourseMember.class.php index cb32abc093dbfb71ce6356442dac598b793420cf..a8a900b08c76e0278815383fdb30d5ff299d9d1a 100644 --- a/lib/models/CourseMember.class.php +++ b/lib/models/CourseMember.class.php @@ -437,4 +437,79 @@ class CourseMember extends SimpleORMap implements PrivacyObject return true; } + + /** + * Get user information for all users in this course + * + */ + public static function getMemberDataByCourse(string $seminar_id, ?string $user_id = null): array + { + $query = "SELECT `datafield_id` + FROM `datafields` + WHERE `name`= 'Matrikelnummer' + AND `object_type` = 'user'"; + $datafield_id = DBManager::get()->fetchColumn($query); + + $user_condition = ''; + $parameters = [ + ':seminar_id' => $seminar_id, + ':datafield_id' => $datafield_id, + ]; + if (func_num_args() > 1) { + $user_condition = " AND su.`user_id` = :user_id"; + $parameters[':user_id'] = $user_id; + } + + $query = "SELECT su.`user_id`, + su.`status`, + ui.`geschlecht`, + ui.`title_front` AS Titel, + aum.`Vorname`, + aum.`Nachname`, + ui.`title_rear` AS Titel2, + aum.`username`, + ui.`privadr`, + ui.`privatnr`, + aum.`Email`, + ui.`mkdate` AS Anmeldedatum, + IFNULL(aum.`matriculation_number`, dfe.`content`) AS Matrikelnummer + FROM `seminar_user` AS su + JOIN `auth_user_md5` AS aum USING (`user_id`) + LEFT JOIN `user_info` AS ui USING (`user_id`) + LEFT JOIN `datafields_entries` AS dfe + ON dfe.`range_id` = su.`user_id` + AND dfe.`datafield_id` = :datafield_id + WHERE `Seminar_id` = :seminar_id + {$user_condition} + GROUP BY su.`user_id` + ORDER BY `status` DESC, `Nachname`, `Vorname`"; + return DBManager::get()->fetchAll( + $query, + $parameters, + function (array $row): array { + switch ($row['geschlecht']) { + case '0': + $row['geschlecht'] = _('unbekannt'); + break; + case '1': + $row['geschlecht'] = _('Herr'); + break; + case '2': + $row['geschlecht'] = _('Frau'); + break; + case '3': + $row['geschlecht'] = _('divers'); + break; + } + + $query = "SELECT GROUP_CONCAT(CONCAT(f.`name`, ', ' , a.`name`, ', ', us.`semester`) SEPARATOR '; ') + FROM `user_studiengang` AS us + JOIN `fach` AS f USING (`fach_id`) + JOIN abschluss AS a USING (`abschluss_id`) + WHERE us.`user_id` = :user_id"; + $row['studiengaenge'] = DBManager::get()->fetchColumn($query, [':user_id' => $row['user_id']]); + return $row; + } + ); + } } diff --git a/lib/navigation/BrowseNavigation.php b/lib/navigation/BrowseNavigation.php index 6302fb87f758ce9014a04873bc3de5a8c2e70173..8a89d6c464427c255fe7c91f7b86273cb7b18b20 100644 --- a/lib/navigation/BrowseNavigation.php +++ b/lib/navigation/BrowseNavigation.php @@ -66,7 +66,7 @@ class BrowseNavigation extends Navigation } $navigation->addSubNavigation('list', new Navigation( - $GLOBALS['perm']->have_perm('admin') ? _('Veranstaltungsadministration') : _('Aktuelle Veranstaltungen'), + $GLOBALS['perm']->have_perm('admin') ? _('Veranstaltungsadministration') : _('Aktuelle Veranstaltungen'), 'dispatch.php/my_courses' )); @@ -108,11 +108,6 @@ class BrowseNavigation extends Navigation $navigation->addSubNavigation('restricted_courses', new Navigation(_('teilnahmebeschränkte Veranstaltungen'), 'dispatch.php/admission/restricted_courses')); } - // export - if (Config::get()->EXPORT_ENABLE && $GLOBALS['perm']->have_perm('tutor')) { - $navigation = new Navigation(_('Export'), 'export.php'); - $this->addSubNavigation('export', $navigation); - } } } diff --git a/lib/navigation/StartNavigation.php b/lib/navigation/StartNavigation.php index df94412420ebe5b80f836bb6d01021a52cc3dd9e..bc938b693d37b70a46ddd6c7cc07deb5f1d82b38 100644 --- a/lib/navigation/StartNavigation.php +++ b/lib/navigation/StartNavigation.php @@ -130,10 +130,6 @@ class StartNavigation extends Navigation if ($perm->have_perm('admin') || (Config::get()->ALLOW_DOZENT_COURSESET_ADMIN && $perm->have_perm('dozent'))) { $navigation->addSubNavigation('coursesets', new Navigation(_('Anmeldesets'), 'dispatch.php/admission/courseset')); } - // export - if (Config::get()->EXPORT_ENABLE && $perm->have_perm('tutor')) { - $navigation->addSubNavigation('export', new Navigation(_('Export'), 'export.php')); - } $this->addSubNavigation('my_courses', $navigation); diff --git a/public/eval_summary.php b/public/eval_summary.php index 676723ec5ddf8fdb4b5953e8376dd31dc5bf6abd..cbd6036d6cb9afc220d2551537bb591e50fad008 100644 --- a/public/eval_summary.php +++ b/public/eval_summary.php @@ -23,7 +23,6 @@ require '../lib/bootstrap.php'; require_once 'lib/evaluation/evaluation.config.php'; require_once EVAL_FILE_EVAL; require_once EVAL_FILE_OBJECTDB; -require_once 'lib/export/export_tmp_gc.inc.php'; ob_start(); page_open(["sess" => "Seminar_Session", "auth" => "Seminar_Auth", "perm" => "Seminar_Perm", "user" => "Seminar_User"]); @@ -53,7 +52,6 @@ $eval_templates = []; $question_type = ""; $tmp_path_export = $GLOBALS['TMP_PATH']; -export_tmp_gc(); if (isset($cmd)) { if ($cmd=="change_group_type" && isset($evalgroup_id) && isset($group_type)) { diff --git a/public/eval_summary_export.php b/public/eval_summary_export.php index 608da257b2954886cd40a38e8d6148fe3a521d78..77b349a89c1ff413d7700542dddb725fb555068b 100644 --- a/public/eval_summary_export.php +++ b/public/eval_summary_export.php @@ -44,8 +44,6 @@ include 'lib/seminar_open.php'; // initialise Stud.IP-Session require_once 'lib/evaluation/evaluation.config.php'; require_once EVAL_FILE_EVAL; require_once EVAL_FILE_OBJECTDB; -require_once 'lib/export/export_tmp_gc.inc.php'; -require_once 'lib/export/export_xml_func.inc.php'; // Start of Output $eval_id = Request::option('eval_id'); @@ -58,7 +56,6 @@ if (EvaluationObjectDB::getEvalUserRangesWithNoPermission($eval) == YES || count } $tmp_path_export = $GLOBALS['TMP_PATH']; -export_tmp_gc(); // Template vorhanden? $eval_templates = []; diff --git a/public/export.php b/public/export.php deleted file mode 100644 index 43a8491aa37103d6a832e576b22f69d6d97cffaa..0000000000000000000000000000000000000000 --- a/public/export.php +++ /dev/null @@ -1,154 +0,0 @@ -<? -# Lifter002: TODO -# Lifter005: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -/** -* Export-mainfile. Calls the submodules. -* -* This file checks the given parameters and calls the requested -* submodules for export in formats xml, rtf, html, pdf... -* -* @author Arne Schroeder <schroeder@data.quest.de> -* @access public -* @modulegroup export_modules -* @module export -* @package Export -*/ -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// export.php -// -// Copyright (c) 2002 Arne Schroeder <schroeder@data-quest.de> -// Suchi & Berg GmbH <info@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 any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -require '../lib/bootstrap.php'; - -ob_start(); -page_open(["sess" => "Seminar_Session", "auth" => "Seminar_Default_Auth", "perm" => "Seminar_Perm", "user" => "Seminar_User"]); - -$o_mode = Request::option('o_mode'); -$xml_file_id = Request::option('xml_file_id',""); -$xslt_filename = Request::quoted('xslt_filename'); -$page = Request::option('page'); -$filter = Request::option('filter'); -$ex_type = Request::quoted('ex_type'); -$ex_sem = Request::option('ex_sem'); -$format = Request::option('format'); -$choose = Request::quoted('choose'); -$range_id = Request::option('range_id'); - -if ($o_mode !== 'direct' && $o_mode !== 'passthrough') -{ - $GLOBALS['perm']->check('tutor'); - include ('lib/seminar_open.php'); // initialise Stud.IP-Session -} - -require_once 'lib/export/export_config.inc.php'; - -PageLayout::setHelpKeyword("Basis.Export"); -ob_start(); -if (Config::get()->EXPORT_ENABLE) -{ - $ex_sem_class = Request::intArray('ex_sem_class'); - $export_error_num = 0; - $xslt_process_done = false; - $start_done = false; - $xml_output_done = false; - $xslt_choose_done = false; - // Zurueckbutton benutzt? - if (Request::submitted('back')) - { - if ($o_mode == "choose") - { - if ($page == 4) - { - if (Config::get()->skip_page_3) - $page = 1; - else - $page = 2; - } - elseif ($page>1) - $page = $page-2; - else - { - unset($xml_file_id); - unset($page); - $o_mode= "start"; - } - } - } - - if ( (empty($range_id) AND empty($xml_file_id) AND empty($o_mode) AND empty($ex_type)) OR ($o_mode == "start")) - { - include("lib/export/export_start.inc.php"); - $start_done = true; - } - - if (($page==2) AND Config::get()->XSLT_ENABLE AND Config::get()->skip_page_3) - $page=3; - - //Exportmodul einbinden - if (($page != 3) AND ($o_mode == "choose") AND ($export_error_num < 1)) - { - include("lib/export/export_choose_xslt.inc.php"); - if ($export_error_num < 1) - $xslt_choose_done = true; - } - - if ( ($range_id != "") AND ($xml_file_id == "") AND ($o_mode != "start") AND (($o_mode != "choose") OR ($page == 3))) - { - include("lib/export/export_xml.inc.php"); - if ($export_error_num < 1) - $xml_output_done = true; - } - - if ( (!empty($choose)) AND ($format != "") AND ($format != "xml") AND (Config::get()->XSLT_ENABLE) AND ($export_error_num==0) AND - ( ($o_mode == "processor") OR ($o_mode == "passthrough") OR ($page == 3) ) ) - { - include("lib/export/export_run_xslt.inc.php"); - if ($export_error_num < 1) - $xslt_process_done = true; - } - - if (($export_error_num < 1) AND ($xslt_process_done) AND ($format == "fo")) - include("lib/export/export_run_fop.inc.php"); - - if (($export_error_num < 1) AND (!$start_done) AND ((!$xml_output_done) OR ($o_mode != "file")) AND (!$xslt_choose_done) AND (!$xslt_process_done)) - { - $export_pagename = "Exportmodul - Fehler!"; - $export_error = _("Fehlerhafter Seitenaufruf"); - - } - - include("lib/export/export_view.inc.php"); -} -else -{ - PageLayout::postError(_("Das Exportmodul ist nicht eingebunden. Damit Daten im XML-Format exportiert werden können, muss das Exportmodul in den Systemeinstellungen freigeschaltet werden. - Wenden Sie sich bitte an die Administratoren."), [_("Exportmodul nicht eingebunden")]); - -} -if (!in_array($o_mode, ['direct', 'passthrough'])) { - $template = $GLOBALS['template_factory']->open('layouts/base.php'); - $template->content_for_layout = ob_get_clean(); - - - echo $template->render(); - page_close(); -} diff --git a/public/show_bereich.php b/public/show_bereich.php index 48d3cf14406f5a11da655788022996faabe0ffbf..2a5e55d4545a9a27a73f1572aa3170d5cf328164 100644 --- a/public/show_bereich.php +++ b/public/show_bereich.php @@ -30,8 +30,6 @@ page_open(["sess" => "Seminar_Session", "auth" => "Seminar_Auth", "perm" => "Sem include 'lib/seminar_open.php'; // initialise Stud.IP-Session -require_once 'lib/export/export_linking_func.inc.php'; - $intro_text = $head_text = ''; $level = Request::option('level'); @@ -112,15 +110,6 @@ case "s": break; } -if (Request::int('send_excel')){ - $tmpfile = basename($sem_browse_obj->create_result_xls($excel_text)); - if($tmpfile){ - header('Location: ' . FileManager::getDownloadURLForTemporaryFile( $tmpfile, _("Veranstaltungsübersicht.xls"), 4)); - page_close(); - die; - } -} - PageLayout::setHelpKeyword("Basis.Informationsseite"); PageLayout::setTitle(($level == "s" ? Context::getHeaderLine() ." - " : "").$head_text); if ($level == "s" && Context::getId() && Context::isInstitute()) { @@ -144,38 +133,6 @@ foreach ($sem_browse_obj->group_by_fields as $i => $field){ } $sidebar->addWidget($grouping); -if (Config::get()->EXPORT_ENABLE && $perm->have_perm("tutor")) { - $export = new LinksWidget(); - $export->setTitle(_("Daten ausgeben:")); - if ($level == "s") { - $export->addLink( - _("Diese Daten exportieren"), - URLHelper::getURL("export.php", ['range_id' => Context::getId(), - 'o_mode' => 'choose', 'ex_type' => "veranstaltung", - 'xslt_filename' => Context::get()->Name, 'ex_sem' => $show_semester]), - Icon::create('download', 'info') - ); - $export->addLink( - _("Download als Excel Tabelle"), - URLHelper::getURL('?send_excel=1&group_by=' . (int)$group_by), - Icon::create('file-xls', 'info') - ); - } - if ($level == "sbb") { - $export->addLink( - _("Diese Daten exportieren"), - URLHelper::getURL("export.php", ['range_id' => $id, 'o_mode' => 'choose', 'ex_type' => "veranstaltung", 'xslt_filename' => $id, 'ex_sem' => $show_semester]), - Icon::create('download', 'info') - ); - $export->addLink( - _("Download als Excel Tabelle"), - URLHelper::getURL('?send_excel=1&group_by=' . (int)$group_by), - Icon::create('file-xls', 'info') - ); - } - $sidebar->addWidget($export); - -} ?> <div><?= $intro_text ?></div>