- initial

This commit is contained in:
Ty Clifford
2026-04-24 08:41:52 -04:00
commit b57091e4ad
49 changed files with 7371 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
<?php
$adminTitle = 'Attractions';
include __DIR__.'/admin_header.php';
if (isPost()) {
csrfCheck();
$act = p('_act');
$f = ['name'=>ps('name'),'category'=>ps('category'),'description'=>ps('description'),
'address'=>ps('address'),'phone'=>ps('phone'),'website'=>ps('website'),
'hours'=>ps('hours'),'is_active'=>(int)p('is_active',1),'sort_order'=>(int)p('sort_order',0)];
if ($act === 'add') { if($f['name']) qrun("INSERT INTO attractions(name,category,description,address,phone,website,hours,is_active,sort_order)VALUES(?,?,?,?,?,?,?,?,?)",array_values($f)); flash('Attraction added!','success'); }
if ($act === 'edit') { $id=(int)p('id'); if($f['name']) qrun("UPDATE attractions SET name=?,category=?,description=?,address=?,phone=?,website=?,hours=?,is_active=?,sort_order=? WHERE id=?",array_merge(array_values($f),[$id])); flash('Attraction updated!','success'); }
if ($act === 'delete') { qrun("DELETE FROM attractions WHERE id=?",[(int)p('id')]); flash('Attraction deleted.','success'); }
go('/admin/attractions.php');
}
$editId = iget('edit');
$editing = $editId ? qone("SELECT * FROM attractions WHERE id=?",[$editId]) : null;
$attrs = qall("SELECT * FROM attractions ORDER BY sort_order,name");
?>
<?php adminTitle('Manage Attractions') ?>
<div class="ibox" style="border-color:var(--gold-d);margin-bottom:2rem">
<div class="ibox-title"><?=$editing?'✏️ EDIT: '.strtoupper(e($editing['name'])):' ADD ATTRACTION'?></div>
<form method="POST"><?=csrfField()?><input type="hidden" name="_act" value="<?=$editing?'edit':'add'?>">
<?php if($editing): ?><input type="hidden" name="id" value="<?=$editing['id']?>"><?php endif; ?>
<div class="form-row">
<div class="fg"><label class="flabel">NAME *</label><input type="text" name="name" class="finput" value="<?=e($editing['name']??'')?>" required></div>
<div class="fg"><label class="flabel">CATEGORY</label><input type="text" name="category" class="finput" value="<?=e($editing['category']??'Sightseeing')?>" placeholder="e.g. Natural Landmark, Historic Site"></div>
</div>
<div class="fg"><label class="flabel">DESCRIPTION</label><textarea name="description" class="ftextarea" style="min-height:80px"><?=e($editing['description']??'')?></textarea></div>
<div class="form-row">
<div class="fg"><label class="flabel">ADDRESS</label><input type="text" name="address" class="finput" value="<?=e($editing['address']??'')?>"></div>
<div class="fg"><label class="flabel">PHONE</label><input type="text" name="phone" class="finput" value="<?=e($editing['phone']??'')?>"></div>
</div>
<div class="form-row">
<div class="fg"><label class="flabel">WEBSITE</label><input type="text" name="website" class="finput" value="<?=e($editing['website']??'')?>"></div>
<div class="fg"><label class="flabel">HOURS</label><input type="text" name="hours" class="finput" value="<?=e($editing['hours']??'')?>" placeholder="e.g. Open year-round, Dawn to Dusk"></div>
</div>
<div class="form-row">
<div class="fg"><label class="flabel">STATUS</label><select name="is_active" class="fselect"><option value="1"<?=($editing['is_active']??1)?' selected':''?>>Active</option><option value="0"<?=isset($editing)&&!$editing['is_active']?' selected':''?>>Hidden</option></select></div>
<div class="fg"><label class="flabel">SORT ORDER</label><input type="number" name="sort_order" class="finput" value="<?=$editing['sort_order']??0?>"></div>
</div>
<div class="flex-row">
<button type="submit" class="btn btn-primary"><?=$editing?'Update':'Add Attraction'?></button>
<?php if($editing): ?><a href="/admin/attractions.php" class="btn btn-secondary">Cancel</a><?php endif; ?>
</div>
</form>
</div>
<div class="admin-sec-title">ALL ATTRACTIONS (<?=count($attrs)?>)</div>
<div class="tbl-wrap">
<table class="dtbl">
<thead><tr><th>NAME</th><th>CATEGORY</th><th>STATUS</th><th>ORDER</th><th>ACTIONS</th></tr></thead>
<tbody>
<?php foreach($attrs as $a): ?>
<tr>
<td class="td-name"><?=e($a['name'])?></td>
<td><span style="font-size:.78rem;color:var(--text-d)"><?=e($a['category'])?></span></td>
<td><?=$a['is_active']?'<span class="badge badge-green">Active</span>':'<span class="badge badge-gray">Hidden</span>'?></td>
<td><?=$a['sort_order']?></td>
<td><div class="flex-row" style="gap:.3rem">
<a href="/admin/attractions.php?edit=<?=$a['id']?>" class="btn btn-xs btn-outline">✏️ Edit</a>
<form method="POST" style="display:inline"><?=csrfField()?><input type="hidden" name="_act" value="delete"><input type="hidden" name="id" value="<?=$a['id']?>"><button class="btn btn-xs btn-danger" data-confirm="Delete attraction?">🗑️</button></form>
</div></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php include __DIR__.'/admin_footer.php'; ?>