-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimages.php
More file actions
127 lines (104 loc) · 3.8 KB
/
images.php
File metadata and controls
127 lines (104 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-sessions.php");
include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-db-connection.php");
include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-functions.php");
include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-header.php");
?>
<main>
<?php $user = getUsersDetails($member); ?>
<?php
if (!$user || $user['member_is_admin'] != "yes") {
stderr("<strong>Protected</strong> page.");
include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-footer.php");
die();
}
?>
<div class="row">
<div class="col-md-3">
<div class="card">
<?php include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-dashboard.php"); ?>
</div>
<div class="card">
<?php include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-dashboard-extended.php"); ?>
</div>
</div>
<div class="col-md-9">
<div class="card">
<div class="card-header"><i class="fas fa-image"></i> Images <span class="badge bg-success float-end"><a href="new-image.php" class="badge badge-primary badge-sm text-decoration-none" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Upload a new image">New Image</a></span></div>
<div class="card-body">
<?php
if (isset($_GET['delete'])) {
try {
$delete = DB::getInstance()->remove('images', 'image_name', $_GET['imageName']);
if ($delete) {
@unlink("uploads/" . $_GET['imageName']);
stdmsg("The <strong>image</strong> has been <strong>deleted</strong>.");
}
} catch (Exception $e) {
stderr($e->getMessage());
}
}
?>
<?php $images = DB::getInstance()->select("SELECT * FROM `images`"); ?>
<!-- DataTables -->
<div class="table-responsive">
<table class="table table-striped" id="tableImages" width="100%" cellspacing="0">
<thead>
<tr>
<th>ID</th>
<th>Image</th>
<th>ALT Text</th>
<th>Copy</th>
<th> </th>
</tr>
</thead>
<tfoot>
<tr>
<th>ID</th>
<th>Image</th>
<th>ALT Text</th>
<th>Copy</th>
<th> </th>
</tr>
</tfoot>
<tbody>
<?php foreach ($images as $image) { ?>
<tr>
<td><?= $image['image_id']; ?></td>
<td class="text-center"><img src="<?= urlFull(); ?>uploads/<?= $image['image_name']; ?>" class="img-thumbnail" alt="<?= $image['image_alt_text']; ?>"></td>
<td><?= $image['image_alt_text']; ?></td>
<td class="text-center">
<button class="btn btn-outline-secondary btn-sm" type="button" onclick="copyImageURL('<?= $image['image_name']; ?>')" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy image location to clipboard"><i class="fa-solid fa-copy"></i></button>
</td>
<td class="text-center">
<a href="images.php?delete=1&imageName=<?= $image['image_name']; ?>" onClick="return confirm('Delete the image?')" class="btn btn-danger btn-sm" role="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Delete"><i class="far fa-trash-alt"></i></a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
function copyImageURL(imageName) {
var url = "<?= urlFull(); ?>uploads/" + imageName;
copyToClipboard(url);
}
function copyToClipboard(text) {
var input = document.createElement('textarea');
input.style.position = 'fixed';
input.style.opacity = 0;
input.value = text;
document.body.appendChild(input);
input.select();
document.execCommand('copy');
document.body.removeChild(input);
alert("Copied to clipboard: " + text);
}
</script>
</main>
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/includes/inc-footer.php");
?>