- [index.php](/Users/tyemeclifford/Documents/GH/MyKeyser/index.php): events now appear before featured businesses, plus forum pretty-route fallback.

[events.php](/Users/tyemeclifford/Documents/GH/MyKeyser/events.php) and 
[admin/events.php](/Users/tyemeclifford/Documents/GH/MyKeyser/admin/events.php): 
event image uploads.
[menu.php](/Users/tyemeclifford/Documents/GH/MyKeyser/menu.php), 
[admin/menus.php](/Users/tyemeclifford/Documents/GH/MyKeyser/admin/menus.php), 
and 
[business.php](/Users/tyemeclifford/Documents/GH/MyKeyser/business.php): 
one configurable menu item image slot.
[account.php](/Users/tyemeclifford/Documents/GH/MyKeyser/account.php): 
circular avatar upload and crop controls.
[forum.php](/Users/tyemeclifford/Documents/GH/MyKeyser/forum.php), 
[admin/forum.php](/Users/tyemeclifford/Documents/GH/MyKeyser/admin/forum.php), 
[.htaccess](/Users/tyemeclifford/Documents/GH/MyKeyser/.htaccess), and 
[forum/index.php](/Users/tyemeclifford/Documents/GH/MyKeyser/forum/index.php): 
forum, categories, topic/reply uploads, permalinks, toggle/moderation.
[includes/db.php](/Users/tyemeclifford/Documents/GH/MyKeyser/includes/db.php) 
and 
[includes/functions.php](/Users/tyemeclifford/Documents/GH/MyKeyser/includes/functions.php): 
schema upgrades and shared upload/image helpers.
[assets/css/style.css](/Users/tyemeclifford/Documents/GH/MyKeyser/assets/css/style.css): 
neon styling for forum, images, avatars, attachments.
This commit is contained in:
Ty Clifford
2026-06-19 10:49:48 -04:00
parent 2ce3eec65d
commit 25327e3302
21 changed files with 1363 additions and 74 deletions
+51 -43
View File
@@ -1,4 +1,9 @@
<?php
$__requestPath = (string)(parse_url($_SERVER['REQUEST_URI'] ?? '', PHP_URL_PATH) ?? '');
if (preg_match('#^/forum/[^/]+/?$#', $__requestPath)) {
require __DIR__.'/forum.php';
exit;
}
require_once __DIR__.'/includes/boot.php';
$pageTitle='Discover Keyser WV — The Friendliest City in the U.S.A.';
$activeNav='home';
@@ -82,6 +87,52 @@ include __DIR__.'/includes/header.php';
</div>
<?php endif; ?>
<div class="home-band">
<div class="section">
<div class="section-head">
<div>
<div class="eyebrow">UPCOMING EVENTS</div>
<h2 class="sec-title">Whats Happening Around Keyser</h2>
</div>
<a href="/events.php" class="btn btn-outline btn-sm">All Events</a>
</div>
<?php if($upevts): ?>
<div class="event-strip">
<?php foreach($upevts as $ev): ?>
<div class="evt-card">
<?php if(!empty($ev['image_path'])): ?>
<div class="evt-image-wrap"><img src="<?=e($ev['image_path'])?>" alt="<?=e($ev['title'])?>" class="evt-image"></div>
<?php endif; ?>
<div class="evt-date-box">
<div class="evt-mon"><?=strtoupper(date('M',strtotime($ev['event_date'])))?></div>
<div class="evt-day"><?=date('j',strtotime($ev['event_date']))?></div>
<div class="evt-yr"><?=date('Y',strtotime($ev['event_date']))?></div>
</div>
<div class="evt-body">
<div class="evt-title"><?=e($ev['title'])?><?php if($ev['is_featured']): ?> <span class="featured-badge">FEATURED</span><?php endif; ?></div>
<div class="evt-meta">
<?php if($ev['venue']): ?><span><?=e($ev['venue'])?></span><?php endif; ?>
<?php if($ev['event_time']): ?><span><?=e($ev['event_time'])?></span><?php endif; ?>
<span><?=e($ev['cost'])?></span>
</div>
<div class="evt-desc"><?=e(substr($ev['description'],0,160)).(strlen($ev['description'])>160?'...':'')?></div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php else: ?>
<div class="empty event-empty">
<div class="empty-ico">◇</div>
<h3>No upcoming approved events yet</h3>
<p style="margin-top:.5rem;color:var(--text-d)">Community events will appear here as they are approved.</p>
</div>
<?php endif; ?>
<div class="text-center mt3">
<a href="/events.php?submit=1" class="btn btn-primary">Submit an Event</a>
</div>
</div>
</div>
<div class="section">
<div class="section-head">
<div>
@@ -121,49 +172,6 @@ include __DIR__.'/includes/header.php';
</div>
</div>
<div class="home-band">
<div class="section">
<div class="section-head">
<div>
<div class="eyebrow">UPCOMING EVENTS</div>
<h2 class="sec-title">Whats Happening Around Keyser</h2>
</div>
<a href="/events.php" class="btn btn-outline btn-sm">All Events</a>
</div>
<?php if($upevts): ?>
<div class="event-strip">
<?php foreach($upevts as $ev): ?>
<div class="evt-card">
<div class="evt-date-box">
<div class="evt-mon"><?=strtoupper(date('M',strtotime($ev['event_date'])))?></div>
<div class="evt-day"><?=date('j',strtotime($ev['event_date']))?></div>
<div class="evt-yr"><?=date('Y',strtotime($ev['event_date']))?></div>
</div>
<div class="evt-body">
<div class="evt-title"><?=e($ev['title'])?><?php if($ev['is_featured']): ?> <span class="featured-badge">FEATURED</span><?php endif; ?></div>
<div class="evt-meta">
<?php if($ev['venue']): ?><span><?=e($ev['venue'])?></span><?php endif; ?>
<?php if($ev['event_time']): ?><span><?=e($ev['event_time'])?></span><?php endif; ?>
<span><?=e($ev['cost'])?></span>
</div>
<div class="evt-desc"><?=e(substr($ev['description'],0,160)).(strlen($ev['description'])>160?'...':'')?></div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php else: ?>
<div class="empty event-empty">
<div class="empty-ico">◇</div>
<h3>No upcoming approved events yet</h3>
<p style="margin-top:.5rem;color:var(--text-d)">Community events will appear here as they are approved.</p>
</div>
<?php endif; ?>
<div class="text-center mt3">
<a href="/events.php?submit=1" class="btn btn-primary">Submit an Event</a>
</div>
</div>
</div>
<div class="section about-split">
<div>
<div class="eyebrow">ABOUT KEYSER</div>