From 48a46a46b90b4909d8fd44b7bb318d0468085a75 Mon Sep 17 00:00:00 2001 From: Moritz Strohm Date: Tue, 11 Oct 2022 08:20:50 +0000 Subject: fix for BIESt 1127, closes #1127 Closes #1127 Merge request studip/studip!677 --- app/controllers/lvgruppen/lvgruppen.php | 5 ++- app/controllers/materialien/files.php | 11 ++++--- app/controllers/module/institute.php | 2 ++ app/controllers/module/module.php | 18 ++++++---- app/controllers/module/mvv_controller.php | 7 ++-- app/controllers/shared/contacts.php | 18 ++++++---- app/controllers/studiengaenge/fachbereiche.php | 20 +++++++----- .../studiengaenge/fachbereichestgteile.php | 15 +++++---- app/controllers/studiengaenge/faecher.php | 13 ++++---- app/controllers/studiengaenge/shared_version.php | 10 +++--- .../studiengaenge/stgteilbezeichnungen.php | 1 + app/controllers/studiengaenge/studiengaenge.php | 14 ++++---- app/controllers/studiengaenge/versionen.php | 38 +++++++++++++--------- app/views/fachabschluss/abschluesse/index.php | 5 +-- app/views/fachabschluss/kategorien/index.php | 3 -- app/views/module/module/modul.php | 2 +- app/views/module/module/module.php | 2 +- app/views/shared/chooser.php | 4 +-- app/views/shared/chooser_form.php | 8 ++--- app/views/shared/contacts/details.php | 2 +- app/views/shared/contacts/index.php | 2 +- app/views/shared/filter.php | 22 ++++++------- .../studiengaenge/studiengaenge/studiengaenge.php | 2 +- .../studiengangteile/details_grouped.php | 4 +-- app/views/studiengaenge/studiengangteile/index.php | 2 +- app/views/studiengaenge/versionen/abschnitte.php | 2 +- .../studiengaenge/versionen/details_abschnitt.php | 2 +- app/views/studiengaenge/versionen/index.php | 2 +- app/views/studiengaenge/versionen/versionen.php | 2 +- lib/classes/MvvPerm.php | 31 +++++++++++------- lib/models/DatafieldEntryModel.class.php | 5 ++- lib/models/Lvgruppe.php | 2 ++ lib/models/Modul.php | 2 +- lib/models/ModuleManagementModelTreeItem.php | 2 +- lib/models/MvvFile.php | 4 +-- 35 files changed, 161 insertions(+), 123 deletions(-) diff --git a/app/controllers/lvgruppen/lvgruppen.php b/app/controllers/lvgruppen/lvgruppen.php index 9e3e7a4..194f171 100644 --- a/app/controllers/lvgruppen/lvgruppen.php +++ b/app/controllers/lvgruppen/lvgruppen.php @@ -15,6 +15,9 @@ class Lvgruppen_LvgruppenController extends MVVController public function before_filter(&$action, &$args) { parent::before_filter($action, $args); + + $this->lvgruppe_id = ''; + // set navigation Navigation::activateItem($this->me . '/lvgruppen/lvgruppen'); $this->filter = $this->sessGet('filter', []); @@ -41,7 +44,7 @@ class Lvgruppen_LvgruppenController extends MVVController // Nur LvGruppen an Modulen von verantwortlichen Einrichtungen an denen der User // eine Rolle hat $own_institutes = MvvPerm::getOwnInstitutes(); - if (!$this->filter['mvv_modul_inst.institut_id']) { + if (empty($this->filter['mvv_modul_inst.institut_id'])) { $this->filter['mvv_modul_inst.institut_id'] = $own_institutes; } else if (count($own_institutes)) { $this->filter['mvv_modul_inst.institut_id'] = array_intersect( diff --git a/app/controllers/materialien/files.php b/app/controllers/materialien/files.php index 5b35a61..65c9b44 100644 --- a/app/controllers/materialien/files.php +++ b/app/controllers/materialien/files.php @@ -58,6 +58,7 @@ class Materialien_FilesController extends MVVController } } + $this->range_id = ''; if (Request::option('range_id')) { $this->filter = ['mvv_files.range_id' => Request::option('range_id')]; $this->sortby = 'position'; @@ -66,7 +67,7 @@ class Materialien_FilesController extends MVVController // show only files assigned to objects where the responsible institute is // in the list of users own institutes - if (!$this->filter['mvv_studiengang.institut_id']) { + if (empty($this->filter['mvv_studiengang.institut_id'])) { $this->filter['mvv_studiengang.institut_id'] = MvvPerm::getOwnInstitutes(); } @@ -655,16 +656,16 @@ class Materialien_FilesController extends MVVController $semesters = new SimpleCollection(array_reverse(Semester::getAll())); $filter_template = $template_factory->render('shared/filter', [ 'name_search' => true, - 'selected_name' => $this->filter['searchnames'], + 'selected_name' => $this->filter['searchnames'] ?? '', 'name_caption' => _('Name, Kategorie, Schlagwort'), 'semester' => $semesters, 'selected_semester' => $semesters->findOneBy('beginn', $this->filter['start_sem.beginn'])->id, 'default_semester' => Semester::findCurrent()->id, 'institute' => MvvFile::getAllAssignedInstitutes('name', 'ASC', $institute_filter), 'institute_count' => 'count_objects', - 'selected_institut' => $this->filter['mvv_studiengang.institut_id'], - 'zuordnungen' => MvvFile::getAllRelations($this->search_result['MvvFile']), - 'selected_zuordnung' => $this->filter['mvv_files_ranges.range_type'], + 'selected_institut' => $this->filter['mvv_studiengang.institut_id'] ?? '', + 'zuordnungen' => !empty($this->search_result['MvvFile']) ? MvvFile::getAllRelations($this->search_result['MvvFile']) : [], + 'selected_zuordnung' => $this->filter['mvv_files_ranges.range_type'] ?? '', 'action' => $this->action_url('set_filter'), 'action_reset' => $this->action_url('reset_filter')] ); diff --git a/app/controllers/module/institute.php b/app/controllers/module/institute.php index 0572640..5ac67fd 100644 --- a/app/controllers/module/institute.php +++ b/app/controllers/module/institute.php @@ -16,6 +16,8 @@ class Module_InstituteController extends Module_ModuleController parent::before_filter($action, $args); URLHelper::bindLinkParam('institut_id', $this->institut_id); + $this->inst_id = ''; + if (Request::isXhr()) { $this->set_layout(null); } diff --git a/app/controllers/module/module.php b/app/controllers/module/module.php index c936fee..74415ba 100644 --- a/app/controllers/module/module.php +++ b/app/controllers/module/module.php @@ -20,6 +20,9 @@ class Module_ModuleController extends MVVController Navigation::activateItem($this->me . '/module/module'); $this->filter = $this->sessGet('filter', []); $this->action = $action; + $this->modul_id = ''; + $this->details_url = ''; + $this->modulteil_id = ''; PageLayout::addSqueezePackage('statusgroups'); } @@ -44,7 +47,7 @@ class Module_ModuleController extends MVVController // Nur Module von verantwortlichen Einrichtungen an denen der User // eine Rolle hat - if (!$this->filter['mvv_modul_inst.institut_id']) { + if (empty($this->filter['mvv_modul_inst.institut_id'])) { unset($this->filter['mvv_modul_inst.institut_id']); } $this->filter = array_merge( @@ -1343,7 +1346,7 @@ class Module_ModuleController extends MVVController { // Nur Module von verantwortlichen Einrichtungen an denen der User // eine Rolle hat - if (!$this->filter['mvv_modul_inst.institut_id']) { + if (empty($this->filter['mvv_modul_inst.institut_id'])) { unset($this->filter['mvv_modul_inst.institut_id']); } $modul_filter = array_merge( @@ -1360,22 +1363,25 @@ class Module_ModuleController extends MVVController // Status $modul_ids = Modul::findByFilter($modul_filter); $template->set_attribute('status', Modul::findStatusByIds($modul_ids)); - $template->set_attribute('selected_status', $this->filter['mvv_modul.stat']); + $template->set_attribute('selected_status', $this->filter['mvv_modul.stat'] ?? ''); $template->set_attribute('status_array', $GLOBALS['MVV_MODUL']['STATUS']['values']); // Institutes $template->set_attribute('institute', Modul::getAllAssignedInstitutes('name', 'ASC', $modul_filter)); $template->set_attribute('institute_count', 'count_objects'); - $template->set_attribute('selected_institut', $this->filter['mvv_modul_inst.institut_id']); + $template->set_attribute('selected_institut', $this->filter['mvv_modul_inst.institut_id'] ?? ''); // Semesters $semesters = new SimpleCollection(Semester::getAll()); $semesters = $semesters->orderBy('beginn desc'); - $selected_semester = $semesters->findOneBy('beginn', $this->filter['start_sem.beginn']); + $selected_semester = null; + if (!empty($this->filter['start_sem.beginn'])) { + $selected_semester = $semesters->findOneBy('beginn', $this->filter['start_sem.beginn']); + } $template->set_attribute('semester', $semesters); - $template->set_attribute('selected_semester', $selected_semester->id); + $template->set_attribute('selected_semester', $selected_semester->id ?? ''); $template->set_attribute('default_semester', Semester::findCurrent()->id); $template->set_attribute('action', $this->set_filterURL()); diff --git a/app/controllers/module/mvv_controller.php b/app/controllers/module/mvv_controller.php index f54d8cf..e84b37c 100644 --- a/app/controllers/module/mvv_controller.php +++ b/app/controllers/module/mvv_controller.php @@ -67,6 +67,9 @@ abstract class MVVController extends AuthenticatedController { parent::before_filter($action, $args); + $this->sortby = ''; + $this->page_params_suffix = ''; + if (!static::IsVisible()) { throw new AccessDeniedException(); } @@ -204,7 +207,7 @@ abstract class MVVController extends AuthenticatedController 0, -10)) . '/'; } $to = $this->url_for($to); - list($url, $query) = explode('?', $to); + $url = explode('?', $to)[0]; $url = URLHelper::getUrl($url, $params, true); $template = $this->get_template_factory()->open('shared/js_url'); $template->set_attributes(['url' => $url]); @@ -308,7 +311,7 @@ abstract class MVVController extends AuthenticatedController } } else { $search_term = $search_term ?: $this->search_term; - $filter = $filter ?: $this->filter; + $filter = $filter ?? []; if ($search_term) { $this->search_result = $class_name::findBySearchTerm($search_term, $filter)->pluck('id'); diff --git a/app/controllers/shared/contacts.php b/app/controllers/shared/contacts.php index 188ade4..fb43669 100644 --- a/app/controllers/shared/contacts.php +++ b/app/controllers/shared/contacts.php @@ -61,7 +61,7 @@ class Shared_ContactsController extends MVVController // Nur Module von verantwortlichen Einrichtungen an denen der User // eine Rolle hat - if (!$this->filter['mvv_modul_inst.institut_id']) { + if (empty($this->filter['mvv_modul_inst.institut_id'])) { unset($this->filter['mvv_modul_inst.institut_id']); } if ($search_result) { @@ -69,7 +69,7 @@ class Shared_ContactsController extends MVVController } $own_institutes = MvvPerm::getOwnInstitutes(); - if ($this->filter['mvv_modul_inst.institut_id']) { + if (!empty($this->filter['mvv_modul_inst.institut_id'])) { if ($own_institutes) { $this->filter['mvv_modul_inst.institut_id'] = array_intersect( $this->filter['mvv_modul_inst.institut_id'], @@ -353,13 +353,17 @@ class Shared_ContactsController extends MVVController 'default_semester' => Semester::findCurrent()->id, 'institute' => MvvContact::getAllAssignedInstitutes('name', 'ASC', $institute_filter), 'institute_count' => 'count_objects', - 'selected_institut' => $this->filter['mvv_modul_inst.institut_id'], - 'zuordnungen' => MvvContact::getAllRelations($this->search_result['MvvContact']), - 'selected_zuordnung' => $this->filter['mvv_contacts_ranges.range_type'], + 'selected_institut' => $this->filter['mvv_modul_inst.institut_id'] ?? '', + 'zuordnungen' => !empty($this->search_result['MvvContact']) ? MvvContact::getAllRelations($this->search_result['MvvContact']) : [], + 'selected_zuordnung' => $this->filter['mvv_contacts_ranges.range_type'] ?? '', 'kategorien' => $this->findCategoriesByIds(), - 'selected_kategorie' => "{$this->filter['mvv_contacts_ranges.category']}__@type__{$this->filter['mvv_contacts_ranges.range_type']}", + 'selected_kategorie' => sprintf( + "%s__@type__%s", + $this->filter['mvv_contacts_ranges.category'] ?? '', + $this->filter['mvv_contacts_ranges.range_type'] ?? '' + ), 'status' => $this->findStatusByIds(), - 'selected_status' => $this->filter['mvv_contacts.contact_status'], + 'selected_status' => $this->filter['mvv_contacts.contact_status'] ?? '', 'status_array' => ['intern' => ['name' => _('Intern')], 'extern' => ['name' =>_('Extern')]], 'action' => $this->action_url('set_filter'), 'action_reset' => $this->action_url('reset_filter') diff --git a/app/controllers/studiengaenge/fachbereiche.php b/app/controllers/studiengaenge/fachbereiche.php index e1f6d6d..970c8d9 100644 --- a/app/controllers/studiengaenge/fachbereiche.php +++ b/app/controllers/studiengaenge/fachbereiche.php @@ -17,10 +17,12 @@ class Studiengaenge_FachbereicheController extends Studiengaenge_StudiengaengeCo public function index_action($studiengang_id = null) { PageLayout::setTitle(_('Studiengänge gruppiert nach Fachbereichen')); - + // Nur Fachbereiche an denen der User eine Rolle hat $perm_institutes = MvvPerm::getOwnInstitutes(); - + + $this->fachbereich_id = ''; + $this->initPageParams('fachbereiche'); $this->sortby = $this->sortby ?: 'name'; $this->order = $this->order ?: 'ASC'; @@ -29,7 +31,7 @@ class Studiengaenge_FachbereicheController extends Studiengaenge_StudiengaengeCo $this->order, ['Institute.Institut_id' => $perm_institutes] ); - + if ($studiengang_id) { $studiengang = Studiengang::find($studiengang_id); $this->details_action($studiengang->institut_id, $studiengang->id); @@ -37,10 +39,10 @@ class Studiengaenge_FachbereicheController extends Studiengaenge_StudiengaengeCo $this->setSidebar(); } - + /** * shows the studiengaenge of a fachbereich - * + * * @param string $fachbereich_id the id of the fachbereich */ public function details_action($fachbereich_id, $studiengang_id = null, $stgteil_bez_id = null) @@ -52,16 +54,16 @@ class Studiengaenge_FachbereicheController extends Studiengaenge_StudiengaengeCo throw new Trails_Exception(403); } } - + $this->parent_id = $this->fachbereich_id; $this->studiengaenge = Studiengang::findByFachbereich($this->fachbereich_id); if ($studiengang_id) { $this->studiengang_id = $studiengang_id; $this->set_studiengangteile($studiengang_id, $stgteil_bez_id); } - + if (Request::isXhr()) { - if ($this->studiengang) { + if (!empty($this->studiengang)) { if ($this->studiengang->typ == 'einfach') { $this->render_template('studiengaenge/studiengaenge/studiengangteile'); } else { @@ -78,4 +80,4 @@ class Studiengaenge_FachbereicheController extends Studiengaenge_StudiengaengeCo $this->perform_relayed('index'); } } -} \ No newline at end of file +} diff --git a/app/controllers/studiengaenge/fachbereichestgteile.php b/app/controllers/studiengaenge/fachbereichestgteile.php index a401d50..3f8e29b 100644 --- a/app/controllers/studiengaenge/fachbereichestgteile.php +++ b/app/controllers/studiengaenge/fachbereichestgteile.php @@ -11,13 +11,14 @@ class Studiengaenge_FachbereichestgteileController extends Studiengaenge_Studien { public function index_action() { + $this->details_id = null; PageLayout::setTitle(_('Studiengangteile gruppiert nach Fachbereichen')); - + $this->initPageParams(); $this->initSearchParams(); - + $search_result = $this->getSearchResult('StudiengangTeil'); - + // Nur Studiengangteile mit zugeordnetem Fach an dessen verantwortlicher // Einrichtung der User eine Rolle hat $filter['mvv_fach_inst.institut_id'] = MvvPerm::getOwnInstitutes(); @@ -36,10 +37,10 @@ class Studiengaenge_FachbereichestgteileController extends Studiengaenge_Studien $this->show_sidebar_search = true; $this->setSidebar(); } - + /** * Shows the studiengangteile of a Fachbereich. - * + * * @param string $fachbereich_id the id of the Fachbereich */ public function details_fachbereich_action($fachbereich_id) @@ -57,7 +58,7 @@ class Studiengaenge_FachbereichestgteileController extends Studiengaenge_Studien $this->performe_relayed('index'); } } - + public function stgteil_fachbereich_action($fachbereich_id) { $fachbereich = Institute::find($fachbereich_id); @@ -69,4 +70,4 @@ class Studiengaenge_FachbereichestgteileController extends Studiengaenge_Studien throw new Trails_Exception(404); } } -} \ No newline at end of file +} diff --git a/app/controllers/studiengaenge/faecher.php b/app/controllers/studiengaenge/faecher.php index f5bbc75..7674dde 100644 --- a/app/controllers/studiengaenge/faecher.php +++ b/app/controllers/studiengaenge/faecher.php @@ -11,12 +11,13 @@ class Studiengaenge_FaecherController extends Studiengaenge_StudiengangteileCont { public function index_action() { + $this->details_id = null; PageLayout::setTitle(_('Verwaltung der Studiengangteile - Studiengangteile gruppiert nach Fächern')); $this->initPageParams(); $this->initSearchParams(); - + $search_result = $this->getSearchResult('StudiengangTeil'); - + // Nur Studiengangteile mit zugeordnetem Fach an dessen verantwortlicher // Einrichtung der User eine Rolle hat $filter['mvv_fach_inst.institut_id'] = MvvPerm::getOwnInstitutes(); @@ -51,10 +52,10 @@ class Studiengaenge_FaecherController extends Studiengaenge_StudiengangteileCont $this->show_sidebar_search = true; $this->setSidebar(); } - + /** * Shows the studiengangteile of a Fach. - * + * * @param string $fach_id the id of the Fach */ public function details_fach_action($fach_id) @@ -77,7 +78,7 @@ class Studiengaenge_FaecherController extends Studiengaenge_StudiengangteileCont $this->perform_relayed('index'); } } - + public function stgteil_fach_action($fach_id) { $fach = Fach::find($fach_id); @@ -89,4 +90,4 @@ class Studiengaenge_FaecherController extends Studiengaenge_StudiengangteileCont } $this->perform_relayed('stgteil'); } -} \ No newline at end of file +} diff --git a/app/controllers/studiengaenge/shared_version.php b/app/controllers/studiengaenge/shared_version.php index 8179027..91869ca 100644 --- a/app/controllers/studiengaenge/shared_version.php +++ b/app/controllers/studiengaenge/shared_version.php @@ -308,8 +308,7 @@ abstract class SharedVersionController extends MVVController $this->version = StgteilVersion::find($version_id); // search for modules so status of version doesn't matter - $filter = $this->filter; - unset($filter['mvv_stgteilversion.stat']); + $filter = []; $condition = ModuleManagementModel::getFilterSql($filter); $query = "SELECT mvv_modul.modul_id, @@ -681,18 +680,17 @@ abstract class SharedVersionController extends MVVController return; } $this->abschnitt_id = $this->abschnitt->id; - if(!$this->version) { + if(empty($this->version)) { $this->version = $this->abschnitt->getVersion(); } $this->version_id = $this->version->getId(); $this->assignments = StgteilabschnittModul::findByStgteilAbschnitt( $this->abschnitt->getId(), - $this->filter + [] ); // search for modules so status of version doesn't matter - $filter = $this->filter; - unset($filter['mvv_stgteilversion.stat']); + $filter = []; $query = " SELECT mvv_modul.modul_id, CONCAT(mvv_modul_deskriptor.bezeichnung, ', ', IF(ISNULL(mvv_modul.code), '', mvv_modul.code), diff --git a/app/controllers/studiengaenge/stgteilbezeichnungen.php b/app/controllers/studiengaenge/stgteilbezeichnungen.php index 3f73876..4a23069 100644 --- a/app/controllers/studiengaenge/stgteilbezeichnungen.php +++ b/app/controllers/studiengaenge/stgteilbezeichnungen.php @@ -16,6 +16,7 @@ class Studiengaenge_StgteilbezeichnungenController extends MVVController public function index_action() { + $this->bezeichnung_id = ''; PageLayout::setTitle(_('Alle Studiengangteil-Bezeichnungen')); $this->stgteilbezeichnungen = StgteilBezeichnung::getAllEnriched(); $this->setSidebar(); diff --git a/app/controllers/studiengaenge/studiengaenge.php b/app/controllers/studiengaenge/studiengaenge.php index 7179044..e0dec62 100644 --- a/app/controllers/studiengaenge/studiengaenge.php +++ b/app/controllers/studiengaenge/studiengaenge.php @@ -357,6 +357,7 @@ class Studiengaenge_StudiengaengeController extends MVVController { $this->set_details_studiengang($studiengang_id); $this->stgteil_bez_id = $stgteil_bez_id; + $this->stg_bez = null; $this->add_stgteil(); if ($stgteil_bez_id) { $this->stg_bez = StgteilBezeichnung::find($stgteil_bez_id); @@ -1047,31 +1048,32 @@ class Studiengaenge_StudiengaengeController extends MVVController $template_factory = $this->get_template_factory(); $studiengang_ids = Studiengang::findByFilter($this->filter); - if ($this->search_result['Studiengang']) { + if (!empty($this->search_result['Studiengang'])) { $studiengang_ids = array_intersect($studiengang_ids, $this->search_result['Studiengang']); } // Semesters $semesters = new SimpleCollection(Semester::getAll()); $semesters = $semesters->orderBy('beginn desc'); + $selected_semester = $semesters->findOneBy('beginn', $this->filter['start_sem.beginn']); $filter_template = $template_factory->render('shared/filter', [ 'semester' => $semesters, - 'selected_semester' => $semesters->findOneBy('beginn', $this->filter['start_sem.beginn'])->id, + 'selected_semester' => $selected_semester ? $selected_semester->id : '', 'default_semester' => Semester::findCurrent()->id, 'status' => Studiengang::findStatusByIds($studiengang_ids), - 'selected_status' => $this->filter['mvv_studiengang.stat'], + 'selected_status' => $this->filter['mvv_studiengang.stat'] ?? '', 'status_array' => $GLOBALS['MVV_STUDIENGANG']['STATUS']['values'], 'kategorien' => AbschlussKategorie::findByStudiengaenge($studiengang_ids), - 'selected_kategorie' => $this->filter['mvv_abschl_zuord.kategorie_id'], + 'selected_kategorie' => $this->filter['mvv_abschl_zuord.kategorie_id'] ?? '', 'abschluesse' => Abschluss::findByStudiengaenge($studiengang_ids), - 'selected_abschluss' => $this->filter['abschluss.abschluss_id'], + 'selected_abschluss' => $this->filter['abschluss.abschluss_id'] ?? '', 'institute' => Studiengang::getAllAssignedInstitutes([ 'mvv_studiengang.studiengang_id' => $studiengang_ids, ]), 'selected_institut' => $this->filter['mvv_studiengang.institut_id'], 'fachbereiche' => Fach::getAllAssignedInstitutes($studiengang_ids), - 'selected_fachbereich' => $this->filter['mvv_fach_inst.institut_id'], + 'selected_fachbereich' => $this->filter['mvv_fach_inst.institut_id'] ?? '', 'action' => $this->action_url('set_filter'), 'action_reset' => $this->action_url('reset_filter') ]); diff --git a/app/controllers/studiengaenge/versionen.php b/app/controllers/studiengaenge/versionen.php index 6868ee5..ec8cf44 100644 --- a/app/controllers/studiengaenge/versionen.php +++ b/app/controllers/studiengaenge/versionen.php @@ -32,14 +32,14 @@ class Studiengaenge_VersionenController extends SharedVersionController switch ($step) { case 'index' : $this->chooser_filter['fachbereich'] = - Request::option('id', $this->chooser_filter['fachbereich']); + Request::option('id', !empty($this->chooser_filter['fachbereich'])); $this->chooser_filter['stgteile'] = null; $this->chooser_faecher_fachbereich(); $list = 'faecher_fachbereich'; break; case 'faecher_fachbereich' : $this->chooser_filter['fach'] = - Request::option('id', $this->chooser_filter['fach']); + Request::option('id', !empty($this->chooser_filter['fach'])); $this->chooser_filter['stgteile'] = null; $this->chooser_stgteile_fach(); $list = 'stgteile_fach'; @@ -53,11 +53,13 @@ class Studiengaenge_VersionenController extends SharedVersionController throw new Trails_Exception(400); } $this->name = $list; - foreach ((array) $this->lists[$list]['elements'] as $key => $element) { - $this->list['elements'][$key]['name'] = htmlReady($element['name']); + if (!empty($this->lists[$list]['elements'])) { + foreach ((array)$this->lists[$list]['elements'] as $key => $element) { + $this->list['elements'][$key]['name'] = htmlReady($element['name']); + } } $this->list['headline'] = $this->lists[$list]['headline']; - if ($this->lists[$list]['stop']) { + if (!empty($this->lists[$list]['stop'])) { $this->list['stop'] = 1; } $this->sessSet('chooser_filter', $this->chooser_filter); @@ -82,12 +84,15 @@ class Studiengaenge_VersionenController extends SharedVersionController protected function chooser_faecher_fachbereich() { - $faecher = Fach::findByFachbereich($this->chooser_filter['fachbereich'], true); + $faecher = []; + if (!empty($this->chooser_filter['fachbereich'])) { + $faecher = Fach::findByFachbereich($this->chooser_filter['fachbereich'], true); + } foreach ($faecher as $fach) { $this->lists['faecher_fachbereich']['elements'][$fach->id] = ['name' => $fach->name]; } $this->lists['faecher_fachbereich']['headline'] = _('Fach'); - $this->lists['faecher_fachbereich']['selected'] = $this->chooser_filter['fach']; + $this->lists['faecher_fachbereich']['selected'] = $this->chooser_filter['fach'] ?? ''; } protected function chooser_studiengaenge_kategorie() @@ -148,9 +153,12 @@ class Studiengaenge_VersionenController extends SharedVersionController protected function chooser_stgteile_fach() { - $stgteile = StudiengangTeil::findByFach( - $this->chooser_filter['fach'], null, 'zusatz,kp', 'ASC' - ); + $stgteile = []; + if (!empty($this->chooser_filter['fach'])) { + $stgteile = StudiengangTeil::findByFach( + $this->chooser_filter['fach'], null, 'zusatz,kp', 'ASC' + ); + } foreach ($stgteile as $stgteil) { $this->lists['stgteile_fach']['elements'][$stgteil->id] = [ 'name' => $stgteil->getDisplayName() @@ -158,7 +166,7 @@ class Studiengaenge_VersionenController extends SharedVersionController } $this->lists['stgteile_fach']['headline'] = _('Studiengangteil'); $this->lists['stgteile_fach']['stop'] = 1; - $this->lists['stgteile_fach']['selected'] = $this->chooser_filter['stgteil']; + $this->lists['stgteile_fach']['selected'] = $this->chooser_filter['stgteil'] ?? ''; } protected function chooser_index() @@ -169,7 +177,7 @@ class Studiengaenge_VersionenController extends SharedVersionController $this->lists['index']['elements'][$key] = ['name' => $fachbereich['name']]; } $this->lists['index']['headline'] = _('Fachbereich'); - $this->lists['index']['selected'] = $this->chooser_filter['fachbereich']; + $this->lists['index']['selected'] = $this->chooser_filter['fachbereich'] ?? ''; } /** @@ -203,7 +211,7 @@ class Studiengaenge_VersionenController extends SharedVersionController public function index_action($stgteil_id = null) { - $stgteil_id = Request::option('id', $stgteil_id ?: $this->chooser_filter['stgteil']); + $stgteil_id = Request::option('id', $stgteil_id ?? $this->chooser_filter['stgteil'] ?? ''); PageLayout::setTitle(_('Versionen des gewählten Studiengangteils')); if ($stgteil_id) { $this->stgteil = StudiengangTeil::find($stgteil_id); @@ -275,7 +283,7 @@ class Studiengaenge_VersionenController extends SharedVersionController $this->action_url('reset'), Icon::create('refresh') ); - if ($this->chooser_filter['stgteil']) { + if (!empty($this->chooser_filter['stgteil'])) { $stgteil = StudiengangTeil::find($this->chooser_filter['stgteil']); if ($stgteil && MvvPerm::haveFieldPermVersionen($stgteil, MvvPerm::PERM_CREATE)) { $widget->addLink( @@ -332,7 +340,7 @@ class Studiengaenge_VersionenController extends SharedVersionController 'semester' => $semesters, 'selected_semester' => $semesters->findOneBy('beginn', $this->filter['start_sem.beginn'])->id, 'status' => $status_results, - 'selected_status' => $this->filter['mvv_stgteilversion.stat'], + 'selected_status' => $this->filter['mvv_stgteilversion.stat'] ?? '', 'status_array' => $GLOBALS['MVV_STGTEILVERSION']['STATUS']['values'], 'action' => $this->action_url('set_filter'), 'action_reset' => $this->action_url('reset_filter') diff --git a/app/views/fachabschluss/abschluesse/index.php b/app/views/fachabschluss/abschluesse/index.php index 60fac2a..99422ab 100644 --- a/app/views/fachabschluss/abschluesse/index.php +++ b/app/views/fachabschluss/abschluesse/index.php @@ -48,9 +48,6 @@ - id) : ?> - render_partial('fachabschluss/abschluesse/details', compact('abschluss')) ?> - MVVController::$items_per_page) : ?> @@ -67,7 +64,7 @@ $pagination->set_attribute('pagelink', $page_link); echo $pagination->render('shared/pagechooser'); ?> - + diff --git a/app/views/fachabschluss/kategorien/index.php b/app/views/fachabschluss/kategorien/index.php index 5eb1ada..7cfa6a5 100644 --- a/app/views/fachabschluss/kategorien/index.php +++ b/app/views/fachabschluss/kategorien/index.php @@ -57,9 +57,6 @@ - id) : ?> - render_partial('fachabschluss/kategorien/details', compact('kategorie')) ?> - diff --git a/app/views/module/module/modul.php b/app/views/module/module/modul.php index b2a9e72..2fa0cdd 100644 --- a/app/views/module/module/modul.php +++ b/app/views/module/module/modul.php @@ -65,7 +65,7 @@ if ($GLOBALS['MVV_MODUL']['SPRACHE']['default'] != $display_language) {