Files
awo-hamburg-intranet/module/learning/show_unit.inc.php
2026-02-17 14:56:23 +01:00

243 lines
9.2 KiB
PHP

<?php
if(isset($_POST['input_submit'])){
$query = "SELECT learning_unit_answer.* FROM learning_unit_answer LEFT JOIN learning_unit_question ON learning_unit_question.id = learning_unit_answer.question_id WHERE learning_unit_id = ".$unit_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
$correct_answers = 0;
while($answers = @mysqli_fetch_array($result)){
$answer_post = ($_POST['input_answer_'.$answers['id']] == "on") ? 1 : 0;
if($answers['correct'] == $answer_post){
$correct_answers++;
}
}
$datetime = new DateTime();
if (@mysqli_num_rows($result) == $correct_answers) {
$query_select = "SELECT * FROM main_certificate WHERE learning_unit_id = ".$unit_id;
$result_select = @mysqli_query($GLOBALS['mysql_con'], $query_select);
if (@mysqli_num_rows($result_select) >= 1) {
$row = @mysqli_fetch_array($result_select);
$query = "INSERT INTO certificate_contact_link (id, certificate_id, main_contact_id, issue_date, active) VALUES (
NULL,
'" . $row['certificate_id'] . "',
'" . $GLOBALS['main_contact']['id'] . "',
'" . $datetime->format('Y-m-d') . "',
'1'
)";
@mysqli_query($GLOBALS['mysql_con'], $query);
}
$correct = 1;
}else{
$correct = 0;
}
$query = "INSERT INTO learning_unit_submit (id, learning_unit_id, main_contact_id, datetime, correct) VALUES (
NULL,
'" . $unit_id . "',
'" . $GLOBALS['main_contact']['id'] . "',
'" . $datetime->format('Y-m-d H:i:s') . "',
'" . $correct . "'
)";
@mysqli_query($GLOBALS['mysql_con'], $query);
$host = $_SERVER['HTTP_HOST'];
$uri = $_SERVER["REDIRECT_URL"];
echo "<script type='text/javascript'>window.location.href = 'https://".$host.$uri."';</script>";
}
function load_questions($unit_id){
$query = "SELECT * FROM learning_unit_question WHERE learning_unit_id = ".$unit_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while($question = @mysqli_fetch_array($result)){
echo "<div class='certificate_question'>";
echo "<h3 class='certificate_question_headline'>".$question['description']."</h3>";
load_answers($question['id']);
echo "</div>";
}
}
function load_answers($question_id){
$query = "SELECT * FROM learning_unit_answer WHERE question_id = ".$question_id. " ORDER BY RAND()";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
echo "<div class='answer_input_group'>";
while($answer = @mysqli_fetch_array($result)){
echo "<div class='answer_input'>";
echo input($answer['description'], "input_answer_".$answer['id'], "checkbox");
echo "</div>";
}
echo "</div>";
}
function load_submit_mask($submit){
$datetime = new DateTime($submit['datetime']);
if($submit['correct'] == 1){
echo "<div class='learning_success_modal'>";
echo "<div class='learning_success'>";
?>
<div class="success-animation">
<svg class="checkmark" xmlns="https://www.w3.org/2000/svg" viewBox="0 0 52 52"><circle class="checkmark__circle" cx="26" cy="26" r="25" fill="none" /><path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8" /></svg>
</div>
<?php
echo "<h3>Du hast diese Einheit am ".$datetime->format('d.m.Y')." erfolgreich abgeschlossen.</h3>";
?>
<div class="button_group">
<a href="#" id="close_overlay" class=""><button>Video erneut ansehen</button></a>
<a href="/intranet/de/e-learning/" class=""><button>zum E-Learning</button></a>
</div>
<?php
echo "</div>";
echo "</div>";
}else{
echo "<div class='learning_success_modal'>";
echo "<div class='learning_error'>";
?>
<div class="ui-error">
<svg viewBox="0 0 87 87" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group-2" transform="translate(2.000000, 2.000000)">
<circle id="Oval-2" stroke="rgba(252, 191, 191, .5)" stroke-width="4" cx="41.5" cy="41.5" r="41.5"></circle>
<circle class="ui-error-circle" stroke="#F74444" stroke-width="4" cx="41.5" cy="41.5" r="41.5"></circle>
<path class="ui-error-line1" d="M22.244224,22 L60.4279902,60.1837662" id="Line" stroke="#F74444" stroke-width="3" stroke-linecap="square"></path>
<path class="ui-error-line2" d="M60.755776,21 L23.244224,59.8443492" id="Line" stroke="#F74444" stroke-width="3" stroke-linecap="square"></path>
</g>
</g>
</svg>
</div>
<?php
echo "<h3>Du kannst erst morgen wieder versuchen, diese Einheit abzuschließen.</h3>";
?>
<div class="button_group">
<a href="#" id="close_overlay" class=""><button>Video erneut ansehen</button></a>
<a href="/intranet/de/e-learning/" class=""><button>zum E-Learning</button></a>
</div>
<?php
echo "</div>";
echo "</div>";
}
}
$query = "SELECT * FROM learning_unit WHERE id = ".$unit_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
$unit = @mysqli_fetch_array($result);
$current_date = new DateTime();
$query_submit = "SELECT * FROM learning_unit_submit WHERE learning_unit_id = ".$unit_id." AND main_contact_id = ".$GLOBALS['main_contact']['id'] . " ORDER BY id DESC LIMIT 1";
$result_submit = @mysqli_query($GLOBALS['mysql_con'], $query_submit);
$row_submit = @mysqli_fetch_array($result_submit);
?>
<!-- <div class='el_back_button'>
<button class='back_button' onclick='history.back()'>Zurück</button>
</div> -->
<div class="certificate_container">
<h2 class="certificate_title"><?= $unit['title']?></h2>
<p class="certificate_paragraph"><?= $unit['description']?></p>
<div class='certificate_frame'>
<?= $unit['link'] ?>
</div>
<?php if(@mysqli_num_rows($result_submit) >= 1){
load_submit_mask($row_submit);
}else{ ?>
<button class="to_the_questions">zu den Fragen</button>
<div class='certificate_questions' style="display:none;">
<form id="certificate_questions_form"method='post'>
<?php load_questions($unit_id); ?>
<div class="question_nav">
<div class="prev">Vorherige Frage</div>
<div class="next">Nächste Frage</div>
<input class="submit_answers" type='submit' value="Meine Antworten absenden"name='input_submit'>
</div>
</form>
</div>
<?php } ?>
</div>
<script>
$(document).ready(function() {
// Zählt alle divs mit der Klasse certificate_question
var currentIndex = 0;
var maxIndex = $('.certificate_question').length - 1;
$('.certificate_question').eq(currentIndex).addClass('active');
if (currentIndex === 0) {
$('.prev').css('opacity', '0');
}
$('.next').click(function() {
if (currentIndex < maxIndex) {
$('.certificate_question').eq(currentIndex).removeClass('active');
currentIndex++;
$('.certificate_question').eq(currentIndex).addClass('active');
if (currentIndex === 1) {
$('.prev').css('opacity', '1');
$('.submit_answers').css('display', 'none');
}
}
// Überprüfe, ob wir uns im letzten Schritt befinden, und blende den "Weiter"-Button aus
if (currentIndex === maxIndex) {
$('.next').css('display', 'none');
$('.submit_answers').css('display', 'block');
}
});
$('.prev').click(function() {
if (currentIndex > 0) {
$('.certificate_question').eq(currentIndex).removeClass('active');
currentIndex--;
$('.certificate_question').eq(currentIndex).addClass('active');
if (currentIndex === 0) {
$('.prev').css('opacity', '0');
}
}
// Überprüfe, ob wir uns nicht mehr im letzten Schritt befinden, und blende den "Weiter"-Button ein
if (currentIndex < maxIndex) {
$('.next').css('display', 'block');
$('.submit_answers').css('display', 'none');
}
});
});
const form = document.getElementById('certificate_questions_form');
// form.addEventListener('submit', (event) => {
// event.preventDefault(); // Verhindert das Standardverhalten des Formulars (neu laden der Seite)
// if (window.confirm('Sicher, dass die Fragen abgesendet werden sollen?')) {
// // Popup-Bestätigung erhalten
// form.submit(); // Sendet das Formular
// } else {
// // Popup-Bestätigung abgelehnt
// return false;
// }
// });
$(document).ready(function() {
// Wenn die Checkbox angeklickt wird
$('.answer_input input[type="checkbox"]').click(function() {
// Wenn die Checkbox angeklickt wurde und ausgewählt ist
if ($(this).is(':checked')) {
// Füge der Umrandung des div die Klasse "checked" hinzu
$(this).closest('.answer_input').addClass('checked');
} else {
// Entferne die Klasse "checked", wenn die Checkbox abgewählt wird
$(this).closest('.answer_input').removeClass('checked');
}
});
});
</script>