Update site: auth fixes, new admin pages, payment flow, membership renewal, helpers

This commit is contained in:
twotalesanimation
2026-06-11 10:01:48 +02:00
parent 32e50ffc39
commit bc8d923221
56 changed files with 5155 additions and 534 deletions
+74 -28
View File
@@ -1,4 +1,5 @@
<?php
/**
* UNIFIED HEADER TEMPLATE
*
@@ -25,6 +26,7 @@ require_once($rootDir . "/src/config/env.php");
require_once($rootDir . "/src/config/session.php");
require_once($rootDir . "/src/config/connection.php");
require_once($rootDir . "/src/config/functions.php");
require_once($rootDir . "/src/helpers/notification_helper.php");
$is_logged_in = isset($_SESSION['user_id']);
if (isset($_SESSION['user_id'])) {
@@ -186,8 +188,7 @@ if ($headerStyle === 'light') {
background-color: #f8f8f8;
}
<?php if ($headerStyle === 'light'): ?>
.page-banner-area {
<?php if ($headerStyle === 'light'): ?>.page-banner-area {
position: relative;
background-size: cover;
background-position: center;
@@ -214,6 +215,7 @@ if ($headerStyle === 'light') {
position: relative;
z-index: 3;
}
<?php endif; ?>
</style>
@@ -258,16 +260,16 @@ if ($headerStyle === 'light') {
<ul class="navigation clearfix">
<li><a href="index">Home</a></li>
<li><a href="about">About</a></li>
<li><a href="track-map">Track Map</a></li>
<li><a href="base4">BASE 4</a></li>
<li><a href="trips">Trips</a>
<?php if ($headerStyle === 'dark'): ?>
<ul>
<li><a href="tour-list.html">Tour List</a></li>
<li><a href="tour-grid.html">Tour Grid</a></li>
<li><a href="tour-sidebar.html">Tour Sidebar</a></li>
<li><a href="trip-details">Tour Details</a></li>
<li><a href="tour-guide.html">Tour Guide</a></li>
</ul>
<ul>
<li><a href="tour-list.html">Tour List</a></li>
<li><a href="tour-grid.html">Tour Grid</a></li>
<li><a href="tour-sidebar.html">Tour Sidebar</a></li>
<li><a href="trip-details">Tour Details</a></li>
<li><a href="tour-guide.html">Tour Guide</a></li>
</ul>
<?php endif; ?>
</li>
<li class="dropdown"><a href="#">Training</a>
@@ -283,15 +285,12 @@ if ($headerStyle === 'light') {
<ul>
<li><a href="admin_web_users">Website Users</a></li>
<li><a href="admin_members">4WDCSA Members</a></li>
<li><a href="admin_blogs">Manage Blogs</a></li>
<li><a href="admin_events">Manage Events</a></li>
<li><a href="admin_trips">Manage Trips</a></li>
<li><a href="admin_trip_bookings">Trip Bookings</a></li>
<li><a href="admin_course_bookings">Course Bookings</a></li>
<li><a href="admin_efts">EFT Payments</a></li>
<li><a href="process_payments">Process Payments</a></li>
<li><a href="admin_trips_events_courses">Trips, Events & Courses</a></li>
<li><a href="admin_bookings">Bookings</a></li>
<li><a href="admin_transactions">iKhokha Payment History</a></li>
<!-- <li><a href="process_payments">Process Payments</a></li> -->
<?php if ($role === 'superadmin') { ?>
<li><a href="admin_visitors">Visitor Log</a></li>
<li><a href="admin_visitors">Visitor Log</a></li>
<?php } ?>
</ul>
</li>
@@ -305,23 +304,29 @@ if ($headerStyle === 'light') {
if (getUserMemberStatus($_SESSION['user_id'])) {
echo "<li><a href=\"campsites\">Campsites Directory</a></li>";
echo "<li><a href=\"gallery\">Photo Gallery</a></li>";
} else {
} else {
echo "<li><a href=\"membership\">Campsites Directory</a><i class='fal fa-lock'></i></li>";
echo "<li><a href=\"membership\">Photo Gallery</a><i class='fal fa-lock'></i></li>";
}
}
?>
</ul>
</li>
<li class="dropdown"><a href="#">My Account</a>
<ul>
<li><a href="account_settings">Account Settings</a></li>
<li><a href="membership_details">Membership</a></li>
<li><a href="bookings">My Bookings</a></li>
<li><a href="user_blogs">My Blog Posts</a></li>
<li><a href="submit_pop">Submit P.O.P</a></li>
<?php
if (getUserMemberStatus($_SESSION['user_id'])) {
echo "<li><a href=\"user_blogs\">My Blog Posts</a></li>";
} else {
echo "<li><a href=\"membership\">My Blog Posts</a><i class='fal fa-lock'></i></li>";
}
?>
<!-- <li><a href="submit_pop">Submit P.O.P</a></li> -->
<li><a href="logout">Log Out</a></li>
</ul>
</li>
@@ -341,11 +346,19 @@ if ($headerStyle === 'light') {
<div class="profile-menu">
<div class="profile-info">
<span style="color: <?php echo $textColor; ?>;">Welcome, <?php echo $_SESSION['first_name']; ?></span>
<a href="account_settings">
<img src="<?php echo $_SESSION['profile_pic']; ?>?v=<?php echo time(); ?>" alt="Profile Picture" class="profile-pic">
</a>
<div class="notif-avatar-container" data-admin-id="<?php echo intval($_SESSION['user_id'] ?? 0); ?>">
<a href="account_settings">
<img src="<?php echo $_SESSION['profile_pic']; ?>?v=<?php echo time(); ?>" alt="Profile Picture" class="profile-pic">
</a>
<span id="notif-badge" class="notif-badge"></span>
</div>
<div id="notif-panel" class="notif-panel" style="display:none;"></div>
</div>
</div>
<?php if ($role === 'admin' || $role === 'superadmin') { ?>
<link rel="stylesheet" href="assets/css/notifications.css">
<script src="assets/js/notifications_panel.js" defer></script>
<?php } ?>
<?php else : ?>
<a href="login" class="theme-btn style-two bgc-secondary">
<span data-hover="Log In">Log In</span>
@@ -360,11 +373,44 @@ if ($headerStyle === 'light') {
<!--End Header Upper-->
</header>
<a href="https://wa.me/27790652795?text=Hi,%20I%20would%20like%20to%20know%20more%20about%20your%20club!"
class="whatsapp-float"
target="_blank"
aria-label="Chat on WhatsApp">
<i class="fab fa-whatsapp"></i>
</a>
<style>
.whatsapp-float {
position: fixed;
bottom: 20px;
right: 20px;
width: 60px;
height: 60px;
background-color: #25D366;
color: white;
border-radius: 50%;
text-align: center;
font-size: 30px;
line-height: 60px;
box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.3);
z-index: 1000;
}
.whatsapp-float:hover {
background-color: #1ebe5d;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function() {
const profileInfo = document.querySelector('.profile-info');
if (profileInfo) {
profileInfo.addEventListener('click', function(event) {
// Ignore clicks on the notifications avatar so the notif panel
// can handle its own toggle without also toggling the profile dropdown.
if (event.target.closest && event.target.closest('.notif-avatar-container')) return;
const dropdownMenu = document.querySelector('.dropdown-menu2');
if (dropdownMenu) {
dropdownMenu.style.display = dropdownMenu.style.display === 'block' ? 'none' : 'block';
@@ -381,4 +427,4 @@ if ($headerStyle === 'light') {
}
});
});
</script>
</script>