[ 'page_title' => 'Χαρακτηριστικά - Hockey CMS', 'header_title' => 'Διαχείριση Χαρακτηριστικών Εξοπλισμού', 'edit_group' => '✏️ Επεξεργασία Ομάδας', 'new_group' => '📁 Νέα Ομάδα (Group)', 'name_gr' => 'Όνομα 🇬🇷 (GR) *', 'name_en' => 'Όνομα 🇬🇧 (EN)', 'btn_save_group' => 'Αποθήκευση Ομάδας', 'btn_add_group' => 'Προσθήκη Ομάδας', 'edit_attr' => '✏️ Επεξεργασία Χαρακτηριστικού', 'new_attr' => '⚡ Νέο Χαρακτηριστικό', 'belongs_group' => 'Ανήκει στην Ομάδα *', 'select_group' => '-- Επίλεξε Ομάδα --', 'unit' => 'Μονάδα Μέτρησης (Προαιρετικό)', 'btn_save_attr' => 'Αποθήκευση Χαρακ.', 'btn_add_attr' => 'Προσθήκη Χαρακτηριστικού', 'existing_groups' => '📁 Υπάρχουσες Ομάδες', 'group_name' => 'Όνομα Ομάδας', 'actions' => 'Ενέργειες', 'no_groups' => 'Δεν υπάρχουν ομάδες.', 'existing_attrs' => '⚡ Υπάρχοντα Χαρακτηριστικά', 'attr_name' => 'Χαρακτηριστικό', 'no_attrs' => 'Δεν υπάρχουν χαρακτηριστικά.', 'btn_cancel' => 'Ακύρωση', 'msg_group_ok' => 'Η ομάδα δημιουργήθηκε!', 'msg_group_upd' => 'Η ομάδα ενημερώθηκε!', 'msg_attr_ok' => 'Το χαρακτηριστικό προστέθηκε!', 'msg_attr_upd' => 'Το χαρακτηριστικό ενημερώθηκε!', 'msg_group_del' => 'Η ομάδα διαγράφηκε επιτυχώς!', 'msg_attr_del' => 'Το χαρακτηριστικό διαγράφηκε επιτυχώς!', 'confirm_del_grp' => 'Σίγουρα διαγραφή της ομάδας;', 'confirm_del_attr' => 'Σίγουρα διαγραφή του χαρακτηριστικού;' ], 'en' => [ 'page_title' => 'Attributes - Hockey CMS', 'header_title' => 'Equipment Attributes Management', 'edit_group' => '✏️ Edit Group', 'new_group' => '📁 New Group', 'name_gr' => 'Name 🇬🇷 (GR) *', 'name_en' => 'Name 🇬🇧 (EN)', 'btn_save_group' => 'Save Group', 'btn_add_group' => 'Add Group', 'edit_attr' => '✏️ Edit Attribute', 'new_attr' => '⚡ New Attribute', 'belongs_group' => 'Belongs to Group *', 'select_group' => '-- Select Group --', 'unit' => 'Unit of Measurement (Optional)', 'btn_save_attr' => 'Save Attr.', 'btn_add_attr' => 'Add Attribute', 'existing_groups' => '📁 Existing Groups', 'group_name' => 'Group Name', 'actions' => 'Actions', 'no_groups' => 'No groups found.', 'existing_attrs' => '⚡ Existing Attributes', 'attr_name' => 'Attribute', 'no_attrs' => 'No attributes found.', 'btn_cancel' => 'Cancel', 'msg_group_ok' => 'Group created!', 'msg_group_upd' => 'Group updated!', 'msg_attr_ok' => 'Attribute added!', 'msg_attr_upd' => 'Attribute updated!', 'msg_group_del' => 'Group deleted successfully!', 'msg_attr_del' => 'Attribute deleted successfully!', 'confirm_del_grp' => 'Are you sure you want to delete this group?', 'confirm_del_attr' => 'Are you sure you want to delete this attribute?' ] ]; $t = $translations[$current_lang]; header('Content-Type: text/html; charset=utf-8'); $message = ''; // ========================================== // 1. ΧΕΙΡΙΣΜΟΣ POST (Προσθήκη / Επεξεργασία) // ========================================== if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) { $action = $_POST['action']; if ($action === 'add_group' || $action === 'edit_group') { $name = trim($_POST['name']); $name_en = trim($_POST['name_en']); if (!empty($name)) { try { if ($action === 'add_group') { $stmt = $pdo->prepare("INSERT INTO attribute_groups (name, name_en) VALUES (?, ?)"); $stmt->execute([$name, $name_en]); $message = "
{$t['msg_group_ok']}
"; } else { $group_id = (int)$_POST['group_id']; $stmt = $pdo->prepare("UPDATE attribute_groups SET name = ?, name_en = ? WHERE id = ?"); $stmt->execute([$name, $name_en, $group_id]); $message = "
{$t['msg_group_upd']}
"; } } catch (Exception $e) { $message = "
Σφάλμα: " . $e->getMessage() . "
"; } } } if ($action === 'add_attr' || $action === 'edit_attr') { $group_id = (int)$_POST['group_id']; $name = trim($_POST['name']); $name_en = trim($_POST['name_en']); $unit = trim($_POST['unit']); if (!empty($group_id) && !empty($name)) { try { if ($action === 'add_attr') { $stmt = $pdo->prepare("INSERT INTO attributes (group_id, name, name_en, unit) VALUES (?, ?, ?, ?)"); $stmt->execute([$group_id, $name, $name_en, $unit]); $message = "
{$t['msg_attr_ok']}
"; } else { $attr_id = (int)$_POST['attr_id']; $stmt = $pdo->prepare("UPDATE attributes SET group_id = ?, name = ?, name_en = ?, unit = ? WHERE id = ?"); $stmt->execute([$group_id, $name, $name_en, $unit, $attr_id]); $message = "
{$t['msg_attr_upd']}
"; } } catch (Exception $e) { $message = "
Σφάλμα: " . $e->getMessage() . "
"; } } } } // ========================================== // 2. ΧΕΙΡΙΣΜΟΣ GET (Διαγραφές) // ========================================== if (isset($_GET['delete_group'])) { $del_id = (int)$_GET['delete_group']; $checkAttrs = $pdo->prepare("SELECT COUNT(*) FROM attributes WHERE group_id = ?"); $checkAttrs->execute([$del_id]); $checkCats = $pdo->prepare("SELECT COUNT(*) FROM categories WHERE attribute_group_id = ?"); $checkCats->execute([$del_id]); if ($checkAttrs->fetchColumn() > 0) { $message = "
Αδυναμία διαγραφής! Υπάρχουν χαρακτηριστικά μέσα σε αυτή την ομάδα.
"; } elseif ($checkCats->fetchColumn() > 0) { $message = "
Αδυναμία διαγραφής! Η ομάδα συνδέεται με Κατηγορία.
"; } else { $pdo->prepare("DELETE FROM attribute_groups WHERE id = ?")->execute([$del_id]); $message = "
{$t['msg_group_del']}
"; } } if (isset($_GET['delete_attr'])) { $del_id = (int)$_GET['delete_attr']; $checkVals = $pdo->prepare("SELECT COUNT(*) FROM product_attribute_values WHERE attribute_id = ?"); $checkVals->execute([$del_id]); if ($checkVals->fetchColumn() > 0) { $message = "
Αδυναμία διαγραφής! Το χαρακτηριστικό χρησιμοποιείται σε προϊόντα.
"; } else { $pdo->prepare("DELETE FROM attributes WHERE id = ?")->execute([$del_id]); $message = "
{$t['msg_attr_del']}
"; } } $edit_group = null; if (isset($_GET['edit_group'])) { $stmt = $pdo->prepare("SELECT * FROM attribute_groups WHERE id = ?"); $stmt->execute([(int)$_GET['edit_group']]); $edit_group = $stmt->fetch(PDO::FETCH_ASSOC); } $edit_attr = null; if (isset($_GET['edit_attr'])) { $stmt = $pdo->prepare("SELECT * FROM attributes WHERE id = ?"); $stmt->execute([(int)$_GET['edit_attr']]); $edit_attr = $stmt->fetch(PDO::FETCH_ASSOC); } $groups = $pdo->query("SELECT * FROM attribute_groups ORDER BY name")->fetchAll(PDO::FETCH_ASSOC); $attributes = $pdo->query(" SELECT a.id, a.name, a.name_en, a.unit, ag.name as group_name FROM attributes a JOIN attribute_groups ag ON a.group_id = ag.id ORDER BY ag.name, a.name ")->fetchAll(PDO::FETCH_ASSOC); ?> <?php echo $t['page_title']; ?>

0): ?>

Edit Del

0): ?>
Group Unit

Edit Del