2022-07-21 14:53:04 +00:00
<! DOCTYPE html >
< html >
< head >
< meta charset = " utf-8 " >
< meta name = " viewport " content = " width=device-width, initial-scale=1.0 " >
2022-07-25 15:13:26 +00:00
< title > Gallery </ title >
2022-07-21 14:53:04 +00:00
< link rel = " stylesheet " href = " css/master.css " >
< link href = " https://fonts.googleapis.com/css2?family=Rubik " rel = " stylesheet " >
2022-07-23 14:03:11 +00:00
< link rel = " stylesheet " href = " https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@600&display=swap " >
< link rel = " stylesheet " href = " https://fonts.googleapis.com/css2?family=Fira+Code:wght@500&display=swap " >
2022-07-31 11:50:52 +00:00
<!-- Rich preview -->
< meta property = " og:type " content = " object " >
< meta property = " og:title " content = " Only Legs " >
< meta property = " og:site_name " content = " Only Legs " >
< meta property = " og:url " content = " https://superdupersecteteuploadtest.fluffybean.gay " >
< meta property = " og:description " content = " Only Legs, a gallery made and hosted by Fluffy " >
2022-07-21 14:53:04 +00:00
</ head >
< body >
< ? php
2022-07-23 07:44:43 +00:00
include ( " ui/header.php " );
2022-07-21 14:53:04 +00:00
2022-07-30 10:41:37 +00:00
/*
If theres a success in updating the image ,
it ' ll let the user know
*/
2022-07-24 09:43:54 +00:00
if ( $_GET [ " update " ] == " success " ) {
2022-07-25 15:13:26 +00:00
echo " <p class='alert alert-high space-bottom-large'>Information updated</p> " ;
2022-07-30 12:40:30 +00:00
} elseif ( $_GET [ " update " ] == " error " ) {
echo " <p class='alert alert-default space-bottom-large'>Something went fuckywucky, please try later</p> " ;
2022-07-30 10:41:37 +00:00
}
2022-08-01 09:31:23 +00:00
// If ID present pull all image data
if ( isset ( $_GET [ 'id' ])) {
$image = get_image_info ( $conn , $_GET [ 'id' ]);
2022-07-30 10:41:37 +00:00
2022-08-01 09:31:23 +00:00
// Check if image is avalible
if ( isset ( $image [ 'imagename' ])) {
// Display image
$image_path = " images/ " . $image [ 'imagename' ];
$image_alt = $image [ 'alt' ];
} else {
// ID not avalible toast
echo " <p class='alert alert-low space-bottom-large'>Could not find image with ID: " . $_GET [ 'id' ] . " </p> " ;
2022-07-30 10:41:37 +00:00
2022-08-01 09:31:23 +00:00
// Replacement "no image" image and description
$image_path = " assets/no_image.png " ;
$image_alt = " No image could be found, sowwy " ;
}
} else {
// No ID toast
echo " <p class='alert alert-low space-bottom-large'>No ID present</p> " ;
// Replacement "no image" image and description
$image_path = " assets/no_image.png " ;
$image_alt = " No image could be found, sowwy " ;
}
// Get all user details
if ( isset ( $image [ 'author' ])) {
$user = get_user_info ( $conn , $image [ 'author' ]);
}
// Check user privilge
if ( image_privilage ( $image [ 'author' ]) || is_admin ( $_SESSION [ 'id' ])) {
2022-07-30 10:41:37 +00:00
$privilaged = True ;
} else {
$privilaged = False ;
}
/*
Delete flyout
This goes with the confirm script below , to use flyout , you must include the js script and php function
*/
if ( isset ( $_POST [ 'delete_flyout' ]) && $privilaged ) {
$header = " Are you sure? " ;
$content = " Deleting this image is pernament, there is no going back after this!!!!! " ;
$action = " <form method='POST' enctype='multipart/form-data'>
< button class = 'btn alert-low' type = 'submit' name = 'delete_confirm' value = '".$image[' id ']."' >< img class = 'svg' src = 'assets/icons/trash.svg' > Delete image </ button >
</ form > " ;
flyout ( $header , $content , $action );
}
/*
Confirm deleting user
user must be privilaged to do this action this the privilaged == true
*/
if ( isset ( $_POST [ 'delete_confirm' ]) && $privilaged ) {
// Unset all the variables, needed by flyout
unset ( $header , $content , $action );
// Delete from table
$image_delete_request = " DELETE FROM swag_table WHERE id = " . $image [ 'id' ];
$image_delete = mysqli_query ( $conn , $image_delete_request );
if ( $image_delete ) {
// See if image is in the directory
if ( is_file ( " images/ " . $image [ 'imagename' ])) {
unlink ( " images/ " . $image [ 'imagename' ]);
}
// Delete thumbnail if exitsts
if ( is_file ( " images/thumbnails/ " . $image [ 'imagename' ])) {
unlink ( " images/thumbnails/ " . $image [ 'imagename' ]);
}
header ( " Location:index.php?del=true&id= " . $image [ 'id' ]);
} else {
$error = " Could not delete image " ;
}
}
2022-07-30 12:40:30 +00:00
/*
Description edit
*/
if ( isset ( $_POST [ 'description_flyout' ]) && $privilaged ) {
$header = " Enter new Description/Alt " ;
$content = " Whatcha gonna put in there 👀 " ;
$action = " <form class='flex-down between' method='POST' enctype='multipart/form-data'>
< input class = 'btn alert-default space-bottom' type = 'text' name = 'update_alt' placeholder = 'Description/Alt for image' >
< button class = 'btn alert-low' type = 'submit' name = 'description_confirm' value = '".$image["id"]."' >< img class = 'svg' src = 'assets/icons/edit.svg' > Update information </ button >
</ form > " ;
2022-07-30 10:41:37 +00:00
2022-07-30 12:40:30 +00:00
flyout ( $header , $content , $action );
}
2022-07-30 10:41:37 +00:00
/*
2022-07-30 12:40:30 +00:00
Description confirm
2022-07-30 10:41:37 +00:00
*/
2022-07-30 12:40:30 +00:00
if ( isset ( $_POST [ 'description_confirm' ]) && $privilaged ) {
// Unset all the variables, needed by flyout
unset ( $header , $content , $action );
// getting ready forSQL asky asky
$sql = " UPDATE swag_table SET alt=? WHERE id=? " ;
// Checking if databse is doing ok
if ( $stmt = mysqli_prepare ( $conn , $sql )) {
mysqli_stmt_bind_param ( $stmt , " si " , $param_alt , $param_id );
// Setting parameters
$param_alt = $_POST [ 'update_alt' ];
$param_id = $image [ " id " ];
// Attempt to execute the prepared statement
if ( mysqli_stmt_execute ( $stmt )) {
header ( " Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id= " . $image [ " id " ] . " &update=success " );
} else {
header ( " Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id= " . $image [ " id " ] . " &update=error " );
}
}
}
2022-07-30 15:01:56 +00:00
/*
Adding tags
*/
if ( isset ( $_POST [ 'tags_flyout' ]) && $privilaged ) {
$header = " Tags " ;
$content = " Add image tags here! This is still being tested so your tags may be removed later on. Tags ONLY accept, letters, numbers and underscores. Hyphens will be stitched to underscores and spaces will seperate the different tags from eachother. " ;
$action = " <form class='flex-down between' method='POST' enctype='multipart/form-data'>
< input class = 'btn alert-default space-bottom' type = 'text' name = 'add_tags' placeholder = 'Tags are seperated by spaces' >
< button class = 'btn alert-low' type = 'submit' name = 'tags_confirm' value = '".$image["id"]."' >< img class = 'svg' src = 'assets/icons/edit.svg' > Add tags </ button >
</ form > " ;
flyout ( $header , $content , $action );
}
/*
Tags Confirm
*/
if ( isset ( $_POST [ 'tags_confirm' ]) && $privilaged ) {
// Unset all the variables, needed by flyout
unset ( $header , $content , $action );
// Clean tags before adding
function clean ( $string ) {
// Change to lowercase
2022-07-31 11:50:52 +00:00
$string = strtolower ( $string );
2022-07-30 15:01:56 +00:00
// Replace hyphens
$string = str_replace ( '-' , '_' , $string );
// Regex
$string = preg_replace ( '/[^A-Za-z0-9\_ ]/' , '' , $string );
// Return string
return preg_replace ( '/ +/' , ' ' , $string );
}
// Clean input
$tags_string = clean ( trim ( $_POST [ 'add_tags' ]));
// getting ready forSQL asky asky
$sql = " UPDATE swag_table SET tags=? WHERE id=? " ;
// Checking if databse is doing ok
if ( $stmt = mysqli_prepare ( $conn , $sql )) {
mysqli_stmt_bind_param ( $stmt , " si " , $param_tags , $param_id );
// Setting parameters
$param_tags = $tags_string ;
$param_id = $image [ " id " ];
// Attempt to execute the prepared statement
if ( mysqli_stmt_execute ( $stmt )) {
header ( " Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id= " . $image [ " id " ] . " &update=success " );
} else {
header ( " Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id= " . $image [ " id " ] . " &update=error " );
}
}
}
2022-07-30 12:40:30 +00:00
/*
Description athor
*/
2022-08-01 09:31:23 +00:00
if ( isset ( $_POST [ 'author_flyout' ]) && is_admin ( $_SESSION [ 'id' ])) {
2022-07-30 12:40:30 +00:00
$header = " Who owns the image????? " ;
$content = " Enter ID of image owner " ;
$action = " <form class='flex-down between' method='POST' enctype='multipart/form-data'>
< input class = 'btn alert-default space-bottom' type = 'text' name = 'update_author' placeholder = 'New user ID' >
< button class = 'btn alert-low' type = 'submit' name = 'author_confirm' value = '".$image["id"]."' >< img class = 'svg' src = 'assets/icons/edit.svg' > Update information </ button >
</ form > " ;
2022-07-30 10:41:37 +00:00
flyout ( $header , $content , $action );
}
2022-07-30 12:40:30 +00:00
/*
Author confirm
*/
2022-08-01 09:31:23 +00:00
if ( isset ( $_POST [ 'author_confirm' ]) && is_admin ( $_SESSION [ 'id' ])) {
2022-07-30 12:40:30 +00:00
// Unset all the variables, needed by flyout
unset ( $header , $content , $action );
// getting ready forSQL asky asky
$sql = " UPDATE swag_table SET author=? WHERE id=? " ;
// Checking if databse is doing ok
if ( $stmt = mysqli_prepare ( $conn , $sql )) {
mysqli_stmt_bind_param ( $stmt , " si " , $param_author , $param_id );
// Setting parameters
$param_author = $_POST [ 'update_author' ];
$param_id = $image [ " id " ];
// Attempt to execute the prepared statement
if ( mysqli_stmt_execute ( $stmt )) {
header ( " Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id= " . $image [ " id " ] . " &update=success " );
} else {
header ( " Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id= " . $image [ " id " ] . " &update=error " );
}
}
}
2022-07-23 07:44:43 +00:00
?>
< div class = " image-container " >
2022-07-28 10:35:57 +00:00
< ? php
// Displaying image
echo " <img class='image' id=' " . $image [ 'id' ] . " ' src=' " . $image_path . " ' alt=' " . $image_alt . " '> " ;
?>
2022-07-21 14:53:04 +00:00
</ div >
2022-07-27 11:46:10 +00:00
< div class = " image-description default-window " >
2022-07-22 00:21:48 +00:00
< h2 > Description </ h2 >
< ? php
2022-07-22 13:55:56 +00:00
// Image Description/Alt
2022-07-28 21:18:14 +00:00
if ( isset ( $image_alt ) && ! empty ( $image_alt )) {
2022-07-23 07:44:43 +00:00
echo " <p> " . $image_alt . " </p> " ;
2022-07-28 10:35:57 +00:00
} else {
echo " <p>No description provided</p> " ;
2022-07-22 13:55:56 +00:00
}
2022-07-22 00:21:48 +00:00
?>
</ div >
2022-07-27 11:46:10 +00:00
< div class = " image-detail flex-down default-window " >
2022-07-22 00:21:48 +00:00
< h2 > Details </ h2 >
2022-07-21 14:53:04 +00:00
< ? php
2022-07-25 17:28:55 +00:00
// Image ID
if ( isset ( $image [ 'author' ])) {
2022-07-28 10:35:57 +00:00
if ( isset ( $user [ 'username' ])) {
echo " <p>Author: " . $user [ 'username' ] . " </p> " ;
} else {
echo " <p>Author: Deleted User</p> " ;
}
2022-07-25 17:28:55 +00:00
} else {
echo " <p>Author: No author</p> " ;
}
2022-07-22 13:55:56 +00:00
// Image ID
2022-07-21 14:53:04 +00:00
echo " <p>ID: " . $image [ 'id' ] . " </p> " ;
2022-07-22 13:55:56 +00:00
// File name
2022-07-21 14:53:04 +00:00
echo " <p>File Name: " . $image [ 'imagename' ] . " </p> " ;
2022-07-22 13:55:56 +00:00
// Image Upload date
2022-07-26 11:33:28 +00:00
echo " <p>Last updated: " . $image [ 'upload' ] . " (+0)</p> " ;
2022-07-22 13:55:56 +00:00
// Image resolution
list ( $width , $height ) = getimagesize ( $image_path );
echo " <p>Image resolution: " . $width . " x " . $height . " </p> " ;
2022-07-23 14:03:11 +00:00
// Image download
echo " <a class='btn alert-high space-top' href='images/ " . $image [ 'imagename' ] . " ' download=' " . $image [ 'imagename' ] . " '><img class='svg' src='assets/icons/download.svg'>Download image</a> " ;
2022-07-29 15:41:05 +00:00
// Flyout test button
2022-07-21 14:53:04 +00:00
?>
</ div >
2022-07-28 21:18:14 +00:00
< div class = " tags-root default-window " >
< h2 > Tags </ h2 >
2022-07-29 12:53:36 +00:00
< div class = " tags flex-left " >
2022-07-28 21:18:14 +00:00
< ? php
2022-07-30 15:01:56 +00:00
// Get image tags
if ( isset ( $image [ 'tags' ]) && ! empty ( $image [ 'tags' ])) {
$image_tags_array = explode ( " " , $image [ 'tags' ]);
foreach ( $image_tags_array as $tag ) {
echo " <p class='tag alert-high'> " . $tag . " </p> " ;
}
} else {
echo " <p>No tags present</p> " ;
2022-07-28 21:18:14 +00:00
}
?>
</ div >
</ div >
2022-07-25 17:28:55 +00:00
< ? php
2022-07-30 15:01:56 +00:00
/*
Check if user is privilaged ,
If yes , grant them access to the Danger zone , or " the place that can fuck things up "
Checking is done prior to here
*/
2022-07-30 10:41:37 +00:00
if ( $privilaged ) {
2022-07-29 15:41:05 +00:00
// Danger zone
echo " <div class='danger-zone flex-down default-window'>
< h2 > Danger zone </ h2 > " ;
2022-07-30 12:40:30 +00:00
// Delete
echo " <form method='POST'>
< button class = 'btn alert-low flyout-display' type = 'submit' name = 'delete_flyout' >< img class = 'svg' src = 'assets/icons/trash.svg' > Delete image </ button >
</ form > " ;
// Edit description
echo " <form method='POST'>
< button class = 'btn alert-low space-top-small flyout-display' type = 'submit' name = 'description_flyout' >< img class = 'svg' src = 'assets/icons/edit.svg' > Edit description </ button >
</ form > " ;
2022-07-30 15:01:56 +00:00
// Edit tags
2022-07-30 10:41:37 +00:00
echo " <form method='POST'>
2022-07-30 15:01:56 +00:00
< button class = 'btn alert-low space-top-small flyout-display' type = 'submit' name = 'tags_flyout' >< img class = 'svg' src = 'assets/icons/edit.svg' > Add image tags </ button >
2022-07-30 10:41:37 +00:00
</ form > " ;
2022-07-29 15:41:05 +00:00
2022-07-30 15:01:56 +00:00
// Edit authro
2022-08-01 09:31:23 +00:00
if ( is_admin ( $_SESSION [ 'id' ])) {
2022-07-30 15:01:56 +00:00
echo " <form method='POST'>
< button class = 'btn alert-low space-top-small flyout-display' type = 'submit' name = 'author_flyout' >< img class = 'svg' src = 'assets/icons/edit.svg' > Edit author </ button >
</ form > " ;
}
2022-07-25 17:28:55 +00:00
echo " </div> " ;
}
?>
2022-07-21 14:53:04 +00:00
2022-07-26 12:34:48 +00:00
< ? php
2022-07-30 10:41:37 +00:00
// Must be included with flyout.php
echo " <script src='scripts/flyout.js'></script> " ;
2022-07-29 12:53:36 +00:00
2022-07-26 12:34:48 +00:00
include ( " ui/top.html " );
2022-07-26 13:52:41 +00:00
include ( " ui/footer.php " );
2022-07-26 12:34:48 +00:00
?>
2022-07-21 14:53:04 +00:00
</ body >
</ html >