Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

webbutv3/word-app/

add-words.php
api/
components/
include.php
index.php
ini/
login.php
logout.php
practice.php
progress.php
public/
scripts/
util/
word.php

progress.php

79 lines ASCII Windows (CRLF)
<!DOCTYPE html>


<?php
include "include.php";
include 
"util/practice.php";
login_guard();

$tries quick_statment(("
SELECT try_record.time, try_record.success, translation.word_id, word.word
FROM try_record
INNER JOIN translation ON try_record.translation_id = translation.id
INNER JOIN word ON translation.word_id = word.id
WHERE word.user_id = ? ORDER BY translation.word_id
"
), "i"user_id());


function 
word_progress($word$nextCheckpoint)
{
    
$progress = ($nextCheckpoint time()) / (3600);
    
$progress min(1max(0$progress));
    
$r = ($progress) * 255;
    
$g $progress 255;

    if (
$nextCheckpoint time()) {
        
$r 0;
        
$g 255;
    }

    return [
        
"word" => $word,
        
"nextCheckpoint" => $nextCheckpoint,
        
"color" => "rgb(" $r "," $g ",0)"
    
];
}

$wordProgresses = [];

$buffer = [];
foreach (
$tries as $try) {
    
$len count($buffer);
    
// switching to new word
    
if ($len && $buffer[$len 1]["word_id"] != $try["word_id"]) {
        
$nextCheckpoint next_checkpoint($buffer);
        
$last $buffer[$len 1];
        
$wordProgresses[] = word_progress($last["word"], $nextCheckpoint);
        
//echo $next_checkpoint . " - " . $last["word"] . "<br>";
        
$buffer = [];
    }

    
$buffer[] = $try;
}

$nextCheckpoint next_checkpoint($buffer);
$last $buffer[$len 1];
$wordProgresses[] = word_progress($last["word"], $nextCheckpoint);
//echo $next_checkpoint . " - " . $last["word"] . "<br>";
$buffer = [];


?>

<html lang="en">

<head>
    <?php include "components/head.php" ?>
</head>

<body>
    <?php include "components/header.php" ?>
    <div class="progress-container">
        <?php
        
foreach ($wordProgresses as $wordProgress) {
            echo 
encase($wordProgress["word"] . " next checkpoint: " gmdate("Y-m-d\TH:i:s\Z"$wordProgress["nextCheckpoint"]), "p""""background-color: " $wordProgress["color"]);
        } 
?>
    </div>
</body>

</html>