force update CSS2

This commit is contained in:
twotalesanimation
2025-12-08 10:55:08 +02:00
parent 752ea6e5e9
commit bbc0aecbcb
2 changed files with 40 additions and 46 deletions

View File

@@ -1,12 +1,6 @@
@charset "UTF-8"; @charset "UTF-8";
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
Template Name: Ravelo - Travel & Tour Booking HTML Template 4WDCSA.co.za CSS Stylesheet
Template URI: https://webtend.net/demo/html/ravelo/
Author: WebTend
Author URI: https://webtend.net/
Version: 1.0
Note: This is Main Style CSS File. */
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
CSS INDEX CSS INDEX
---------------------- ----------------------

View File

@@ -76,8 +76,8 @@ $bannerImages = glob($bannerFolder . '*.{jpg,jpeg,png,webp}', GLOB_BRACE);
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h2>Manage Blog Posts</h2> <h2>Manage Blog Posts</h2>
<?php if (isset($_SESSION['message'])): ?> <?php if (isset($_SESSION['message'])): ?>
<div class="alert alert-warning message-box"> <div class="alert alert-warning message-box">
<?php echo $_SESSION['message']; ?> <?php echo $_SESSION['message']; ?>
<span class="close-btn" onclick="this.parentElement.style.display='none'">&times;</span> <span class="close-btn" onclick="this.parentElement.style.display='none'">&times;</span>
@@ -90,7 +90,7 @@ $bannerImages = glob($bannerFolder . '*.{jpg,jpeg,png,webp}', GLOB_BRACE);
// Determine cover image - use provided image or fallback placeholder // Determine cover image - use provided image or fallback placeholder
$coverImage = $post["image"] ? $post["image"] : 'assets/images/placeholder.jpg'; $coverImage = $post["image"] ? $post["image"] : 'assets/images/placeholder.jpg';
// Output the HTML structure with dynamic data // Output the HTML structure with dynamic data
echo ' echo '
<div class="destination-item style-three bgc-lighter booking" data-aos="fade-up" data-aos-duration="1500" data-aos-offset="50"> <div class="destination-item style-three bgc-lighter booking" data-aos="fade-up" data-aos-duration="1500" data-aos-offset="50">
<div class="image" style="width:200px;height:200px;"> <div class="image" style="width:200px;height:200px;">
<img src="' . htmlspecialchars($coverImage) . '" alt="' . htmlspecialchars($post["title"]) . '"> <img src="' . htmlspecialchars($coverImage) . '" alt="' . htmlspecialchars($post["title"]) . '">
@@ -107,58 +107,58 @@ $bannerImages = glob($bannerFolder . '*.{jpg,jpeg,png,webp}', GLOB_BRACE);
<p>' . $post["description"] . '</p> <p>' . $post["description"] . '</p>
<div class="destination-footer"> <div class="destination-footer">
<div class="btn-group" style="display:flex; justify-content:flex-end; gap:10px;"> <div class="btn-group" style="display:flex; justify-content:flex-end; gap:10px;">
<a href="blog_edit.php?token='.encryptData($post["blog_id"], $salt).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Edit"><span class="material-icons">edit</span></a> <a href="blog_edit.php?token=' . encryptData($post["blog_id"], $salt) . '" data-bs-toggle="tooltip" data-bs-placement="top" title="Edit"><span class="material-icons">edit</span></a>
<a href="blog_read.php?token='.encryptData($post["blog_id"], $salt).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Preview"><span class="material-icons">visibility</span></a> <a href="blog_read.php?token=' . encryptData($post["blog_id"], $salt) . '" data-bs-toggle="tooltip" data-bs-placement="top" title="Preview"><span class="material-icons">visibility</span></a>
<button type="button" class="publish-btn" data-blog-id="' . $post["blog_id"] . '" data-status="' . $post["status"] . '" data-bs-toggle="tooltip" data-bs-placement="top" title="' . ($post["status"] == "published" ? "Unpublish" : "Publish") . '" style="background:none; border:none; cursor:pointer; color:inherit;"><span class="material-icons">' . ($post["status"] == "published" ? "cloud_off" : "cloud_upload") . '</span></button> <button type="button" class="publish-btn" data-blog-id="' . $post["blog_id"] . '" data-status="' . $post["status"] . '" data-bs-toggle="tooltip" data-bs-placement="top" title="' . ($post["status"] == "published" ? "Unpublish" : "Publish") . '" style="background:none; border:none; cursor:pointer; color:inherit;"><span class="material-icons">' . ($post["status"] == "published" ? "cloud_off" : "cloud_upload") . '</span></button>
<a href="blog_delete.php?token='.encryptData($post["blog_id"], $salt).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Delete"><span class="material-icons">delete</span></a> <a href="blog_delete.php?token=' . encryptData($post["blog_id"], $salt) . '" data-bs-toggle="tooltip" data-bs-placement="top" title="Delete"><span class="material-icons">delete</span></a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
'; ';
endwhile; ?> endwhile; ?>
</div> </div>
</div> </div>
</div> </div>
</section> </section>
<!-- Blog List Area end --> <!-- Blog List Area end -->
<script> <script>
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]'); const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
tooltipTriggerList.forEach(el => new bootstrap.Tooltip(el)); tooltipTriggerList.forEach(el => new bootstrap.Tooltip(el));
// Handle publish/unpublish button clicks // Handle publish/unpublish button clicks
document.querySelectorAll('.publish-btn').forEach(btn => { document.querySelectorAll('.publish-btn').forEach(btn => {
btn.addEventListener('click', function() { btn.addEventListener('click', function() {
const blogId = this.dataset.blogId; const blogId = this.dataset.blogId;
const status = this.dataset.status; const status = this.dataset.status;
const action = status === 'published' ? 'unpublish' : 'publish'; const action = status === 'published' ? 'unpublish' : 'publish';
const endpoint = status === 'published' ? 'blog_unpublish' : 'publish_blog'; const endpoint = status === 'published' ? 'blog_unpublish' : 'publish_blog';
const formData = new FormData(); const formData = new FormData();
formData.append('id', blogId); formData.append('id', blogId);
fetch(endpoint, { fetch(endpoint, {
method: 'POST', method: 'POST',
body: formData body: formData
}) })
.then(response => { .then(response => {
if (response.ok) { if (response.ok) {
alert(action.charAt(0).toUpperCase() + action.slice(1) + ' successful!'); alert(action.charAt(0).toUpperCase() + action.slice(1) + ' successful!');
location.reload(); location.reload();
} else { } else {
alert(action + ' failed.'); alert(action + ' failed.');
console.error('Error:', response.statusText); console.error('Error:', response.statusText);
} }
}) })
.catch(err => { .catch(err => {
console.error('Error:', err); console.error('Error:', err);
alert(action + ' failed due to network error.'); alert(action + ' failed due to network error.');
}); });
});
}); });
});
</script> </script>