diff --git a/app/controllers/admission/courseset.php b/app/controllers/admission/courseset.php index aa688e8845b1f628e966a212eeb32012c7e8970e..a37ce7dee069a1205d93659761c0114bdb56589f 100644 --- a/app/controllers/admission/courseset.php +++ b/app/controllers/admission/courseset.php @@ -86,15 +86,15 @@ class Admission_CoursesetController extends AuthenticatedController $filter['rule_types'] = array_keys($this->current_rule_types); $this->myInstitutes = CoursesetModel::getInstitutes($filter); if (!$this->current_institut_id) { - if ($this->myInstitutes['all']['num_sets'] < 100) { + if ($this->myInstitutes['all']['count'] < 100) { $this->current_institut_id = 'all'; } else { - next($this->myInstitutes); - $this->current_institut_id = key($this->myInstitutes); - reset($this->myInstitutes); + list($this->current_institut_id) = reset($this->myInstitutes); } } - list($institut_id, $all) = explode('_', $this->current_institut_id); + $chunks = explode('_', $this->current_institut_id); + $institut_id = $chunks[0]; + $all = $chunks[1] ?? null; if ($institut_id == 'all') { $institutes = array_keys($this->myInstitutes); } else if ($all == 'all') { @@ -105,7 +105,7 @@ class Admission_CoursesetController extends AuthenticatedController } foreach ($institutes as $one) { - if ($this->myInstitutes[$one]['num_sets']) { + if ($this->myInstitutes[$one]['count']) { $sets = CourseSet::getCoursesetsByInstituteId($one, $filter); foreach ($sets as $set) { $courseset = new CourseSet($set['set_id']); diff --git a/app/controllers/admission/restricted_courses.php b/app/controllers/admission/restricted_courses.php index f611f0941033a16b0b0588650b9195abb8c62633..b790088bcf17215cadbe4faf7d4134c85bde431e 100644 --- a/app/controllers/admission/restricted_courses.php +++ b/app/controllers/admission/restricted_courses.php @@ -92,8 +92,8 @@ class Admission_RestrictedCoursesController extends AuthenticatedController $row[] = (int)$course['count_prelim']; $row[] = (int)$course['count_waiting']; $row[] = $course['distribution_time'] ? strftime('%x %R', $course['distribution_time']) : ''; - $row[] = $course['start_time'] ? strftime('%x %R', $course['start_time']) : ''; - $row[] = $course['end_time'] ? strftime('%x %R', $course['end_time']) : ''; + $row[] = isset($course['start_time']) ? strftime('%x %R', $course['start_time']) : ''; + $row[] = isset($course['end_time']) ? strftime('%x %R', $course['end_time']) : ''; $data[] = $row; } @@ -119,7 +119,9 @@ class Admission_RestrictedCoursesController extends AuthenticatedController { global $perm, $user; - list($institut_id, $all) = explode('_', $this->current_institut_id); + $chunks = explode('_', $this->current_institut_id); + $institut_id = $chunks[0]; + $all = $chunks[1] ?? null; // Prepare count statements $query = "SELECT count(*) FROM seminar_user @@ -172,9 +174,9 @@ class Admission_RestrictedCoursesController extends AuthenticatedController $count1_statement->execute([$seminar_id]); $counts = $count1_statement->fetch(PDO::FETCH_ASSOC); - $ret[$seminar_id]['count_prelim'] = (int)$counts['count2']; - $ret[$seminar_id]['count_waiting'] = (int)$counts['count3']; - if (!$csets[$row['set_id']]) { + $ret[$seminar_id]['count_prelim'] = (int) ($counts['count2'] ?? 0); + $ret[$seminar_id]['count_waiting'] = (int) ($counts['count3'] ?? 0); + if (!isset($csets[$row['set_id']])) { $csets[$row['set_id']] = new CourseSet($row['set_id']); } $cs = $csets[$row['set_id']]; @@ -199,7 +201,7 @@ class Admission_RestrictedCoursesController extends AuthenticatedController global $perm, $user; // Prepare institute statement - $query = "SELECT a.Institut_id, a.Name, COUNT(courseset_rule.type) AS num_sem + $query = "SELECT a.Institut_id, a.Name, COUNT(courseset_rule.type) AS count FROM Institute AS a LEFT JOIN seminare ON (seminare.Institut_id = a.Institut_id) LEFT JOIN semester_courses ON (seminare.Seminar_id = semester_courses.course_id) @@ -209,7 +211,7 @@ class Admission_RestrictedCoursesController extends AuthenticatedController AND a.Institut_id != fakultaets_id {$seminare_condition} GROUP BY a.Institut_id - ORDER BY a.Name, num_sem DESC"; + ORDER BY a.Name, count DESC"; $institute_statement = DBManager::get()->prepare($query); $parameters = []; @@ -226,9 +228,9 @@ class Admission_RestrictedCoursesController extends AuthenticatedController $_my_inst['all'] = [ 'name' => _('alle'), 'is_fak' => true, - 'num_sem' => $num_sem, + 'count' => $num_sem, ]; - $query = "SELECT a.Institut_id, a.Name, 1 AS is_fak, COUNT(courseset_rule.type) AS num_sem + $query = "SELECT a.Institut_id, a.Name, 1 AS is_fak, COUNT(courseset_rule.type) AS count FROM Institute AS a LEFT JOIN seminare ON (seminare.Institut_id = a.Institut_id) LEFT JOIN semester_courses ON (seminare.Seminar_id = semester_courses.course_id) @@ -237,9 +239,9 @@ class Admission_RestrictedCoursesController extends AuthenticatedController WHERE a.Institut_id = fakultaets_id {$seminare_condition} GROUP BY a.Institut_id - ORDER BY is_fak, Name, num_sem DESC"; + ORDER BY is_fak, Name, count DESC"; } else { - $query = "SELECT s.inst_perms,b.Institut_id, b.Name, b.Institut_id = b.fakultaets_id AS is_fak, COUNT( courseset_rule.type ) AS num_sem + $query = "SELECT s.inst_perms,b.Institut_id, b.Name, b.Institut_id = b.fakultaets_id AS is_fak, COUNT( courseset_rule.type ) AS count FROM user_inst AS s LEFT JOIN Institute AS b USING ( Institut_id ) LEFT JOIN seminare ON ( seminare.Institut_id = b.Institut_id) @@ -250,7 +252,7 @@ class Admission_RestrictedCoursesController extends AuthenticatedController AND s.inst_perms IN ('admin', 'dozent') {$seminare_condition} GROUP BY b.Institut_id - ORDER BY is_fak, Name, num_sem DESC"; + ORDER BY is_fak, Name, count DESC"; $parameters[] = $user->id; } $statement = DBManager::get()->prepare($query); @@ -259,38 +261,37 @@ class Admission_RestrictedCoursesController extends AuthenticatedController foreach ($temp as $row) { $_my_inst[$row['Institut_id']] = [ - 'name' => $row['Name'], - 'is_fak' => $row['is_fak'], - 'num_sem' => $row['num_sem'] + 'name' => $row['Name'], + 'is_fak' => $row['is_fak'], + 'count' => $row['count'], ]; - if ($row["is_fak"] && $row["inst_perms"] != 'dozent') { + if ($row["is_fak"] && (!isset($row['inst_perms']) || $row['inst_perms'] !== 'dozent')) { $institute_statement->execute([$row['Institut_id']]); $alle = $institute_statement->fetchAll(); if (count($alle)) { $_my_inst[$row['Institut_id'] . '_all'] = [ - 'name' => sprintf(_('[Alle unter %s]'), $row['Name']), - 'is_fak' => 'all', - 'num_sem' => $row['num_sem'] + 'name' => sprintf(_('[Alle unter %s]'), $row['Name']), + 'is_fak' => 'all', + 'count' => $row['count'] ]; $num_inst = 0; - $num_sem_alle = $row['num_sem']; - + $num_sem_alle = $row['count']; foreach ($alle as $institute) { - if(!$_my_inst[$institute['Institut_id']]) { + if(empty($_my_inst[$institute['Institut_id']])) { $num_inst += 1; - $num_sem_alle += $institute['num_sem']; + $num_sem_alle += $institute['count']; } $_my_inst[$institute['Institut_id']] = [ - 'name' => $institute['Name'], - 'is_fak' => 0, - 'num_sem' => $institute["num_sem"] + 'name' => $institute['Name'], + 'is_fak' => 0, + 'count' => $institute['count'] ]; } $_my_inst[$row['Institut_id']]['num_inst'] = $num_inst; $_my_inst[$row['Institut_id'] . '_all']['num_inst'] = $num_inst; - $_my_inst[$row['Institut_id'] . '_all']['num_sem'] = $num_sem_alle; + $_my_inst[$row['Institut_id'] . '_all']['count'] = $num_sem_alle; } } } diff --git a/app/controllers/studip_controller.php b/app/controllers/studip_controller.php index 1190416a1303f42010ead09271356670c399eb29..0347b37ea193c84b70230a0543d1540e6abc5d40 100644 --- a/app/controllers/studip_controller.php +++ b/app/controllers/studip_controller.php @@ -172,18 +172,18 @@ abstract class StudipController extends Trails_Controller $reflection = new ReflectionMethod($this, $this->current_action . '_action'); $parameters = $reflection->getParameters(); foreach ($parameters as $i => $parameter) { - $class_type = $parameter->getClass(); + $class_type = $parameter->getType(); if (!$class_type - || !class_exists($class_type->name) - || !is_a($class_type->name, SimpleORMap::class, true)) + || !class_exists($class_type->getName()) + || !is_a($class_type->getName(), SimpleORMap::class, true)) { continue; } $types[$i] = 'sorm'; $class_infos[$i] = [ - 'model' => $class_type->name, + 'model' => $class_type->getName(), 'var' => $parameter->getName(), 'optional' => $parameter->isOptional(), ]; diff --git a/app/views/admin/user/index.php b/app/views/admin/user/index.php index 0eb454079816f7da2fad156cd89cec72cd6da62d..cab7b7b2f3317d26dfbc81541cd008a345f21e43 100644 --- a/app/views/admin/user/index.php +++ b/app/views/admin/user/index.php @@ -67,7 +67,7 @@ use Studip\Button, Studip\LinkButton; </label> </fieldset> - <fieldset class="collapsable <?= (!$advanced) ? 'collapsed' : '' ?>"> + <fieldset class="collapsable <? if (empty($advanced)) echo 'collapsed'; ?>"> <legend><?= _('Erweiterte Suche') ?></legend> <label for="institute" class="col-3"> diff --git a/app/views/admission/courseset/_institute_choose.php b/app/views/admission/courseset/_institute_choose.php index e684de6a44f7fc232fa691def8b3d03dfcaf37ea..7fcc8da9f5ec5074df07debfcbd8a37c91aedbdf 100644 --- a/app/views/admission/courseset/_institute_choose.php +++ b/app/views/admission/courseset/_institute_choose.php @@ -4,24 +4,10 @@ <fieldset> <legend><?= _('Anmeldesets auflisten') ?></legend> - <label> - <?=_("Einrichtung:")?> - <select name="choose_institut_id" class="nested-select"> - <? while (list($institut_id,$institute) = each($myInstitutes)) : ?> - <option value="<?= $institut_id ?>" <?=($current_institut_id == $institut_id ? 'selected' : '')?> class="<?= $institute['is_fak'] ? 'nested-item-header' : 'nested-item' ?>"> - <?= htmlReady(my_substr($institute["name"] . ' (' . $institute["num_sets"] . ')',0,100));?> - </option> - <? if ($institute['is_fak'] === 'all') : ?> - <? $num_inst = $institute['num_inst']; for ($i = 0; $i < $num_inst; ++$i) : ?> - <? list($institut_id,$institute) = each($myInstitutes);?> - <option value="<?= $institut_id?>" <?=($current_institut_id == $institut_id ? 'selected' : '')?> class="nested-item"> - <?= htmlReady(my_substr($institute["name"] . ' (' . $institute["num_sets"] . ')',0,100));?> - </option> - <? endfor ?> - <? endif ?> - <? endwhile ?> - </select> - </label> + <?= $this->render_partial('admission/institute-select.php', [ + 'institutes' => $myInstitutes, + 'current_institut_id' => $current_institut_id, + ]) ?> <label> <?=_("Präfix des Namens:")?> diff --git a/app/views/admission/institute-select.php b/app/views/admission/institute-select.php new file mode 100644 index 0000000000000000000000000000000000000000..e9b9ed64ec50d07c22a89c1afbd2221876026f48 --- /dev/null +++ b/app/views/admission/institute-select.php @@ -0,0 +1,23 @@ +<? reset($institutes); ?> +<label> + <?=_("Einrichtung:")?> + <select name="choose_institut_id" class="nested-select"> + <? while (($institut_id = key($institutes)) && ($institute = current($institutes))): ?> + <option value="<?= $institut_id ?>" <? if ($current_institut_id === $institut_id) echo 'selected'; ?> class="<?= $institute['is_fak'] ? 'nested-item-header' : 'nested-item' ?>"> + <?= htmlReady(my_substr($institute["name"] . ' (' . $institute["count"] . ')',0,100));?> + </option> + <? if ($institute['is_fak'] === 'all') : ?> + <? $num_inst = $institute['num_inst']; for ($i = 0; $i < $num_inst; ++$i) : ?> + <? + $institute = next($institutes); + $institut_id = key($institutes); + ?> + <option value="<?= $institut_id?>" <?=($current_institut_id == $institut_id ? 'selected' : '')?> class="nested-item"> + <?= htmlReady(my_substr($institute['name'] . ' (' . $institute['count'] . ')',0,100));?> + </option> + <? endfor ?> + <? endif ?> + <? next($institutes); ?> + <? endwhile; ?> + </select> +</label> diff --git a/app/views/admission/restricted_courses/_institute_choose.php b/app/views/admission/restricted_courses/_institute_choose.php index 9c53d5f5ce99f9c8d7f14971baa6394c487f047f..d6bb8ba088e0cb0f1db531b7bc903906dd3af76c 100644 --- a/app/views/admission/restricted_courses/_institute_choose.php +++ b/app/views/admission/restricted_courses/_institute_choose.php @@ -3,24 +3,10 @@ <fieldset> <legend><?= _('Anmeldesets auflisten') ?></legend> - <label> - <?=_("Einrichtung:")?> - <select name="choose_institut_id" class="nested-select"> - <? while (list($institut_id,$institute) = each($my_inst)) : ?> - <option value="<?= $institut_id?>" <?=($current_institut_id == $institut_id ? 'selected' : '')?> class="<?= $institute['is_fak'] ? 'nested-item-header' : 'nested-item' ?>"> - <?= htmlReady(my_substr($institute["name"] . ' (' . $institute["num_sem"] . ')',0,100));?> - </option> - <? if ($institute["is_fak"] == 'all') : ?> - <? $num_inst = $institute["num_inst"]; for ($i = 0; $i < $num_inst; ++$i) : ?> - <? list($institut_id,$institute) = each($my_inst);?> - <option value="<?= $institut_id?>" <?=($current_institut_id == $institut_id ? 'selected' : '')?> class="nested-item"> - <?= htmlReady(my_substr($institute["name"] . ' (' . $institute["num_sem"] . ')',0,100));?> - </option> - <? endfor ?> - <? endif ?> - <? endwhile ?> - </select> - </label> + <?= $this->render_partial('admission/institute-select.php', [ + 'institutes' => $my_inst, + 'current_institut_id' => $current_institut_id, + ]) ?> <label> <?=_("Präfix des Veranstaltungsnamens / Nummer:")?> diff --git a/app/views/admission/restricted_courses/index.php b/app/views/admission/restricted_courses/index.php index 096e825033da7993841b6f78b044fbd7c44a97b5..615a50155237084bb6660cc2fb03003f390ab6f2 100644 --- a/app/views/admission/restricted_courses/index.php +++ b/app/views/admission/restricted_courses/index.php @@ -36,11 +36,11 @@ <td style="white-space:nowrap" data-sort-value="<?= (int) $course['distribution_time']?>"> <?= htmlReady($course['distribution_time'] ? strftime('%x %R', $course['distribution_time']) : '-') ?> </td> - <td style="white-space:nowrap" data-sort-value="<?= (int) $course['start_time']?>"> - <?= htmlReady($course['start_time'] ? strftime('%x %R', $course['start_time']) : '-') ?> + <td style="white-space:nowrap" data-sort-value="<?= (int) ($course['start_time'] ?? null) ?>"> + <?= htmlReady(isset($course['start_time']) ? strftime('%x %R', $course['start_time']) : '-') ?> </td> - <td style="white-space:nowrap" data-sort-value="<?= (int) $course['end_time']?>"> - <?= htmlReady($course['end_time'] ? strftime('%x %R', $course['end_time']) : '-') ?> + <td style="white-space:nowrap" data-sort-value="<?= (int) ($course['end_time'] ?? null) ?>"> + <?= htmlReady(isset($course['end_time']) ? strftime('%x %R', $course['end_time']) : '-') ?> </td> </tr> <? endforeach ?> diff --git a/app/views/admission/user_list/configure.php b/app/views/admission/user_list/configure.php index 391e758cc148e5e2b56526d9313988ed657d4499..9338f452161d003ef77c25ed49267dc00fbf5b1f 100644 --- a/app/views/admission/user_list/configure.php +++ b/app/views/admission/user_list/configure.php @@ -12,7 +12,7 @@ Helpbar::get()->addPlainText(_('Info'), "Stellen Sie hier ein, wie die Chancen b "bevorzugt."); ?> <?= $this->render_partial('dialog/confirm_dialog') ?> -<?= $error ? $error : '' ?> +<?= $error ?? '' ?> <form class="default" action="<?= $controller->url_for('admission/userlist/save', $userlist_id) ?>" method="post"> <?= CSRFProtection::tokenTag() ?> diff --git a/app/views/course/feedback/_add_edit_entry_form.php b/app/views/course/feedback/_add_edit_entry_form.php index 80bec1ffcd33538bb0f17d05f9c23169b11aa2ae..57bf7d8426744d2419da2a3850fba3edeb7534c5 100644 --- a/app/views/course/feedback/_add_edit_entry_form.php +++ b/app/views/course/feedback/_add_edit_entry_form.php @@ -1,22 +1,29 @@ +<?php +/** + * @var FeedbackElement $feedback + * @var FeedbackEntry|null $entry + */ +?> <? if ($feedback->mode != 0) : ?> <?php - $n = 5; - if ($feedback->mode == 2) { - $n = 10; - } - ?> + $n = 5; + if ($feedback->mode == 2) { + $n = 10; + } +?> <div class="rating"> <p><?= _('Bewertung') ?></p> <? for ($i = 1; $i < $n+1; $i++) : ?> - <label class="star-rating undecorated <?= $i <= $entry->rating || $i === 1 ? ' checked' : '' ?>"> + <label class="star-rating undecorated <?= (isset($entry) && $i <= $entry->rating) || $i === 1 ? ' checked' : '' ?>"> <input class="star-rating-input" name="rating" value="<?= $i ?>" type="radio" - <?= $i == $entry->rating ? ' selected' : '' ?> required/> - <?= Icon::create('star', 'clickable') ?> + required + <? if (isset($entry) && $i == $entry->rating) echo 'selected'; ?>> + <?= Icon::create('star') ?> </label> <? endfor; ?> </div> <? endif; ?> -<? if ($feedback->commentable == 1) : ?> +<? if ($feedback->commentable) : ?> <label> <?= _('Kommentar') ?> <textarea name="comment"><?= htmlReady($entry->comment) ?></textarea> diff --git a/app/views/course/forum/index/_post.php b/app/views/course/forum/index/_post.php index 864c796d6a05b895b8ce815136a8af32e8276c40..538b98d42d39d61a40423dd2876f1c45fba5e723 100644 --- a/app/views/course/forum/index/_post.php +++ b/app/views/course/forum/index/_post.php @@ -70,7 +70,7 @@ <span data-show-topic="<?= $post['topic_id'] ?>"> <a href="<?= $controller->link_for('course/forum/index/index/' . $post['topic_id'] .'?'. http_build_query(['highlight' => $highlight]) ) ?>#<?= $post['topic_id'] ?>"> - <? if ($show_full_path) : ?> + <? if (!empty($show_full_path)) : ?> <?= ForumHelpers::highlight(htmlReady(implode(' >> ', ForumEntry::getFlatPathToPosting($post['topic_id']))), $highlight) ?> <? elseif ($post['depth'] < 3) : ?> <span data-topic-name="<?= $post['topic_id'] ?>"> diff --git a/app/views/course/forum/index/index.php b/app/views/course/forum/index/index.php index 029b93d92437d7ceee41dcffbe1c603600741a85..2f8873593682469e72a23c26aac02ca9dca43789 100644 --- a/app/views/course/forum/index/index.php +++ b/app/views/course/forum/index/index.php @@ -141,7 +141,7 @@ $pagechooser = null; .'/%s/?searchfor=' . $searchfor . (!empty($options) ? '&'. http_build_query($options) : '' )))) ]); ?> <? endif ?> - <?= $link ?> + <?= $link ?? '' ?> </div> <? endif ?> diff --git a/app/views/questionnaire/evaluate.php b/app/views/questionnaire/evaluate.php index f33162fcc31cb39dd0f9dc5bd4e015d98ec4acb9..7a8def7b6c9957d200df4b273e0f0e6e68661cea 100644 --- a/app/views/questionnaire/evaluate.php +++ b/app/views/questionnaire/evaluate.php @@ -34,25 +34,25 @@ </script> <div data-dialog-button style="max-height: none; opacity: 1; text-align: center;"> <? if ($questionnaire->isAnswerable() && $questionnaire['editanswers']) : ?> - <?= \Studip\LinkButton::create($questionnaire->isAnswered() ? _("Antwort ändern") : _("Beantworten"), URLHelper::getURL("dispatch.php/questionnaire/answer/".$questionnaire->getId(), ['range_type' => $range_type, 'range_id' => $range_id]), ['data-dialog' => '']) ?> + <?= \Studip\LinkButton::create($questionnaire->isAnswered() ? _("Antwort ändern") : _("Beantworten"), URLHelper::getURL("dispatch.php/questionnaire/answer/".$questionnaire->getId()), ['data-dialog' => '']) ?> <? endif ?> <? if ($questionnaire->isEditable()) : ?> <?= \Studip\LinkButton::create(_("Ergebnisse herunterladen"), URLHelper::getURL("dispatch.php/questionnaire/export/".$questionnaire->getId())) ?> <? endif ?> <? if ($questionnaire->isEditable() && (!$questionnaire->isRunning() || !$questionnaire->countAnswers())) : ?> - <?= \Studip\LinkButton::create(_("Bearbeiten"), URLHelper::getURL("dispatch.php/questionnaire/edit/".$questionnaire->getId(), ['range_type' => $range_type, 'range_id' => $range_id]), ['data-dialog' => '']) ?> + <?= \Studip\LinkButton::create(_("Bearbeiten"), URLHelper::getURL("dispatch.php/questionnaire/edit/".$questionnaire->getId()), ['data-dialog' => '']) ?> <? endif ?> <? if ($questionnaire->isEditable()) : ?> - <?= \Studip\LinkButton::create(_("Kontext auswählen"), URLHelper::getURL("dispatch.php/questionnaire/context/".$questionnaire->getId(), ['range_type' => $range_type, 'range_id' => $range_id]), ['data-dialog' => '']) ?> + <?= \Studip\LinkButton::create(_("Kontext auswählen"), URLHelper::getURL("dispatch.php/questionnaire/context/".$questionnaire->getId()), ['data-dialog' => '']) ?> <? endif ?> <? if ($questionnaire->isCopyable()) : ?> <?= \Studip\LinkButton::create(_("Kopieren"), URLHelper::getURL("dispatch.php/questionnaire/copy/".$questionnaire->getId()), ['data-dialog' => '']) ?> <? endif ?> <? if ($questionnaire->isEditable() && !$questionnaire->isRunning()) : ?> - <?= \Studip\LinkButton::create(_("Starten"), URLHelper::getURL("dispatch.php/questionnaire/start/".$questionnaire->getId(), in_array($range_type, ['course', 'insitute']) ? ['redirect' => $range_type . "/overview"] : [])) ?> + <?= \Studip\LinkButton::create(_("Starten"), URLHelper::getURL("dispatch.php/questionnaire/start/".$questionnaire->getId())) ?> <? endif ?> <? if ($questionnaire->isEditable() && $questionnaire->isRunning()) : ?> - <?= \Studip\LinkButton::create(_("Beenden"), URLHelper::getURL("dispatch.php/questionnaire/stop/".$questionnaire->getId(), in_array($range_type, ['course', 'insitute']) ? ['redirect' => $range_type . "/overview"] : [])) ?> + <?= \Studip\LinkButton::create(_("Beenden"), URLHelper::getURL("dispatch.php/questionnaire/stop/".$questionnaire->getId())) ?> <? endif ?> </div> diff --git a/app/views/siteinfo/markup/adminList.php b/app/views/siteinfo/markup/adminList.php index 1b0cf2c6377a2dab7ab58f8a0e91803b5ef69954..68b514d5e6b87176dc663b9386c8e32857bccb93 100644 --- a/app/views/siteinfo/markup/adminList.php +++ b/app/views/siteinfo/markup/adminList.php @@ -1,7 +1,7 @@ <? # Lifter010: TODO ?> -<? if ($error) : ?> +<? if (!empty($error)) : ?> <em><?= _("keine. Na sowas. Das kann ja eigentlich gar nicht sein...") ?></em> <? else : ?> <? $current_head = "" ?> diff --git a/app/views/siteinfo/markup/indicator.php b/app/views/siteinfo/markup/indicator.php index 16e3943e403eb541e961f6090776aed30300168d..4748f53150f2780c1b5fb4ed287bba749d990377 100644 --- a/app/views/siteinfo/markup/indicator.php +++ b/app/views/siteinfo/markup/indicator.php @@ -1,7 +1,4 @@ -<? -# Lifter010: TODO -?> -<? if($detail != '') : ?> +<? if (!empty($detail)) : ?> <span title="<?= $detail ?>"> <? else : ?> <span> diff --git a/app/views/siteinfo/markup/rootlist.php b/app/views/siteinfo/markup/rootlist.php index 4f8344a7f2d26dba8178766900ed41510ddbd0ca..2ab31e09f6c40b8ea7ab4001be6243900085930e 100644 --- a/app/views/siteinfo/markup/rootlist.php +++ b/app/views/siteinfo/markup/rootlist.php @@ -1,7 +1,7 @@ <? # Lifter010: TODO ?> -<? if ($error) : ?> +<? if (!empty($error)) : ?> <em><?= _("keine. Na sowas. Das kann ja eigentlich gar nicht sein...") ?></em> <? else : ?> <ul> diff --git a/app/views/siteinfo/markup/toplist.php b/app/views/siteinfo/markup/toplist.php index 499a0b703266274d1c98fe1222dfdd3bf15154dd..d7f88fe0ddb23cf36076174d1db5027a74537d45 100644 --- a/app/views/siteinfo/markup/toplist.php +++ b/app/views/siteinfo/markup/toplist.php @@ -9,7 +9,7 @@ case "seminar": $link = URLHelper::getLink('dispatch.php/course/details/', ['sem_id' => $line["seminar_id"], 'send_from_search' => 'true', - 'send_from_search_page' => $view]); + 'send_from_search_page' => $view ?? null]); break; case "user": $link = URLHelper::getLink('dispatch.php/profile', ['username' => $line["username"]]); diff --git a/lib/classes/CoursesetModel.php b/lib/classes/CoursesetModel.php index 9694a41c0df65fb6e0c6b0e7ca70c13e2e81e419..e12d3b9682bf76d43c1c23a6a562cc5170e3ecb8 100644 --- a/lib/classes/CoursesetModel.php +++ b/lib/classes/CoursesetModel.php @@ -163,6 +163,8 @@ class CoursesetModel * admission rules * * @return Array Found institutes. + * + * @todo this is a really messed up construct and should be refactored */ public static function getInstitutes($filter = []) { @@ -197,9 +199,9 @@ class CoursesetModel $num_sets = $cs_count_all_statement->fetchColumn(); $my_inst['all'] = [ - 'name' => _('alle'), - 'is_fak' => true, - 'num_sets' => $num_sets + 'name' => _('alle'), + 'is_fak' => true, + 'count' => $num_sets ]; $top_insts = Institute::findBySQL('Institut_id = fakultaets_id ORDER BY Name'); } else { @@ -209,7 +211,7 @@ class CoursesetModel $my_inst[$inst->id] = $inst->toArray('name is_fak'); $parameters[0] = $inst->id; $cs_count_statement->execute($parameters); - $my_inst[$inst->id]['num_sets'] = $cs_count_statement->fetchColumn(); + $my_inst[$inst->id]['count'] = $cs_count_statement->fetchColumn(); if ($inst->is_fak && ($perm->have_perm('root') || $inst->members->findBy('user_id', $user->id)->val('inst_perms') == 'admin')) { $alle = $inst->sub_institutes; if (count($alle)) { @@ -219,18 +221,18 @@ class CoursesetModel ]; $num_inst = 0; - $num_sets_alle = $my_inst[$inst->id]['num_sets']; + $num_sets_alle = $my_inst[$inst->id]['count']; foreach ($alle as $institute) { $num_inst += 1; $my_inst[$institute->id] = $institute->toArray('name is_fak'); $parameters[0] = $institute->id; $cs_count_statement->execute($parameters); - $my_inst[$institute->id]['num_sets'] = $cs_count_statement->fetchColumn(); - $num_sets_alle += $my_inst[$institute->id]['num_sets']; + $my_inst[$institute->id]['count'] = $cs_count_statement->fetchColumn(); + $num_sets_alle += $my_inst[$institute->id]['count']; } $my_inst[$inst->id . '_all']['num_inst'] = $num_inst; - $my_inst[$inst->id . '_all']['num_sets'] = $num_sets_alle; + $my_inst[$inst->id . '_all']['count'] = $num_sets_alle; } } } diff --git a/lib/classes/MediaProxy.php b/lib/classes/MediaProxy.php index 138ff5c5f0efde78b7b6cd053627512a042a7b68..d42becb893efeab674309e5778c3122df6a24016 100644 --- a/lib/classes/MediaProxy.php +++ b/lib/classes/MediaProxy.php @@ -183,9 +183,9 @@ class MediaProxy } $type = $response['content-type']; - $length = $response['content-length']; - $chdate = $response['last-modified']; - $expires = $response['expires']; + $length = $response['content-length'] ?? null; + $chdate = $response['last-modified'] ?? null; + $expires = $response['expires'] ?? null; $chdate = isset($chdate) ? strtotime($chdate) : time(); $expires = isset($expires) ? strtotime($expires) : time() + $this->cache_lifetime; diff --git a/lib/classes/MyRealmModel.php b/lib/classes/MyRealmModel.php index 878b4a267cdf80ba83150d223a7ac82d811c9e85..063972c47466a52f5c84fe2bc66d5bdb0053287c 100644 --- a/lib/classes/MyRealmModel.php +++ b/lib/classes/MyRealmModel.php @@ -87,7 +87,7 @@ class MyRealmModel $neue = $result['new']; if (!is_null($result['last_modified']) && (int)$result['last_modified'] != 0) { - if ($my_obj['last_modified'] < $result['last_modified']) { + if (!isset($my_obj['last_modified']) || $my_obj['last_modified'] < $result['last_modified']) { $my_obj['last_modified'] = $result['last_modified']; } } diff --git a/lib/classes/Siteinfo.php b/lib/classes/Siteinfo.php index 6e8dbc3e1a2acf5241b7af91419a93bceb8bbdd6..32cbdeae1a2bbe67aa03b181aeff921ce7adad75 100644 --- a/lib/classes/Siteinfo.php +++ b/lib/classes/Siteinfo.php @@ -535,7 +535,7 @@ class SiteinfoMarkupEngine { // iterate over the other indicators if (in_array($key,array_keys($indicator))) { if (!isset($indicator[$key]['constraint']) || $indicator[$key]['constraint']) { - if ($indicator[$key]['query']) { + if (isset($indicator[$key]['query'])) { $result = $this->db->query($indicator[$key]['query']); $rows = $result->fetch(PDO::FETCH_NUM); $template->count = $rows[0]; diff --git a/lib/classes/StudipCoreFormat.php b/lib/classes/StudipCoreFormat.php index 15794bfb33f587085023cedabd55534274fb70ea..871f5fa28512b7509a3e1d78eb7de3570b393a18 100644 --- a/lib/classes/StudipCoreFormat.php +++ b/lib/classes/StudipCoreFormat.php @@ -531,8 +531,13 @@ class StudipCoreFormat extends TextFormat $tag = $matches[1]; $params = explode(":",$matches[2]); $url = $matches[3]; - $whitespace = $matches[4]; + $whitespace = $matches[4] ?? null; + $title = null; + $link = null; + $position = null; + $width = null; + $virtual_url = null; foreach ($params as $key => $param) { if ($param) { if (is_numeric($param)) { @@ -558,9 +563,16 @@ class StudipCoreFormat extends TextFormat $url = TransformInternalLinks($url); $pu = @parse_url($url); - if (($pu['scheme'] == 'http' || $pu['scheme'] == 'https') - && ($pu['host'] == $_SERVER['HTTP_HOST'] || $pu['host'].':'.$pu['port'] == $_SERVER['HTTP_HOST']) - && mb_strpos($pu['path'], $GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP']) === 0) { + + $intern = false; + if ( + in_array($pu['scheme'], ['http', 'https']) + && ( + $pu['host'] === $_SERVER['HTTP_HOST'] + || (isset($pu['port']) && $pu['host'] . ':' . $pu['port'] === $_SERVER['HTTP_HOST']) + ) + && mb_strpos($pu['path'], $GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP']) === 0 + ) { $intern = true; $checkpath = urldecode(mb_substr($pu['path'], mb_strlen($GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP']))); if (mb_strpos($checkpath, '../') === false) { diff --git a/lib/classes/admission/UserFilter.class.php b/lib/classes/admission/UserFilter.class.php index 32eed4830835304846bd1ab3c14af00f2fd343b9..d380ef0c0b52bb4ade5a1c83340f25c39b211dda 100644 --- a/lib/classes/admission/UserFilter.class.php +++ b/lib/classes/admission/UserFilter.class.php @@ -200,7 +200,9 @@ class UserFilter * been removed since saving data to DB. */ //try { - list($type, $param) = explode('_', $data['type']); + $chunks = explode('_', $data['type']); + $type = $chunks[0]; + $param = $chunks[1] ?? null; if ($param) { $field = new $type($param, $data['field_id']); } else { diff --git a/lib/models/DatafieldEntryModel.class.php b/lib/models/DatafieldEntryModel.class.php index 0ae03c4a17fc2862eb50ead2d205ce42dd9914e5..cea65ef773f511941c9bff513babe04f18194f59 100644 --- a/lib/models/DatafieldEntryModel.class.php +++ b/lib/models/DatafieldEntryModel.class.php @@ -50,6 +50,7 @@ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject { $mask = ["user" => 1, "autor" => 2, "tutor" => 4, "dozent" => 8, "admin" => 16, "root" => 32]; + $sec_range_id = null; if (is_a($model, "Course")) { $params[':institution_ids'] = $model->institutes->pluck('institut_id'); $object_class = SeminarCategories::GetByTypeId($model->status)->id; @@ -85,13 +86,11 @@ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject $object_class = $model->getVariant(); $object_type = 'moduldeskriptor'; $range_id = $model->deskriptor_id; - $sec_range_id = null; } elseif (is_a($model, 'ModulteilDeskriptor')) { $params[':institution_ids'] = [$model->modulteil->modul->responsible_institute->institut_id]; $object_class = $model->getVariant(); $object_type = 'modulteildeskriptor'; $range_id = $model->deskriptor_id; - $sec_range_id = null; } elseif ($model instanceof StatusgruppeUser) { if (isset($model->group->institute)) { $params[':institution_ids'] = [$model->group->institute->id]; @@ -107,7 +106,6 @@ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject $object_class = $model->getVariant(); $object_type = 'studycourse'; $range_id = $model->studiengang_id; - $sec_range_id = null; } if (!$object_type) { @@ -144,7 +142,7 @@ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject $query .= "AND ((object_class & :object_class) OR object_class IS NULL) $one_datafield ORDER BY priority"; $params = array_merge($params, [ ':range_id' => (string) $range_id, - ':sec_range_id' => (string) ($sec_range_id ?? ''), + ':sec_range_id' => (string) $sec_range_id, ':object_type' => $object_type, ':object_class' => (int) $object_class]); } @@ -161,12 +159,11 @@ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject $ret[$c] = clone $df_entry; } else { $ret[$c] = clone $df_entry_i18n; - $row['content'] = I18NStringDatafield::load( - [ - $row['datafield_id'], - $range_id, - (string) $sec_range_id - ]); + $row['content'] = I18NStringDatafield::load([ + $row['datafield_id'], + $range_id, + (string) $sec_range_id + ]); } $ret[$c]->setData($row, true); if (!$row['isset_content']) { diff --git a/lib/models/User.class.php b/lib/models/User.class.php index 825df46e6d00798782b7365a521799a271f18fdf..6011e6b791a92a843226d503d4e4750248a68a25 100644 --- a/lib/models/User.class.php +++ b/lib/models/User.class.php @@ -338,22 +338,22 @@ class User extends AuthUserMd5 implements Range, PrivacyObject LEFT JOIN `user_online` uo ON (au.`user_id` = uo.`user_id`) LEFT JOIN `user_info` ui ON (au.`user_id` = ui.`user_id`)"; - if ($attributes['username']) { + if (!empty($attributes['username'])) { $where[] = "au.`username` like :username"; $params[':username'] = self::searchParam($attributes['username']); } - if ($attributes['vorname']) { + if (!empty($attributes['vorname'])) { $where[] = "au.`Vorname` LIKE :vorname"; $params[':vorname'] = self::searchParam($attributes['vorname']); } - if ($attributes['nachname']) { + if (!empty($attributes['nachname'])) { $where[] = "au.`Nachname` LIKE :nachname"; $params[':nachname'] = self::searchParam($attributes['nachname']); } - if ($attributes['email']) { + if (!empty($attributes['email'])) { $where[] = "au.`Email` LIKE :email"; $params[':email'] = self::searchParam($attributes['email']); } @@ -370,11 +370,11 @@ class User extends AuthUserMd5 implements Range, PrivacyObject } // show only users who are not lecturers - if ($attributes['show_only_not_lectures']) { + if (!empty($attributes['show_only_not_lectures'])) { $where[] = "au.`user_id` NOT IN (SELECT `user_id` FROM `seminar_user` WHERE `status` = 'dozent') "; } - if ($attributes['auth_plugins']) { + if (!empty($attributes['auth_plugins'])) { $where[] = "IFNULL(`auth_plugin`, 'preliminary') = :auth_plugins "; $params[':auth_plugins'] = $attributes['auth_plugins']; } @@ -407,7 +407,7 @@ class User extends AuthUserMd5 implements Range, PrivacyObject } // userdomains - if ($attributes['userdomains']) { + if (!empty($attributes['userdomains'])) { $joins[] = "LEFT JOIN `user_userdomains` uud ON (au.`user_id` = uud.`user_id`)"; $joins[] = "LEFT JOIN `userdomains` uds USING (`userdomain_id`)"; if ($attributes['userdomains'] === 'null-domain') { diff --git a/lib/user_visible.inc.php b/lib/user_visible.inc.php index c47640efd72215784c9947bc4423a76893899672..0706b3257736b2606d6399241c3972476b240266 100644 --- a/lib/user_visible.inc.php +++ b/lib/user_visible.inc.php @@ -119,6 +119,8 @@ function get_vis_query($table_alias = 'auth_user_md5', $context = '') { $context_default = (int) Config::get()->getValue(mb_strtoupper($context) . '_VISIBILITY_DEFAULT'); $contextQuery = " AND (IFNULL(user_visibility.{$context}, {$context_default}) = 1 OR {$table_alias}.visible = 'always')"; + } else { + $contextQuery = ''; } $my_domains = UserDomain::getUserDomainsForUser($GLOBALS['user']->id); diff --git a/lib/visual.inc.php b/lib/visual.inc.php index 99d80b002c347adc966c6e4c9e3979a64e16ce5b..4d63df482a8408e60125c978a7614c94a6a07baf 100644 --- a/lib/visual.inc.php +++ b/lib/visual.inc.php @@ -311,10 +311,10 @@ function isLinkIntern($url) { return true; } - return in_array($pum['scheme'], ['https', 'http', NULL], true) - && in_array($pum['host'], [$_SERVER['SERVER_NAME'], NULL], true) - && in_array($pum['port'], [$_SERVER['SERVER_PORT'], NULL], true) - && mb_strpos($pum['path'], $GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP']) === 0; + return in_array($pum['scheme'] ?? null, ['https', 'http', NULL], true) + && in_array($pum['host'] ?? null, [$_SERVER['SERVER_NAME'], NULL], true) + && in_array($pum['port'] ?? null, [$_SERVER['SERVER_PORT'], NULL], true) + && mb_strpos($pum['path'] ?? '', $GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP']) === 0; } /** diff --git a/public/sendfile.php b/public/sendfile.php index 80084083c2c6a5621128367a52c2bd99bf032bc1..77cc7353a3b38ba8f69545da0c2bcb6e4ccf1dd2 100644 --- a/public/sendfile.php +++ b/public/sendfile.php @@ -175,7 +175,7 @@ while (ob_get_level()) { ob_end_clean(); } -if (isset($file_ref) && $file_ref->file->metadata['access_type'] == 'redirect') { +if (isset($file_ref, $file_ref->file) && $file_ref->file->metadata['access_type'] === 'redirect') { $file_ref->incrementDownloadCounter(); header('Location: ' . $file_ref->file->metadata['url']); die(); diff --git a/templates/shared/pagechooser.php b/templates/shared/pagechooser.php index bf8726db28cca636648addb601d1b81fc73e8cf1..d4416bb5c6445478f31bc6b0688d802f3e439934 100644 --- a/templates/shared/pagechooser.php +++ b/templates/shared/pagechooser.php @@ -13,7 +13,7 @@ $last_page = reset($items) - 1; $random_id = mb_substr(md5(uniqid('pagination', true)), -8); - $pageparams = $pageparams ?: []; + $pageparams = $pageparams ?? []; ?> <p id="pagination-label-<?= $random_id ?>" class="audible"> <?= _('Blättern') ?>