- [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
+54 -2
View File
@@ -356,6 +356,13 @@ address{font-style:normal}
.evt-meta span{display:flex;align-items:center;gap:.3rem}
.evt-desc{font-size:.88rem;color:var(--text-m);line-height:1.62}
.evt-actions{margin-top:.75rem;display:flex;gap:.5rem;flex-wrap:wrap}
.evt-image-wrap{width:180px;min-height:126px;align-self:stretch;flex:0 0 180px;overflow:hidden;border-radius:var(--r);border:1px solid rgba(38,244,255,.2);background:var(--bg4)}
.evt-image{width:100%;height:100%;object-fit:cover}
.event-strip .evt-card{display:grid;grid-template-columns:auto 1fr;align-items:start}
.event-strip .evt-image-wrap{grid-column:1/-1;width:100%;height:150px;min-height:150px}
.event-admin-image,.menu-admin-image{display:flex;align-items:center;gap:.85rem;margin-bottom:.65rem;flex-wrap:wrap}
.event-admin-image img{width:150px;height:88px;object-fit:cover;border-radius:var(--r);border:1px solid var(--bdr-l)}
.menu-admin-image img,.admin-menu-thumb{width:72px;height:72px;object-fit:cover;border-radius:var(--r);border:1px solid var(--bdr-l)}
/* ── About / Facts ──────────────────────────────────────── */
.fact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.1rem}
@@ -409,6 +416,51 @@ address{font-style:normal}
.text-gold{color:var(--gold)}.text-muted{color:var(--text-m)}.text-dim{color:var(--text-d)}
.text-right{text-align:right}.text-center{text-align:center}
/* ── Avatars / Profile Images ───────────────────────────── */
.avatar{display:inline-grid;place-items:center;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid rgba(38,244,255,.32);background:linear-gradient(135deg,rgba(38,244,255,.18),rgba(255,79,216,.14));color:var(--cyan-l);font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:.04em;box-shadow:0 0 14px rgba(38,244,255,.08)}
.avatar-xs{width:24px;height:24px;font-size:.7rem}
.avatar-sm{width:38px;height:38px;font-size:.9rem}
.avatar-lg{width:96px;height:96px;font-size:2rem}
.account-avatar-preview{display:flex;justify-content:center;margin:.25rem 0 1rem}
.avatar-upload-grid{display:grid;grid-template-columns:240px 1fr;gap:1rem;align-items:start}
.avatar-canvas{width:240px;height:240px;border-radius:50%;border:1px solid rgba(38,244,255,.34);background:var(--bg4);box-shadow:0 0 22px rgba(38,244,255,.08)}
.avatar-crop-controls{display:grid;gap:.5rem;margin-top:.85rem}
.avatar-crop-controls label{display:grid;gap:.2rem;font-family:'Oswald',sans-serif;font-size:.68rem;letter-spacing:.1em;color:var(--text-d)}
.avatar-crop-controls input[type=range]{width:100%;accent-color:var(--cyan)}
.rev-user{display:flex;align-items:center;gap:.7rem}
/* ── Menu images ────────────────────────────────────────── */
.menu-item{gap:.9rem}
.mi-image{width:86px;height:86px;object-fit:cover;border-radius:var(--r);border:1px solid rgba(38,244,255,.2);background:var(--bg4);flex-shrink:0}
.menu-owner-row{display:flex;gap:.75rem;align-items:flex-start;min-width:0}
.menu-owner-thumb{width:58px;height:58px;object-fit:cover;border-radius:var(--r);border:1px solid rgba(38,244,255,.22);flex-shrink:0}
/* ── Forum ──────────────────────────────────────────────── */
.forum-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:2rem;align-items:start}
.forum-topic-list{display:grid;gap:.8rem}
.forum-topic-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:.85rem;align-items:center;padding:1rem;background:linear-gradient(180deg,rgba(18,31,56,.86),rgba(9,15,30,.92));border:1px solid rgba(38,244,255,.16);border-radius:var(--r);color:var(--text);transition:all var(--t)}
.forum-topic-row:hover{border-color:rgba(38,244,255,.44);box-shadow:var(--sh-sm);transform:translateY(-1px)}
.forum-topic-main{min-width:0}
.forum-topic-main strong{display:block;color:var(--text);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.forum-topic-main em{display:block;color:var(--text-d);font-style:normal;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.forum-topic-count{font-family:'Oswald',sans-serif;letter-spacing:.08em;font-size:.74rem;color:var(--cyan-l);white-space:nowrap}
.forum-byline{display:flex;align-items:center;gap:.45rem;color:var(--text-d);font-size:.86rem;flex-wrap:wrap}
.forum-thread{max-width:980px}
.forum-post,.forum-reply{background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r);padding:1.25rem;margin-bottom:1rem}
.forum-post-body{color:var(--text-m);line-height:1.75;overflow-wrap:anywhere}
.forum-attachments{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-top:1rem}
.forum-attachment-image{display:block;overflow:hidden;border-radius:var(--r);border:1px solid rgba(38,244,255,.2);background:var(--bg4);aspect-ratio:4/3}
.forum-attachment-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--t)}
.forum-attachment-image:hover img{transform:scale(1.03)}
.forum-file{display:flex;justify-content:space-between;gap:.65rem;align-items:center;padding:.75rem .9rem;border:1px solid rgba(38,244,255,.18);border-radius:var(--r);background:rgba(18,31,56,.75);color:var(--text-m);min-width:0}
.forum-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-file em{font-style:normal;color:var(--text-d);font-size:.74rem;white-space:nowrap}
.forum-replies-head{margin:2rem 0 1rem}
.forum-reply-meta{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;flex-wrap:wrap}
.forum-reply-author{display:flex;align-items:center;gap:.65rem;font-family:'Oswald',sans-serif;letter-spacing:.06em;color:var(--text)}
.forum-permalink{font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.08em;color:var(--cyan-l)}
.admin-inline-editor{display:grid;gap:.45rem;min-width:320px;background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);padding:.75rem;margin-top:.5rem}
/* ── Animations ─────────────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@@ -416,13 +468,13 @@ address{font-style:normal}
/* ── Responsive ─────────────────────────────────────────── */
@media(max-width:1100px){.footer-grid{grid-template-columns:1fr 1fr}.home-hero-grid{grid-template-columns:1fr}.hero-signal{grid-template-columns:1fr 1fr}.signal-card-main{min-height:auto}.about-split{grid-template-columns:1fr}}
@media(max-width:900px){.detail-body{grid-template-columns:1fr}.admin-wrap{grid-template-columns:1fr}.admin-side{position:static;max-height:none;border-right:none;border-bottom:1px solid var(--bdr)}.form-row{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.random-list{grid-template-columns:1fr}.signup-grid,.tier-grid{grid-template-columns:1fr}.home-facts{grid-template-columns:1fr}}
@media(max-width:900px){.detail-body{grid-template-columns:1fr}.admin-wrap{grid-template-columns:1fr}.admin-side{position:static;max-height:none;border-right:none;border-bottom:1px solid var(--bdr)}.form-row{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.random-list{grid-template-columns:1fr}.signup-grid,.tier-grid{grid-template-columns:1fr}.home-facts{grid-template-columns:1fr}.forum-layout{grid-template-columns:1fr}.avatar-upload-grid{grid-template-columns:1fr}.evt-image-wrap{width:140px;flex-basis:140px}}
@media(max-width:768px){
.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg0);border-bottom:1px solid var(--bdr-l);flex-direction:column;padding:.75rem 1rem;gap:.1rem;box-shadow:var(--sh)}
.nav-links.open{display:flex}.hamburger{display:flex}
.user-wrap{width:100%}.user-btn{width:100%;text-align:left}
.user-dd{position:static;box-shadow:none;border:none;background:var(--bg2)}
.hero{min-height:80vh}.g3,.g4{grid-template-columns:1fr}.evt-card{flex-direction:column}
.hero{min-height:80vh}.g3,.g4{grid-template-columns:1fr}.evt-card{flex-direction:column}.evt-image-wrap{width:100%;height:190px;flex-basis:auto}.event-strip .evt-card{display:flex}.event-strip .evt-image-wrap{height:190px}
.home-hero{min-height:auto;padding:4rem 1rem 3rem}.home-hero .hero-h1{font-size:clamp(3rem,17vw,4.6rem)}.hero-search{flex-direction:column}.hero-search .s-icon{top:1.35rem}.hero-search .btn{justify-content:center}.hero-signal,.signal-mini-grid{grid-template-columns:1fr}.join-band{align-items:flex-start;flex-direction:column;margin-bottom:2.5rem}.signup-shell{padding:3rem 1rem}.signup-card{padding:1rem}.tier-card{min-height:auto}
}
@media(max-width:560px){.hero-h1{font-size:3rem}.footer-grid{grid-template-columns:1fr}.hrs-grid{grid-template-columns:1fr}.form-box{margin:2rem 1rem}.random-row{grid-template-columns:36px 1fr}.random-arrow{display:none}.home-hero .hero-eyebrow{letter-spacing:.18em}.btn{white-space:normal;text-align:center}.signal-number{font-size:3.6rem}}