From a73228fa0930f96388486abd6d864d0d5c8dda55 Mon Sep 17 00:00:00 2001 From: Arcturus Date: Fri, 17 Jan 2025 02:44:12 +0900 Subject: [PATCH] update 2.3.4 for menulist --- AvocadoAmber/adm/menu_form.php | 151 ++++++++------ AvocadoAmber/adm/menu_list.php | 286 +++++++++++++++++--------- AvocadoAmber/adm/menu_list_update.php | 43 +++- AvocadoAmber/config.php | 2 +- 4 files changed, 317 insertions(+), 165 deletions(-) diff --git a/AvocadoAmber/adm/menu_form.php b/AvocadoAmber/adm/menu_form.php index 5010f28..1c64197 100644 --- a/AvocadoAmber/adm/menu_form.php +++ b/AvocadoAmber/adm/menu_form.php @@ -71,10 +71,9 @@ if ($new == 'new' || !$code) { add_menu_list(me_name, me_link, ""); }); }); - function add_menu_list(name, link, code) { - var $menulist = $("#menulist", opener.document); - var ms = new Date().getTime(); + const menulist = opener.document.getElementById('menulist'); + const ms = new Date().getTime(); var sub_menu_class; sub_menu_class = " class=\"td_category\""; @@ -82,67 +81,93 @@ if ($new == 'new' || !$code) { sub_menu_class = " class=\"td_category sub_menu_class\""; - var list = ""; - list += "\" data-name='" + name + "'>"; - list += ""; - list += " \" />"; - list += " "; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - list += " "; - list += ""; - list += ""; - - var $menu_last = null; - - if (code) - $menu_last = $menulist.find("tr.menu_group_" + code + ":last"); - else - $menu_last = $menulist.find("tr.menu_list:last"); - - if ($menu_last.size() > 0) { - $menu_last.after(list); - } else { - if ($menulist.find("#empty_menu_list").size() > 0) - $menulist.find("#empty_menu_list").remove(); - - $menulist.find("table tbody").append(list); - } - - $menulist.find("tr.menu_list").each(function (index) { - $(this).removeClass("bg0 bg1") - .addClass("bg" + (index % 2)); - }); + let list = ` + `; + menulist.innerHTML += list; window.close(); } diff --git a/AvocadoAmber/adm/menu_list.php b/AvocadoAmber/adm/menu_list.php index 2a99962..404d565 100644 --- a/AvocadoAmber/adm/menu_list.php +++ b/AvocadoAmber/adm/menu_list.php @@ -13,10 +13,19 @@ while ($row = sql_fetch_array($menu_update)) { if (!in_array("me_depth", $columns)) { sql_query("ALTER TABLE {$g5['menu_table']} ADD COLUMN me_depth INT DEFAULT 0"); } + if (!in_array("me_parent", $columns)) { sql_query("ALTER TABLE {$g5['menu_table']} ADD COLUMN me_parent VARCHAR(50) DEFAULT ''"); } +if (!in_array("me_img", $columns)) { + sql_query("ALTER TABLE {$g5['menu_table']} ADD COLUMN me_img VARCHAR(255) DEFAULT '' AFTER me_name"); +} + +if (!in_array("me_img2", $columns)) { + sql_query("ALTER TABLE {$g5['menu_table']} ADD COLUMN me_img2 VARCHAR(255) DEFAULT '' AFTER me_img"); +} + $sql = "SELECT * FROM {$g5['menu_table']} order by me_order*1, me_id "; $result = sql_query($sql); @@ -24,14 +33,88 @@ $g5['title'] = "메뉴설정"; include_once "./admin.head.php"; $colspan = 11; ?> +
-

주의! 메뉴설정 작업 후 반드시 확인을 누르셔야 저장됩니다.

-
-
+

주의! 메뉴설정 작업 후 반드시 상단의 저장 버튼을 누르셔야 저장됩니다.

아이콘 항목에 사용할 구글 아이콘 이름을 입력해주세요. ( ex. <span class="material-icons">home</span>home 만 입력하기 )

+
+

아이콘, 이미지 중 스킨이 지원하는 쪽이 출력됩니다. 라이트 계열의 스킨에서는 아이콘이, 퍼스널 계열의 스킨에서는 이미지가 출력됩니다.

+
@@ -47,104 +130,111 @@ $colspan = 11;
diff --git a/AvocadoAmber/adm/menu_list_update.php b/AvocadoAmber/adm/menu_list_update.php index fb9bfcb..c7602c6 100644 --- a/AvocadoAmber/adm/menu_list_update.php +++ b/AvocadoAmber/adm/menu_list_update.php @@ -16,16 +16,51 @@ $group_code = null; $primary_code = null; $count = count($_POST['code']); +$site_path = G5_DATA_PATH . '/site'; +$site_url = G5_DATA_URL . '/site'; + +@mkdir($site_path, G5_DIR_PERMISSION); +@chmod($site_path, G5_DIR_PERMISSION); + EventHandler::triggerEvent("amber.admin.menu_list_update_before"); for ($i = 0; $i < $count; $i++) { + $img_link = ""; + $img_link2 = ""; + + $img_link = $_POST['me_img'][$i]; + if ($_FILES['me_img_file']['name'][$i]) { + if (!preg_match("/\.(gif|jpg|png)$/i", $_FILES['me_img_file']['name'][$i])) { + alert("이미지가 gif, jpg, png 파일이 아닙니다."); + } else { + $exp = explode(".", $_FILES['me_img_file']['name'][$i]); + $exp = $exp[count($exp) - 1]; + + $image_name = time() . $i . "." . $exp; + upload_file($_FILES['me_img_file']['tmp_name'][$i], $image_name, $site_path); + $img_link = $site_url . "/" . $image_name; + } + } + $img_link2 = $_POST['me_img2'][$i]; + if ($_FILES['me_img2_file']['name'][$i]) { + if (!preg_match("/\.(gif|jpg|png)$/i", $_FILES['me_img2_file']['name'][$i])) { + alert("이미지가 gif, jpg, png 파일이 아닙니다."); + } else { + $exp = explode(".", $_FILES['me_img2_file']['name'][$i]); + $exp = $exp[count($exp) - 1]; + + $image_name = time() . $i . "_o." . $exp; + upload_file($_FILES['me_img2_file']['tmp_name'][$i], $image_name, $site_path); + $img_link2 = $site_url . "/" . $image_name; + } + } $_POST = array_map_deep('trim', $_POST); if (preg_match('/^javascript/i', preg_replace('/[ ]{1,}|[\t]/', '', $_POST['me_link'][$i]))) { $_POST['me_link'][$i] = G5_URL; } $_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags(clean_xss_attributes(preg_replace('/[ ]{2,}|[\t]/', '', $_POST['me_link'][$i])), 1) : ''; - + $code = strip_tags($_POST['code'][$i]); $me_name = strip_tags($_POST['me_name'][$i]); // kve-2021-0755 gnuboard 3a3434104c @@ -63,15 +98,17 @@ for ($i = 0; $i < $count; $i++) { // 메뉴 등록 $sql = "INSERT INTO {$g5['menu_table']} SET me_code = '{$me_code}', - me_icon = '{$_POST['me_icon'][$i]}', me_name = '{$me_name}', me_link = '{$me_link}', + me_img = '{$img_link}', + me_img2 = '{$img_link2}', + me_icon = '{$_POST['me_icon'][$i]}', me_target = '" . sql_real_escape_string(strip_tags($_POST['me_target'][$i])) . "', me_order = '" . sql_real_escape_string(strip_tags($_POST['me_order'][$i])) . "', me_use = '" . sql_real_escape_string(strip_tags($_POST['me_use'][$i])) . "', me_depth = '{$me_depth}', me_parent = '{$me_parent}'"; - + sql_query($sql); } diff --git a/AvocadoAmber/config.php b/AvocadoAmber/config.php index 592068f..387df7d 100644 --- a/AvocadoAmber/config.php +++ b/AvocadoAmber/config.php @@ -7,7 +7,7 @@ ********************/ define('G5_VERSION', '아보카도 에디션 : Amber'); -define('G5_GNUBOARD_VER', '2.3.3'); +define('G5_GNUBOARD_VER', '2.3.4'); define('G5_AMBER', true); define('_GNUBOARD_', true);