Files
order/views/store/home.php
T
Ty Clifford 16235369cb - Implemented the full Fat Bottom Grille storefront and staff dashboard.
Highlights include configurable menus, specials, cart/checkout, taxes, 
customer accounts with email 2FA, newsletters, analytics, refunds, 
PDF/CSV exports, Square/Mailgun adapters, and optional MySQL migration.

See README.md for setup and production configuration. Verified 
PHP/JavaScript syntax, responsive layouts, registration, 2FA, checkout, 
dashboard workflows, settings persistence, and PDF generation.
Real Square, Mailgun, and MySQL connections require credentials/server 
access. Square implementation follows the official Payments API and 
Refunds API.
2026-06-10 13:27:42 -04:00

123 lines
5.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<section class="hero">
<div class="hero-texture"></div>
<div class="container hero-grid">
<div class="hero-copy">
<span class="eyebrow">Keyser made. Come hungry.</span>
<h1>Big flavor.<br><em>No shortcuts.</em></h1>
<p>Stacked burgers, loaded burritos, and dinner plates that eat like Sunday supper. Order ahead and we will have it hot.</p>
<div class="hero-actions">
<a class="button button-large" href="/menu">Start Your Order</a>
<?php if ($config->get('business.phone')): ?>
<a class="text-link" href="tel:<?= e(preg_replace('/[^0-9+]/', '', (string) $config->get('business.phone'))) ?>">
Call <?= e($config->get('business.phone')) ?>
</a>
<?php endif; ?>
</div>
<div class="hero-meta">
<span>Pickup in about <?= (int) $config->get('ordering.pickup_eta_minutes', 25) ?> minutes</span>
<span><?= (bool) $config->get('ordering.accepting_orders', true) ? 'Ordering now open' : 'Ordering currently paused' ?></span>
</div>
</div>
<div class="hero-plate" aria-hidden="true">
<div class="plate-ring">
<div class="burger">
<span class="bun bun-top"></span>
<span class="lettuce"></span>
<span class="cheese"></span>
<span class="patty"></span>
<span class="onion"></span>
<span class="patty patty-two"></span>
<span class="bun bun-bottom"></span>
</div>
</div>
<div class="hero-stamp">
<strong>410</strong>
<span>W Piedmont</span>
</div>
</div>
</div>
</section>
<?php if ($specials): ?>
<section class="specials-section section">
<div class="container">
<div class="section-heading">
<div>
<span class="eyebrow">Happening now</span>
<h2>Todays Specials</h2>
</div>
<a class="text-link" href="/menu">See the full menu</a>
</div>
<div class="special-grid special-count-<?= min(count($specials), 4) ?>">
<?php foreach ($specials as $special): ?>
<article class="special-card">
<span class="special-badge"><?= e($special['badge']) ?></span>
<h3><?= e($special['title']) ?></h3>
<p><?= e($special['description']) ?></p>
<div class="special-footer">
<?php if ($special['price_cents'] !== null): ?>
<strong><?= money($special['price_cents']) ?></strong>
<?php endif; ?>
<?php if ($special['menu_item_id']): ?>
<form action="/cart/add" method="post">
<?= csrf_field() ?>
<input type="hidden" name="menu_item_id" value="<?= (int) $special['menu_item_id'] ?>">
<input type="hidden" name="quantity" value="1">
<input type="hidden" name="return_to" value="/">
<button class="button button-small button-light" type="submit">Add Item</button>
</form>
<?php endif; ?>
</div>
</article>
<?php endforeach; ?>
</div>
</div>
</section>
<?php endif; ?>
<section class="section menu-preview">
<div class="container">
<div class="section-heading">
<div>
<span class="eyebrow">Built to satisfy</span>
<h2>Local Favorites</h2>
</div>
<p>These are the orders that keep showing up at the counter.</p>
</div>
<div class="menu-grid">
<?php foreach ($featured as $item): ?>
<?php \FatBottom\Core\View::partial('partials/menu-card', compact('item')); ?>
<?php endforeach; ?>
</div>
</div>
</section>
<section class="category-band">
<div class="container">
<span class="eyebrow">Pick your direction</span>
<div class="category-links">
<?php foreach ($categories as $category): ?>
<a href="/menu#<?= e($category['slug']) ?>">
<strong><?= e($category['name']) ?></strong>
<span><?= count($category['items']) ?> picks</span>
</a>
<?php endforeach; ?>
</div>
</div>
</section>
<section class="story-section section">
<div class="container story-grid">
<div class="story-art" aria-hidden="true">
<span class="story-number">26726</span>
<div class="mountain-lines"></div>
</div>
<div>
<span class="eyebrow">Proudly from Keyser</span>
<h2>Food that shows up hungry.</h2>
<p>Fat Bottom Grille is the kind of place where the portions are honest and nobody leaves wondering what is for dinner. Find us at 410 W Piedmont Street, right here in Keyser.</p>
<a class="button button-outline" href="/menu">Order for Pickup</a>
</div>
</div>
</section>