Files
MyKeyser/admin/attractions.php
T
Ty Clifford b57091e4ad - initial
2026-04-24 08:41:52 -04:00

72 lines
4.8 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.
<?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'; ?>