111 lines
4.0 KiB
PHP
111 lines
4.0 KiB
PHP
|
<?php
|
||
|
session_start();
|
||
|
|
||
|
/** require autoloading to manage namespaces */
|
||
|
require __DIR__ . '/vendor/autoload.php';
|
||
|
|
||
|
use PhotoPrismUpload\API\PhotoPrism;
|
||
|
use PhotoPrismUpload\Entities\Album;
|
||
|
|
||
|
?>
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Collagen Abstimmung</title>
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
<meta charset="utf-8">
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
|
<script src="vote.js"></script>
|
||
|
<link href="vote.css" rel="stylesheet">
|
||
|
</head>
|
||
|
<body>
|
||
|
<?php
|
||
|
|
||
|
$footer = '</body></html><footer style="position: fixed;bottom: 0;left: 0;">'
|
||
|
.'<a href="/git/phlaym/photoprismupload">Ich bin Open Source</a></footer>';
|
||
|
|
||
|
/** @var array $config configuration options */
|
||
|
$config = require(__DIR__ . '/config.php');
|
||
|
|
||
|
/** @var PhotoPrism $api API object to interface with PhotoPrism */
|
||
|
$api = new PhotoPrism($config);
|
||
|
|
||
|
/** @var Album[] $albums List of PhotoPrism albums */
|
||
|
$albums = [];
|
||
|
try {
|
||
|
$api->login();
|
||
|
} catch (\Exception $e) {
|
||
|
die('Fehler: ' . $e->getMessage().$footer.'</body></html>');
|
||
|
}
|
||
|
|
||
|
/** @var string $token Tokens for which album(s) are visible in the dropdown */
|
||
|
$token = $_GET['token'];
|
||
|
|
||
|
/** @var int $page Page number of photos to load */
|
||
|
$page = intval($_GET['page'] ?? 1);
|
||
|
|
||
|
/** @var int $count Number of pictures to load */
|
||
|
$count = intval($_GET['count'] ?? 50);
|
||
|
|
||
|
/** @var int $offset Tokens for which album(s) are visible in the dropdown */
|
||
|
$offset = ($page - 1) * $count;
|
||
|
|
||
|
/** @var string $album_url URL path to the selected album */
|
||
|
$album_url = '/';
|
||
|
|
||
|
$page_sizes = array_values(array_unique([10, 20, 50, 100, $count]));
|
||
|
sort($page_sizes);
|
||
|
$link_class = $page === 1 ? 'pageLink disabled' : 'pageLink';
|
||
|
|
||
|
try {
|
||
|
$album = $api->getAlbumByToken($token);
|
||
|
if ($album === null) {
|
||
|
die('Album nicht gefunden' . $footer . '</body></html>');
|
||
|
}
|
||
|
$photos = $api->getAlbumPhotos($album, $count, $offset);
|
||
|
?>
|
||
|
<div>
|
||
|
<input type="text" placeholder="Name" name="name" id="nameInput" style="margin: 0 0 0 8px">
|
||
|
<button onclick="loadVotes()">OK</button>
|
||
|
<a class="<?=$link_class?>" href="vote-gallery.php?token=<?=$token?>&count=<?=$count?>&page=1"><<</a>
|
||
|
<a class="<?=$link_class?>" href="vote-gallery.php?token=<?=$token?>&count=<?=$count?>&page=<?=$page-1?>"><</a>
|
||
|
Seite <?=$page?>
|
||
|
<a class="pageLink" href="vote-gallery.php?token=<?=$token?>&count=<?=$count?>&page=<?=$page+1?>">></a>
|
||
|
<select>
|
||
|
<?php
|
||
|
foreach ($page_sizes as $current_page_size) {
|
||
|
$selected_string = $current_page_size === $count ? 'selected' : '';
|
||
|
echo '<option '.$selected_string.'>'.$current_page_size.'</option>';
|
||
|
}
|
||
|
?>
|
||
|
</select> pro Seite
|
||
|
</div>
|
||
|
<?php
|
||
|
foreach ($photos as $photo) {
|
||
|
$thumb = $photo->getThumbnailUrl();?>
|
||
|
<div class="photowrapper">
|
||
|
<img src="<?= $api->api_url.$thumb?>" id="<?= $photo->uid?>">
|
||
|
<div class="votewrapper">
|
||
|
<button value="1" onclick="vote(this)" class="voteButton" data-uid="<?= $photo->uid?>" disabled>
|
||
|
👍 Dafür
|
||
|
</button>
|
||
|
<button value="0" onclick="vote(this)" class="voteButton" data-uid="<?= $photo->uid?>" disabled>
|
||
|
😶 Neutral
|
||
|
</button>
|
||
|
<button value="-1" onclick="vote(this)" class="voteButton" data-uid="<?= $photo->uid?>" disabled>
|
||
|
👎 Dagegen
|
||
|
</button>
|
||
|
</div>
|
||
|
</div>
|
||
|
<?php
|
||
|
}
|
||
|
} catch (\Exception $e) {
|
||
|
die('Fehler: ' . $footer . $e->getMessage() . '</body></html>');
|
||
|
}
|
||
|
?>
|
||
|
<div>
|
||
|
<a class="<?=$link_class?>" href="vote-gallery.php?token=<?=$token?>&count=<?=$count?>&page=1"><<</a>
|
||
|
<a class="<?=$link_class?>" href="vote-gallery.php?token=<?=$token?>&count=<?=$count?>&page=<?=$page-1?>"><</a>
|
||
|
Seite <?=$page?>
|
||
|
<a class="pageLink" href="vote-gallery.php?token=<?=$token?>&count=<?=$count?>&page=<?=$page+1?>">></a>
|
||
|
</div>
|