<?php require_once __DIR__."/app/required.php"; use App\Account; use App\Image; use App\Group; use App\Diff; $user_info = new Account; $image_info = new Image; $group_info = new Group; $diff = new Diff(); if (isset($_GET['id'])) { $group = $group_info->get_group_info($conn, $_GET['id']); if (!isset($group) || empty($group)) { header("Location: group.php"); $_SESSION['err'] = "You followed a broken link"; } } if (isset($_SESSION['err'])) { ?> <script> sniffleAdd("Error", "<?php echo $_SESSION['msg']; ?>", "var(--warning)", "assets/icons/trash.svg"); </script> <?php unset($_SESSION['err']); } ?> <!DOCTYPE html> <html> <head> <?php require_once __DIR__."/assets/ui/header.php"; ?> </head> <body> <?php require_once __DIR__."/assets/ui/nav.php"; if (isset($_SESSION['msg'])) { ?> <script> sniffleAdd("Info", "<?php echo $_SESSION['msg']; ?>", "var(--green)", "assets/icons/check.svg"); </script> <?php unset($_SESSION['msg']); } ?> <?php if (isset($_GET['id'])) { $image_list = array_reverse(explode(" ", $group['image_list'])); echo "<div class='group-banner defaultDecoration defaultSpacing defaultFonts'> <div class='group-description'>"; $author_info = $user_info->get_user_info($conn, $group['author']); echo "<h2>".$group['group_name']."<span>by</span><a href='profile.php?user=".$author_info['id']."'>".$author_info['username']."</a></h2>"; $group_members = $group_info->get_group_members($conn, $_GET['id']); if (!empty($group_members)) { $members_array = array(); foreach ($group_members as $member) { $member_info = $user_info->get_user_info($conn, $member); if (!empty($member_info['username'])) $members_array[] = "<a href='profile.php?user=".$member_info['id']."'>".$member_info['username']."</a>"; } echo "<p>Featured: ".implode(", ", $members_array)."</p>"; } if (!empty($group['image_list'])) echo "<p>Images: ".count(explode(" ", $group['image_list']))."</p>"; $upload_time = new DateTime($group['created_on']); echo "<p id='updateTime'>Created at: ".$upload_time->format('d/m/Y H:i:s T')."</p>"; ?> <script> var updateDate = new Date('<?php echo $upload_time->format('m/d/Y H:i:s T'); ?>'); updateDate = updateDate.toLocaleDateString('en-GB', {year: 'numeric', month: 'short', day: 'numeric'}); $("#updateTime").html("Created at: "+updateDate); </script> <?php echo "<p>Last Modified: ".$diff->time($group['last_modified'])."</p>"; if ($_GET['mode'] == "edit") { if ($_SESSION['id'] == $group['author'] || $user_info->is_admin($conn, $_SESSION['id'])) { echo "<br>"; echo "<button id='deleteGroup' class='btn btn-bad'>Delete</button>"; ?> <script> $('#deleteGroup').click(function() { var header = "Are you surrrrrre?"; var description = "The images will still be up, but all your hard work setting this group up will be gone!"; var actionBox = "<form id='titleForm' method='POST'>\ <button id='deleteSubmit' class='btn btn-bad' type='submit'><img class='svg' src='assets/icons/trash.svg'>Delete group</button>\ </form>"; flyoutShow(header, description, actionBox); $("#titleForm").submit(function(event) { event.preventDefault(); var deleteSubmit = $("#deleteSubmit").val(); $("#newSniff").load("app/image/group.php", { group_id: <?php echo $_GET['id']; ?>, group_delete: deleteSubmit }); }); }); </script> <?php echo "<button id='editTitle' class='btn btn-bad'>Update title</button>"; ?> <script> $('#editTitle').click(function() { var header = "Newwww photo group name!"; var description = "What will it be? uwu"; var actionBox = "<form id='titleForm' action='app/image/edit_description.php' method='POST'>\ <input id='titleText' class='btn btn-neutral' type='text' placeholder='New title'>\ <button id='titleSubmit' class='btn btn-bad' type='submit'><img class='svg' src='assets/icons/edit.svg'>Update title</button>\ </form>"; flyoutShow(header, description, actionBox); $("#titleForm").submit(function(event) { event.preventDefault(); var titleText = $("#titleText").val(); var titleSubmit = $("#titleSubmit").val(); $("#newSniff").load("app/image/group.php", { group_id: <?php echo $_GET['id']; ?>, group_title: titleText, title_submit: titleSubmit }); }); }); </script> <?php echo "<br>"; $image_request = mysqli_query($conn, "SELECT * FROM images"); echo "<form id='groupForm'>"; while ($image = mysqli_fetch_array($image_request)) { if (in_array($image['id'], $image_list)) { echo "<input style='display: none;' type='checkbox' id='".$image['id']."' name='".$image['id']."' checked/>"; } else { echo "<input style='display: none;' type='checkbox' id='".$image['id']."' name='".$image['id']."'/>"; } } echo "<button id='groupSubmit' class='btn btn-good' type='submit'>Save changes</button> </form>"; echo "<a href='group.php?id=".$_GET['id']."' class='btn btn-neutral'>Back</a>"; } } else { if ($_SESSION['id'] == $group['author'] || $user_info->is_admin($conn, $_SESSION['id'])) { echo "<a href='group.php?id=".$_GET['id']."&mode=edit' class='btn btn-neutral'>Edit</a>"; } ?> <button class='btn btn-good' onclick='copyLink()'><img class='svg' src='assets/icons/clipboard-text.svg'>Copy link</button> <script> function copyLink() { navigator.clipboard.writeText(window.location.href); sniffleAdd("Info", "Link has been copied!", "var(--success)", "assets/icons/clipboard-text.svg"); } </script> <?php } echo "</div>"; $cover_image = $image_info->get_image_info($conn, $image_list[array_rand($image_list, 1)]); if (!empty($cover_image['imagename'])) { ?> <div class='group-cover'> <span></span> <img <?php if(str_contains($cover_image['tags'], "nsfw")) echo "class='nsfw-blur'"; ?> src='images/<?php echo $cover_image['imagename']; ?>'/> </div> <?php } echo "</div>"; } ?> <?php if (empty($group['image_list']) && $_GET['mode'] != "edit" && !empty($_GET['id'])) { echo "<div class='info-text defaultFonts' style='text-align: center !important;'> <h1>Nothing here!</h1> <p>There are no images in the group, add some!</p> </div>"; echo "<div id='gallery' class='gallery-root defaultDecoration' style='display: none;'>"; } else { echo "<div id='gallery' class='gallery-root defaultDecoration' >"; } if (isset($_GET['id']) && !empty($_GET['id'])) { if (isset($_GET['mode']) && $_GET['mode'] == "edit") { $image_request = mysqli_query($conn, "SELECT * FROM images ORDER BY id DESC"); while ($image = mysqli_fetch_array($image_request)) { // Getting thumbnail if (file_exists("images/thumbnails/".$image['imagename'])) { $image_path = "images/thumbnails/".$image['imagename']; } else { $image_path = "images/".$image['imagename']; } if (in_array($image['id'], $image_list)) { echo "<div id='".$image['id']."' class='gallery-item selectedImage'> <img class='gallery-image' loading='lazy' src='".$image_path."' id='".$image['id']."'> </div>"; } else { echo "<div id='".$image['id']."' class='gallery-item'> <img class='gallery-image' loading='lazy' src='".$image_path."' id='".$image['id']."'> </div>"; } } ?> <script> $(".gallery-item").click(function() { if (this.classList.contains("selectedImage")) { deselect(this); } else { select(this); } }); function select(item) { document.getElementById(item.id).checked = true; item.classList.add("selectedImage"); } function deselect(item) { document.getElementById(item.id).checked = false; item.classList.remove("selectedImage"); } function getList() { var checkedBoxes = document.querySelectorAll('input[type=checkbox]:checked'); var images = []; checkedBoxes.forEach(element => { images.push(element.id); }); return images; } $("#groupForm").submit(function(event) { event.preventDefault(); var groupSubmit = $("#groupSubmit").val(); var images = getList(); if (images <= 0) { sniffleAdd('Oppsie', 'Groups need at least 1 image in them. Alternativly, you can delete this group.', 'var(--warning)', 'assets/icons/cross.svg'); } else { $("#newSniff").load("app/image/group.php", { group_images: images, group_id: <?php echo $_GET['id']; ?>, group_submit: groupSubmit }); } }); </script> <?php } else { foreach ($image_list as $image) { // Reading images from table try { $image_request = mysqli_query($conn, "SELECT * FROM images WHERE id = ".$image); while ($image = mysqli_fetch_array($image_request)) { // Getting thumbnail if (file_exists("images/thumbnails/".$image['imagename'])) { $image_path = "images/thumbnails/".$image['imagename']; } else { $image_path = "images/".$image['imagename']; } // Check for NSFW tag if (str_contains($image['tags'], "nsfw")) { echo "<div class='gallery-item'> <a href='image.php?id=".$image['id']."' class='nsfw-warning'><img class='svg' src='assets/icons/warning_red.svg'><span>NSFW</span></a> <a href='image.php?id=".$image['id']."'><img class='gallery-image nsfw-blur' loading='lazy' src='".$image_path."' id='".$image['id']."'></a> </div>"; } else { echo "<div class='gallery-item'> <a href='image.php?id=".$image['id']."'><img class='gallery-image' loading='lazy' src='".$image_path."' id='".$image['id']."'></a> </div>"; } } } catch(Exception $e) { $e; } } } } elseif (!isset($_GET['id']) && empty($_GET['id'])) { if ($_SESSION["loggedin"]) { echo "<div class='group-make'> <button id='createGroup'><img class='svg' src='assets/icons/plus.svg'><span>Make new group</span></button> </div>"; ?> <script> $('#createGroup').click(function() { $("#newSniff").load("app/image/group.php", { new_group_submit: "uwu" }); }); </script> <?php } $group_list = mysqli_query($conn, "SELECT * FROM groups ORDER BY id DESC"); if (empty($group_list) && !$_SESSION["loggedin"]) { ?> <style> .gallery-root { display: none; } </style> <script> $('body').append("<div class='info-text defaultFonts' style='text-align: center !important;'><h1>There are no groups yet</h1><p>Login to make a group!</p></div>"); </script> <?php } foreach ($group_list as $group) { $image_list = array_reverse(explode(" ", $group['image_list'])); $image = $image_info->get_image_info($conn, $image_list[array_rand($image_list, 1)]); // Getting thumbnail if (!empty($image['imagename'])) { if (file_exists("images/thumbnails/".$image['imagename'])) { $image_path = "images/thumbnails/".$image['imagename']; } else { $image_path = "images/".$image['imagename']; } } else { $image_path = "assets/no_image.png"; } // Check for NSFW tag if (str_contains($image['tags'], "nsfw")) { echo "<div class='gallery-item group-item'> <a href='group.php?id=".$group['id']."' class='nsfw-warning gallery-group'><img class='svg' src='assets/icons/warning_red.svg'><span>NSFW</span></a> <a href='group.php?id=".$group['id']."'><img class='gallery-image nsfw-blur' loading='lazy' src='".$image_path."' id='".$group['id']."'></a> <a href='group.php?id=".$group['id']."' class='group-name'>".$group['group_name']."</a> </div>"; } else { echo "<div class='gallery-item group-item'> <a href='group.php?id=".$group['id']."' class='gallery-group'></a> <a href='group.php?id=".$group['id']."'><img class='gallery-image' loading='lazy' src='".$image_path."' id='".$group['id']."'></a> <a href='group.php?id=".$group['id']."' class='group-name'>".$group['group_name']."</a> </div>"; } } } ?> </div> <?php require_once __DIR__."/assets/ui/footer.php"; ?> </body> </html>