File manager - Edit - /home/webapp69.cm.in.th/u69319090029/Project SME/api/menu/reorder/index.php
Back
<?php header('Content-Type: application/json; charset=utf-8'); session_start(); require_once __DIR__ . '/../../../db.php'; // Authentication Check $store_id = $_SESSION['store_id'] ?? null; if (!$store_id) { // Check if store_id was passed via POST if session is managed via auth token or fallback $raw_input = file_get_contents('php://input'); $input_data = json_decode($raw_input, true) ?? []; if (!empty($input_data['store_id'])) { $store_id = intval($input_data['store_id']); } } if (!$store_id) { echo json_encode([ 'success' => false, 'message' => 'Unauthorized. Please login to store admin.' ], JSON_UNESCAPED_UNICODE); exit; } $raw_input = file_get_contents('php://input'); $data = json_decode($raw_input, true); if (!$data) { $data = $_POST; } $type = $data['type'] ?? 'menu'; // 'menu' or 'category' $items = $data['items'] ?? []; // Handle if items was sent directly as an array if (empty($items) && is_array($data) && isset($data[0])) { $items = $data; } if (!is_array($items)) { echo json_encode([ 'success' => false, 'message' => 'Invalid data payload format. Array of items required.' ], JSON_UNESCAPED_UNICODE); exit; } try { $pdo->beginTransaction(); if ($type === 'category') { $stmt = $pdo->prepare("UPDATE categories SET sort_order = :sort_order WHERE id = :id AND store_id = :store_id"); foreach ($items as $item) { $id = intval($item['id'] ?? 0); $sort_order = intval($item['sort_order'] ?? 0); if ($id > 0) { $stmt->execute([ ':sort_order' => $sort_order, ':id' => $id, ':store_id' => $store_id ]); } } } else { // Default to menu item reordering $stmt = $pdo->prepare("UPDATE menus SET sort_order = :sort_order WHERE menu_id = :id AND store_id = :store_id"); foreach ($items as $item) { $id = intval($item['id'] ?? 0); $sort_order = intval($item['sort_order'] ?? 0); if ($id > 0) { $stmt->execute([ ':sort_order' => $sort_order, ':id' => $id, ':store_id' => $store_id ]); } } } $pdo->commit(); echo json_encode([ 'success' => true, 'message' => 'ลำดับถูกบันทึกเรียบร้อยแล้ว!' ], JSON_UNESCAPED_UNICODE); } catch (Exception $e) { if ($pdo->inTransaction()) { $pdo->rollBack(); } echo json_encode([ 'success' => false, 'message' => 'เกิดข้อผิดพลาดในการบันทึกลำดับ: ' . $e->getMessage() ], JSON_UNESCAPED_UNICODE); }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings