auth_check_menu() λ‘ ν¨μλͺ μμ auth_check_menu($auth, $sub_menu, 'r'); if ($is_admin != 'super') { alert('μ΅κ³ κ΄λ¦¬μλ§ μ κ·Ό κ°λ₯ν©λλ€.'); } $g5['title'] = 'λ©λ΄ μ€μ '; include_once('./admin.head.php'); // ν μ΄λΈ μλ μμ± λ‘μ§ if (!isset($g5['menu_table'])) { die('dbconfig.php νμΌμ $g5[\'menu_table\'] = G5_TABLE_PREFIX.\'menu\'; λ₯Ό μΆκ°ν΄ μ£ΌμΈμ.'); } if (!sql_query(" DESCRIBE {$g5['menu_table']} ", false)) { sql_query( " CREATE TABLE `{$g5['menu_table']}` ( `me_id` int NOT NULL AUTO_INCREMENT, `me_parent_id` int NOT NULL DEFAULT '0' COMMENT 'λΆλͺ¨ λ©λ΄ ID', `me_depth` tinyint NOT NULL DEFAULT '1' COMMENT 'λ©λ΄ κΉμ΄ (1λμ€=1)', `me_code` varchar(255) NOT NULL DEFAULT '', `me_name` varchar(255) NOT NULL DEFAULT '', `me_link` varchar(255) NOT NULL DEFAULT '', `me_target` varchar(255) NOT NULL DEFAULT '', `me_order` int NOT NULL DEFAULT '0', `me_use` tinyint NOT NULL DEFAULT '0', `me_mobile_use` tinyint NOT NULL DEFAULT '0', `me_level` tinyint NOT NULL DEFAULT '1' COMMENT 'μ κ·ΌκΆν', `me_level_opt` tinyint NOT NULL DEFAULT '1' COMMENT 'κΆνμ΅μ ', `me_created_by` varchar(20) NOT NULL DEFAULT '' COMMENT 'μμ±μ', `me_updated_by` varchar(20) NOT NULL DEFAULT '' COMMENT 'μμ μ', `me_created_at` datetime DEFAULT NULL COMMENT 'μμ±μΌ', `me_updated_at` datetime DEFAULT NULL COMMENT 'μμ μΌ', `me_deleted_at` datetime DEFAULT NULL COMMENT 'μμ μΌ', PRIMARY KEY (`me_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ", true ); } if (!sql_query(" DESCRIBE g5_menu_history ", false)) { sql_query( " CREATE TABLE `g5_menu_history` ( `mh_id` int NOT NULL AUTO_INCREMENT COMMENT 'μ΄λ ₯ ID', `me_id` int NOT NULL COMMENT 'λ©λ΄ ID', `mh_action` enum('μμ±','μμ ','μμ ') NOT NULL COMMENT 'μμ μ’ λ₯', `mh_data_before` json DEFAULT NULL COMMENT 'λ³κ²½ μ λ°μ΄ν°', `mh_data_after` json DEFAULT NULL COMMENT 'λ³κ²½ ν λ°μ΄ν°', `mh_editor` varchar(20) NOT NULL COMMENT 'μμ μ', `mh_ip` varchar(100) NOT NULL COMMENT 'μμ μ IP', `mh_datetime` datetime NOT NULL COMMENT 'μμ μΌμ', PRIMARY KEY (`mh_id`), KEY `me_id` (`me_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='λ©λ΄ λ³κ²½ μ΄λ ₯' ", true ); } // jsTree λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄ νμ΄μ§μμλ§ λΆλ¬μ΅λλ€. add_stylesheet('', 0); add_javascript('', 0); // 1. λͺ¨λ λ©λ΄ λ°μ΄ν°λ₯Ό κ°μ Έμ΅λλ€. $sql = "SELECT * FROM {$g5['menu_table']} WHERE me_deleted_at IS NULL ORDER BY me_parent_id, me_order, me_id"; $result = sql_query($sql); // 2. jsTreeμμ μ¬μ©ν JSON λ°μ΄ν° νμμΌλ‘ κ°κ³΅ν©λλ€. $menu_data_for_tree = []; while ($row = sql_fetch_array($result)) { $prefix = ($row['me_depth'] > 1) ? 'β ' : ''; $menu_data_for_tree[] = [ 'id' => $row['me_id'], 'parent' => $row['me_parent_id'] > 0 ? $row['me_parent_id'] : '#', 'text' => $prefix . get_text($row['me_name']), 'data' => $row ]; } // π‘ [ν΅μ¬] ν λ§μ page μ€ν¨ ν΄λ λͺ©λ‘μ κ°μ Έμ΅λλ€. $page_path = G5_THEME_PATH . '/skin/page'; $page_list = []; if (is_dir($page_path)) { $handle = opendir($page_path); while ($file = readdir($handle)) { if ($file == '.' || $file == '..') { continue; } if (is_dir($page_path . '/' . $file)) { $page_list[] = $file; } } closedir($handle); sort($page_list); } ?>