0; if(isPost()){ csrfCheck(); $act=p('_act'); if($act==='add_section'){ $name=ps('sec_name'); if($name){ $order=(int)qval("SELECT COALESCE(MAX(sort_order),0)+1 FROM menu_sections WHERE business_id=?",[$bizId]); qrun("INSERT INTO menu_sections(business_id,name,description,sort_order)VALUES(?,?,?,?)",[$bizId,$name,ps('sec_desc'),$order]); flash('Section added!','success'); } } if($act==='del_section'){ qrun("DELETE FROM menu_sections WHERE id=? AND business_id=?",[(int)p('sid'),$bizId]); flash('Section deleted.','success'); } if($act==='edit_section'){ qrun("UPDATE menu_sections SET name=?,description=? WHERE id=? AND business_id=?",[ps('sec_name'),ps('sec_desc'),(int)p('sid'),$bizId]); flash('Section updated!','success'); } if($act==='add_item'){ $sid=(int)p('section_id'); $name=ps('item_name'); if($name){ $imagePath=''; if($menuImagesEnabled){ $upload=storeSingleUpload( 'item_image', 'menus', imageExts(), mbToBytes(setting('menu_upload_max_mb','5'),5), [ 'image_only'=>true, 'resize_over_bytes'=>mbToBytes(setting('forum_image_resize_threshold_mb','1'),1), 'image_max_width'=>(int)setting('forum_image_max_width','1600'), 'image_quality'=>(int)setting('forum_image_quality','82'), ] ); if(!$upload['ok']){flash($upload['error'],'error');go("/menu.php?id=$bizId");} $imagePath=(string)($upload['path']??''); } $order=(int)qval("SELECT COALESCE(MAX(sort_order),0)+1 FROM menu_items WHERE section_id=?",[$sid]); qrun("INSERT INTO menu_items(section_id,name,description,price,image_path,sort_order)VALUES(?,?,?,?,?,?)",[$sid,$name,ps('item_desc'),(float)p('item_price',0),$imagePath,$order]); flash('Item added!','success'); } } if($act==='del_item'){ qrun("DELETE FROM menu_items WHERE id=?",[(int)p('iid')]); flash('Item removed.','success'); } if($act==='edit_item'){ $iid=(int)p('iid'); $item=qone("SELECT mi.* FROM menu_items mi JOIN menu_sections ms ON ms.id=mi.section_id WHERE mi.id=? AND ms.business_id=?",[$iid,$bizId]); if($item){ $imagePath=(string)($item['image_path']??''); if($menuImagesEnabled && p('remove_item_image','0')==='1') $imagePath=''; if($menuImagesEnabled){ $upload=storeSingleUpload( 'item_image', 'menus', imageExts(), mbToBytes(setting('menu_upload_max_mb','5'),5), [ 'image_only'=>true, 'resize_over_bytes'=>mbToBytes(setting('forum_image_resize_threshold_mb','1'),1), 'image_max_width'=>(int)setting('forum_image_max_width','1600'), 'image_quality'=>(int)setting('forum_image_quality','82'), ] ); if(!$upload['ok']){flash($upload['error'],'error');go("/menu.php?id=$bizId");} if(!empty($upload['path'])) $imagePath=(string)$upload['path']; } qrun("UPDATE menu_items SET name=?,description=?,price=?,image_path=?,is_available=? WHERE id=?",[ps('item_name'),ps('item_desc'),(float)p('item_price',0),$imagePath,(int)p('is_available',1),$iid]); flash('Item updated!','success'); } } go("/menu.php?id=$bizId"); } $pageTitle='Manage Menu — '.e($biz['name']); $sections=qall("SELECT * FROM menu_sections WHERE business_id=? ORDER BY sort_order",[$bizId]); $items=[]; foreach($sections as $s) $items[$s['id']]=qall("SELECT * FROM menu_items WHERE section_id=? ORDER BY sort_order",[$s['id']]); include __DIR__.'/includes/header.php'; ?>
OWNER PANEL

Manage Menu

· View Listing

➕ ADD MENU SECTION
➕ Add Item to ""
Optional. One image allowed, max MB.
🍽️

No menu sections yet

Add a section above to start building your menu.

← Back to Listing