- 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.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<section class="page-hero">
|
||||
<div class="container page-hero-inner">
|
||||
<div>
|
||||
<span class="eyebrow">Hot, fresh, yours</span>
|
||||
<h1>Order Online</h1>
|
||||
<p>Choose your favorites and we will get the kitchen moving.</p>
|
||||
</div>
|
||||
<form class="menu-search" action="/menu" method="get">
|
||||
<label for="menu-query">Search the menu</label>
|
||||
<div class="search-row">
|
||||
<input id="menu-query" type="search" name="q" value="<?= e($query) ?>" placeholder="Burger, chicken, fries...">
|
||||
<button class="button" type="submit">Search</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="category-jump">
|
||||
<div class="container">
|
||||
<?php foreach ($categories as $category): ?>
|
||||
<a href="#<?= e($category['slug']) ?>"><?= e($category['name']) ?></a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container menu-page section">
|
||||
<?php if (!$categories): ?>
|
||||
<div class="empty-state">
|
||||
<span class="eyebrow">No match yet</span>
|
||||
<h2>We could not find “<?= e($query) ?>”</h2>
|
||||
<p>Try another search or browse the full menu.</p>
|
||||
<a class="button" href="/menu">Clear Search</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($categories as $category): ?>
|
||||
<section class="menu-category" id="<?= e($category['slug']) ?>">
|
||||
<div class="menu-category-heading">
|
||||
<div>
|
||||
<span class="category-index"><?= str_pad((string) $category['display_order'], 2, '0', STR_PAD_LEFT) ?></span>
|
||||
<h2><?= e($category['name']) ?></h2>
|
||||
</div>
|
||||
<p><?= e($category['description']) ?></p>
|
||||
</div>
|
||||
<div class="menu-grid">
|
||||
<?php foreach ($category['items'] as $item): ?>
|
||||
<?php \FatBottom\Core\View::partial('partials/menu-card', compact('item')); ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</section>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user