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 += "
";
-
- 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 만 입력하기 )
+
+
아이콘, 이미지 중 스킨이 지원하는 쪽이 출력됩니다. 라이트 계열의 스킨에서는 아이콘이, 퍼스널 계열의 스킨에서는 이미지가 출력됩니다.
+
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);