From 0d563b327f20b3eeee02b36b576ad3f3f0950214 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Mon, 6 Nov 2023 12:22:17 +0000 Subject: [PATCH] fixes #3168 Closes #3168 Merge request studip/studip!2331 --- app/controllers/course/lti.php | 2 ++ app/views/course/lti/edit.php | 31 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/controllers/course/lti.php b/app/controllers/course/lti.php index 7ed8586cb27..28bf218b848 100644 --- a/app/controllers/course/lti.php +++ b/app/controllers/course/lti.php @@ -146,6 +146,8 @@ class Course_LtiController extends StudipController */ public function edit_action($position = '') { + $this->lti_data = new LtiData(); + if ($position !== '') { $this->lti_data = LtiData::findByCourseAndPosition($this->course_id, $position); } diff --git a/app/views/course/lti/edit.php b/app/views/course/lti/edit.php index 4dc2b59f287..1812bf25397 100644 --- a/app/views/course/lti/edit.php +++ b/app/views/course/lti/edit.php @@ -1,4 +1,11 @@ -<form class="default" action="<?= $controller->link_for('course/lti/save', isset($lti_data) ? $lti_data->position : '') ?>" method="post"> +<?php +/** + * @var Course_LtiController $controller + * @var LtiData $lti_data + * @var LtiTool[] $tools + */ +?> +<form class="default" action="<?= $controller->link_for('course/lti/save', $lti_data->isNew() ? '' : $lti_data->position) ?>" method="post"> <?= CSRFProtection::tokenTag() ?> <fieldset> <legend> @@ -9,12 +16,12 @@ <span class="required"> <?= _('Titel') ?> </span> - <input type="text" name="title" value="<?= htmlReady(isset($lti_data) ? $lti_data->title : '') ?>" required> + <input type="text" name="title" value="<?= htmlReady($lti_data->title) ?>" required> </label> <label> <?= _('Beschreibung') ?> - <textarea name="description" class="add_toolbar wysiwyg"><?= wysiwygReady(isset($lti_data) ? $lti_data->description : '') ?></textarea> + <textarea name="description" class="add_toolbar wysiwyg"><?= wysiwygReady($lti_data->description) ?></textarea> </label> <label> @@ -27,7 +34,7 @@ <? endif ?> <?= $lti_data->tool_id == $tool->id ? 'selected' : '' ?>><?= htmlReady($tool->name) ?></option> <? endforeach ?> - <option value="0" <?= isset($lti_data) && $lti_data->tool_id == 0 ? 'selected' : '' ?>><?= _('Zugangsdaten selbst eingeben...') ?></option> + <option value="0" <?= !$lti_data->tool_id ? 'selected' : '' ?>><?= _('Zugangsdaten selbst eingeben...') ?></option> </select> </label> @@ -35,7 +42,7 @@ <label> <?= _('URL der Anwendung (optional)') ?> <?= tooltipIcon(_('Sie können direkt auf eine URL in der Anwendung verlinken.')) ?> - <input type="text" name="custom_url" value="<?= htmlReady(isset($lti_data) ? $lti_data->launch_url : '') ?>"> + <input type="text" name="custom_url" value="<?= htmlReady($lti_data->launch_url) ?>"> </label> </div> @@ -43,36 +50,36 @@ <label> <?= _('URL der Anwendung') ?> <?= tooltipIcon(_('Die Betreiber dieses Tools müssen Ihnen eine URL und Zugangsdaten (Consumer-Key und Consumer-Secret) mitteilen.')) ?> - <input type="text" name="launch_url" value="<?= htmlReady(isset($lti_data) ? $lti_data->launch_url : '') ?>"> + <input type="text" name="launch_url" value="<?= htmlReady($lti_data->launch_url) ?>"> </label> <label> <?= _('Consumer-Key des LTI-Tools') ?> - <input type="text" name="consumer_key" value="<?= htmlReady(isset($lti_data) ? $lti_data->options['consumer_key'] : '') ?>"> + <input type="text" name="consumer_key" value="<?= htmlReady($lti_data->options['consumer_key'] ?? '') ?>"> </label> <label> <?= _('Consumer-Secret des LTI-Tools') ?> - <input type="text" name="consumer_secret" value="<?= htmlReady(isset($lti_data) ? $lti_data->options['consumer_secret'] : '') ?>"> + <input type="text" name="consumer_secret" value="<?= htmlReady($lti_data->options['consumer_secret'] ?? '') ?>"> </label> <label> <?= _('OAuth Signatur Methode des LTI-Tools') ?> <select name="oauth_signature_method"> <option value="sha1">HMAC-SHA1</option> - <option value="sha256" <?= isset($lti_data) && $lti_data->options['oauth_signature_method'] === 'sha256' ? 'selected' : '' ?>>HMAC-SHA256</option> + <option value="sha256" <?= isset($lti_data->options['oauth_signature_method']) && $lti_data->options['oauth_signature_method'] === 'sha256' ? 'selected' : '' ?>>HMAC-SHA256</option> </select> </label> <label> - <input type="checkbox" name="send_lis_person" value="1" <?= isset($lti_data) && $lti_data->options['send_lis_person'] ? ' checked' : '' ?>> + <input type="checkbox" name="send_lis_person" value="1" <?= !empty($lti_data->options['send_lis_person']) ? ' checked' : '' ?>> <?= _('Nutzerdaten an LTI-Tool senden') ?> <?= tooltipIcon(_('Nutzerdaten dürfen nur an das externe Tool gesendet werden, wenn es keine Datenschutzbedenken gibt. Mit Setzen des Hakens bestätigen Sie, dass die Übermittlung der Daten zulässig ist.')) ?> </label> </div> <label> - <input type="checkbox" name="document_target" value="iframe" <?= isset($lti_data) && $lti_data->options['document_target'] == 'iframe' ? ' checked' : '' ?>> + <input type="checkbox" name="document_target" value="iframe" <?= isset($lti_data->options['document_target']) && $lti_data->options['document_target'] === 'iframe' ? ' checked' : '' ?>> <?= _('Anzeige im IFRAME auf der Seite') ?> <?= tooltipIcon(_('Normalerweise wird das externe Tool in einem neuen Fenster angezeigt. Aktivieren Sie diese Option, wenn die Anzeige stattdessen in einem IFRAME erfolgen soll.')) ?> </label> @@ -80,7 +87,7 @@ <label> <?= _('Zusätzliche LTI-Parameter') ?> <?= tooltipIcon(_('Ein Wert pro Zeile, Beispiel: Review:Chapter=1.2.56')) ?> - <textarea name="custom_parameters"><?= htmlReady(isset($lti_data) && $lti_data->options['custom_parameters']) ?></textarea> + <textarea name="custom_parameters"><?= htmlReady($lti_data->options['custom_parameters'] ?? '') ?></textarea> </label> </fieldset> -- GitLab