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