<?php
//security
if (!defined('WPINC')) {
exit("Do not access this file directly.");
}
?>
<style>
.biggidroid-gallery-container-header {
margin-bottom: 10px;
border-bottom: 1px solid lightgray;
padding-bottom: 10px;
text-align: center;
}
.biggidroid-gallery-container-body-flex {
display: flex;
justify-content: flex-start;
align-items: center;
margin-bottom: 10px;
}
.biggidroid-gallery-container-body-flex img {
width: 75px;
height: 56px;
object-fit: cover;
object-position: center;
}
.biggidroid-gallery-container-body-flex p {
margin: 0px;
margin-left: 10px;
color: red;
cursor: pointer;
}
.biggidroid-gallery-container-body-flex p:hover {
text-decoration: underline;
color: black;
}
</style>
<div class="biggidroid-gallery-container">
<!-- header -->
<div class="biggidroid-gallery-container-header">
<button type="button" class="button button-primary button-large biggidroid-add-image">
Add Image
</button>
</div>
<!-- body -->
<div class="biggidroid-gallery-container-body">
<?php
//get biggidroidImages
$biggidroidImages = get_post_meta($post->ID, 'biggidroidImages', true);
//decode data
$biggidroidImages = json_decode($biggidroidImages);
//loop through
foreach ($biggidroidImages as $biggidroidImage) :
?>
<div class="biggidroid-gallery-container-body-flex">
<input type="hidden" name="biggidroidImages[]" value="<?php echo $biggidroidImage; ?>">
<img src="<?php echo $biggidroidImage; ?>" alt="">
<p class="removeImage" onclick="removeImageBiggiDroidGallery(this, event)">
Remove
</p>
</div>
<?php
endforeach;
?>
</div>
</div>
<script>
//add on click event
let removeImageBiggiDroidGallery = (elem, e) => {
e.preventDefault();
jQuery(document).ready(function($) {
var element = $(elem);
//remove the parent element
element.parent().remove();
});
}
jQuery(document).ready(function($) {
$(".biggidroid-add-image").click(function(e) {
e.preventDefault();
//load wp media
var mediaUploader = wp.media({
title: "Select Image",
button: {
text: "Select Image"
},
multiple: false
});
//on select
mediaUploader.on("select", function() {
var attachment = mediaUploader.state().get("selection").first().toJSON();
//image url
var imageUrl = attachment.url;
//append to biggidroid-gallery-container-body
$(".biggidroid-gallery-container-body").append(
`
<div class="biggidroid-gallery-container-body-flex">
<input type="hidden" name="biggidroidImages[]" value="${imageUrl}">
<img src="${imageUrl}" alt="${attachment.alt}">
<p class="removeImage" onclick="removeImageBiggiDroidGallery(this, event)">
Remove
</p>
</div>
`
);
});
//open
mediaUploader.open();
});
});
</script>
|