From be80166795a3713bedbb5fe7a08c841f4365ec99 Mon Sep 17 00:00:00 2001 From: Fluffy-Bean Date: Sat, 24 Sep 2022 14:08:14 +0000 Subject: [PATCH] Cleaning up Groups code --- app/app.php | 73 +++++++- assets/icons/package.svg | 1 + assets/icons/plus.svg | 1 + assets/ui/nav.php | 2 + group.php | 366 ++++++++++++++++++++------------------- 5 files changed, 260 insertions(+), 183 deletions(-) create mode 100644 assets/icons/package.svg create mode 100644 assets/icons/plus.svg diff --git a/app/app.php b/app/app.php index 17934b9..7588f35 100644 --- a/app/app.php +++ b/app/app.php @@ -135,14 +135,20 @@ class Image { Returns array with image info */ function get_image_info($conn, $id) { - // Setting SQL query - $sql = "SELECT * FROM images WHERE id = ".$id; - // Getting results - $query = mysqli_query($conn, $sql); - // Fetching associated info - $image_array = mysqli_fetch_assoc($query); + $sql = "SELECT * FROM images WHERE id = ?"; + + if ($stmt = mysqli_prepare($conn, $sql)) { + // Bind variables to the prepared statement as parameters + mysqli_stmt_bind_param($stmt, "i", $id); + + $stmt->execute(); + $query = $stmt->get_result(); + + // Fetching associated info + $group_array = mysqli_fetch_assoc($query); + } - return($image_array); + return($group_array); } /* Check if user is image owner @@ -164,6 +170,57 @@ class Image { } } +class Group { + function get_group_info($conn, $id) { + // Setting SQL query + $sql = "SELECT * FROM groups WHERE id = ?"; + + if ($stmt = mysqli_prepare($conn, $sql)) { + // Bind variables to the prepared statement as parameters + mysqli_stmt_bind_param($stmt, "i", $id); + + $stmt->execute(); + $query = $stmt->get_result(); + + // Fetching associated info + $group_array = mysqli_fetch_assoc($query); + } + + return($group_array); + } + + function get_group_members($conn, $id){ + $user_array = array(); + + $sql = "SELECT * FROM groups WHERE id = ?"; + + if ($stmt = mysqli_prepare($conn, $sql)) { + // Bind variables to the prepared statement as parameters + mysqli_stmt_bind_param($stmt, "i", $id); + + $stmt->execute(); + $query = $stmt->get_result(); + + // Fetching associated info + $group_array = mysqli_fetch_assoc($query); + } + + $image_list = explode(" ", $group_array['image_list']); + + foreach ($image_list as $image) { + $image_request = mysqli_query($conn, "SELECT author FROM images WHERE id = ".$image); + + while ($author = mysqli_fetch_column($image_request)) { + if (!in_array($author, $user_array)) { + array_push($user_array, $author); + } + } + } + + return($user_array); + } +} + class Diff { function time($past_time, $full_date = false) { $now = new \DateTime; @@ -193,4 +250,4 @@ class Diff { if (!$full_date) $string = array_slice($string, 0, 1); return $string ? implode(', ', $string) . ' ago' : 'just now'; } -} \ No newline at end of file +} diff --git a/assets/icons/package.svg b/assets/icons/package.svg new file mode 100644 index 0000000..f2ebf0d --- /dev/null +++ b/assets/icons/package.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/plus.svg b/assets/icons/plus.svg new file mode 100644 index 0000000..aa4b3b2 --- /dev/null +++ b/assets/icons/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/ui/nav.php b/assets/ui/nav.php index 15427b2..597bca4 100644 --- a/assets/ui/nav.php +++ b/assets/ui/nav.php @@ -17,6 +17,8 @@ $loggedin = new Account(); ?> Upload
+ Groups +
- - - - - + + + -
- get_group_info($conn, $_GET['id']); + if (!isset($group) || empty($group)) header("Location: group.php"); + $image_list = array_reverse(explode(" ", $group['image_list'])); - if ($stmt = mysqli_prepare($conn, $sql)) { - // Bind variables to the prepared statement as parameters - mysqli_stmt_bind_param($stmt, "i", $param_group_id); - - $param_group_id = $_GET['id']; - - $stmt->execute(); - $query = $stmt->get_result(); + echo "
"; - $group = mysqli_fetch_array($query); + echo "

".$group['group_name']."

"; - $image_list = array_reverse(explode(" ", $group['image_list'])); - } - } - ?> -

- get_user_info($conn, $group['author']); - - if (isset($user['username'])) { - echo "

By: ".$user['username']."

"; - } else { - echo "

By: Deleted User

"; + $author_info = $user_info->get_user_info($conn, $group['author']); + echo "

By: ".$author_info['username']."

"; + + $group_members = $group_info->get_group_members($conn, $_GET['id']); + $members_array = array(); + foreach ($group_members as $member) { + $member_info = $user_info->get_user_info($conn, $member); + array_push($members_array, $member_info['username']); } + echo "

Members: ".implode(", ", $members_array)."

"; $upload_time = new DateTime($group['created_on']); - echo "

Created at: ".$upload_time->format('d/m/Y H:i:s T')."

"; - ?> - + + echo "

Last Modified: ".$diff->time($group['last_modified'])."

"; -

Last Modified: time($group['last_modified']); ?>

- is_admin($conn, $_SESSION['id'])) { - $privilaged = True; - } else { - $privilaged = False; - } + if ($_GET['mode'] == "edit") { + if ($_SESSION['id'] == $group['author'] || $user_info->is_admin($conn, $_SESSION['id'])) { + echo ""; - if (isset($_GET['mode']) && $_GET['mode'] == "edit") { - if (!$privilaged) header("Location: group.php?id=".$_GET['id']); + echo ""; + ?> + + Delete"; + $image_request = mysqli_query($conn, "SELECT * FROM images"); - ?> - - - "; + while ($image = mysqli_fetch_array($image_request)) { + if (in_array($image['id'], $image_list)) { + echo ""; + } else { + echo ""; + } + } + echo " + "; - $image_request = mysqli_query($conn, "SELECT * FROM images"); - echo "
"; - while ($image = mysqli_fetch_array($image_request)) { - if (in_array($image['id'], $image_list)) { - echo ""; - } else { - echo ""; - } + echo "Back"; } - echo "
"; - - echo "Back"; } else { - if ($privilaged) echo "Edit"; + if ($_SESSION['id'] == $group['author'] || $user_info->is_admin($conn, $_SESSION['id'])) { + echo "Edit"; + } } - ?> -
+ + echo "
"; + } + ?> "; - } else { - echo ""; - } - } - - ?> - - - NSFW - + + if (in_array($image['id'], $image_list)) { + echo ""; } else { - echo ""; + } else { + echo ""; + } + } + } catch(Exception $e) { + $e; } } } + } elseif (!isset($_GET['id']) && empty($_GET['id'])) { + $group_list = mysqli_query($conn, "SELECT * FROM groups ORDER BY id DESC"); + + 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 (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 ""; + } else { + echo ""; + } + } } ?>