16235369cb
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.
53 lines
2.0 KiB
PHP
53 lines
2.0 KiB
PHP
<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>
|
|
|