163 lines
5.4 KiB
PHP
163 lines
5.4 KiB
PHP
<?php
|
|
|
|
include 'config/config.php';
|
|
|
|
function generateListItem($ListItemID, $ItemImage, $ItemTitle, $ItemLink, $ItemPrice, $ItemComment, $ItemReserved, $ItemDate)
|
|
{
|
|
global $loggedin, $imagedir;
|
|
|
|
$formatter = new NumberFormatter('de_DE', NumberFormatter::CURRENCY);
|
|
|
|
if (strlen($ItemComment) == 0) {
|
|
$ItemComment = ' ';
|
|
}
|
|
|
|
echo ('
|
|
<div class="col">
|
|
<div class="card shadow-sm">
|
|
<div class="card-header">
|
|
<h5 class="card-title">' . $ItemTitle . '</h5>
|
|
</div>
|
|
<img src="' . $imagedir . '/' . $ItemImage . '" class="card-img-top">
|
|
<div class="card-body">
|
|
<p class="card-text">' . $ItemComment . '</p>
|
|
<div class="row justify-content-end">
|
|
<small class="text-muted text-end">' . $formatter->formatCurrency($ItemPrice / 100, 'EUR') . '</small>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer text-muted">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="d-inline btn-group">
|
|
<a href="' . $ItemLink . '" class="btn btn-sm btn-outline-secondary" role="button" target="_blank">zum Anbieter</a>
|
|
<button type="button" class="btn btn-sm ' . ($ItemReserved == true ? 'btn-outline-info' : 'btn-outline-secondary') . '" data-reserved="' . $ItemReserved . '" data-wishid="' . $ListItemID . '" data-bs-toggle="modal" data-bs-target="#reservationModal">' . ($ItemReserved == true ? 'Reservierung aufheben' : 'Reservieren') . '</button>');
|
|
|
|
if($loggedin == true)
|
|
{
|
|
echo('
|
|
<button type="button" class="btn btn-sm btn-outline-danger" data-wishid="' . $ListItemID . '" data-bs-toggle="modal" data-bs-target="#deleteModal">Löschen</button>
|
|
<button type="button" class="btn btn-sm btn-outline-secondary" data-wishid="' . $ListItemID . '" data-bs-toggle="modal" data-bs-target="#pushprioModal">Prio +</button>'
|
|
);
|
|
}
|
|
|
|
echo('
|
|
</div>
|
|
<div class="d-inline">
|
|
<small class="text-muted text-end">' . date('d.m.y', strtotime($ItemDate)) . '</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
');
|
|
}
|
|
|
|
function wishlistMainBuilder($ListID, $sortby)
|
|
{
|
|
|
|
global $servername, $username, $password, $db;
|
|
|
|
// Create connection
|
|
$conn = new mysqli($servername, $username, $password, $db);
|
|
|
|
// Check connection
|
|
if ($conn->connect_error) {
|
|
die('Connection failed: ' . $conn->connect_error);
|
|
}
|
|
|
|
$sql = 'SELECT title, description FROM lists WHERE ID = ' . $ListID;
|
|
$result = $conn->query($sql);
|
|
|
|
echo ('
|
|
<section class="py-5 text-center container">
|
|
<div class="row py-lg-5">
|
|
<div class="col-lg-6 col-md-8 mx-auto">
|
|
');
|
|
|
|
if ($result !== false && $result->num_rows > 0) {
|
|
while ($row = $result->fetch_assoc()) {
|
|
echo ('
|
|
<h1 class="fw-light">' . $row['title'] . '</h1>
|
|
<p class="lead text-muted">' . $row['description'] . '</p>
|
|
');
|
|
}
|
|
} else {
|
|
echo ('
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content rounded-4 shadow">
|
|
<div class="modal-header p-5 pb-4 border-bottom-0">
|
|
<h1 class="fw-bold mb-0 fs-2">Das tut mir leid...</h1>
|
|
<p class="modal-title fs-5" >..aber diese Liste exisiert nicht. Möchten Sie eine neue anlegen ?</p>
|
|
</div>
|
|
|
|
<div class="modal-body p-5 pt-0">
|
|
<form action="" method="POST">
|
|
<div class="form-floating mb-3">
|
|
<input type="text" class="form-control rounded-3" id="listName" name="listName" placeholder="Name der Liste">
|
|
<label for="listName">Name der Liste</label>
|
|
</div>
|
|
<div class="form-floating mb-3">
|
|
<input type="password" class="form-control rounded-3" id="listPassword" name="listPassword" placeholder="Password">
|
|
<label for="listPassword">Password</label>
|
|
</div>
|
|
<div class="form-floating mb-3">
|
|
<input type="text" class="form-control rounded-3" id="listDescription" name="listDescription" placeholder="Beschreibung">
|
|
<label for="listDescription">Beschreibung</label>
|
|
</div>
|
|
<button class="w-100 mb-2 btn btn-lg rounded-3 btn-primary" name="listadd" type="submit">Absenden</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
');
|
|
}
|
|
|
|
echo ('
|
|
</div></div></section>
|
|
');
|
|
|
|
// End of Header Generator
|
|
|
|
echo ('
|
|
<div class="album py-5 bg-light">
|
|
<div class="container">
|
|
<div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
|
|
');
|
|
|
|
$sort = 'id';
|
|
|
|
switch ($sortby) {
|
|
case 'price_asc':
|
|
$sort = 'price ASC';
|
|
break;
|
|
case 'price_desc':
|
|
$sort = 'price DESC';
|
|
break;
|
|
case 'date_desc':
|
|
$sort = 'date DESC';
|
|
break;
|
|
case 'date_asc':
|
|
$sort = 'date ASC';
|
|
break;
|
|
case 'random':
|
|
$sort = 'RAND()';
|
|
break;
|
|
case 'priority':
|
|
$sort = 'priority DESC';
|
|
break;
|
|
}
|
|
|
|
$sql = 'SELECT ID, title, description, link, image, reserved, price, date FROM whishes WHERE whislist = ' . $ListID . ' ORDER BY ' . $sort;
|
|
$result = $conn->query($sql);
|
|
|
|
if ($result !== false && $result->num_rows > 0) {
|
|
while ($row = $result->fetch_assoc()) {
|
|
generateListItem($row['ID'], $row['image'], $row['title'], $row['link'], $row['price'], $row['description'], $row['reserved'], $row['date']);
|
|
}
|
|
}
|
|
|
|
echo ('
|
|
</div></div></div>
|
|
');
|
|
|
|
$conn->close();
|
|
}
|