diff --git a/AvocadoEdition_Light/addons/sample/config.php b/AvocadoEdition_Light/addons/sample/config.php new file mode 100644 index 0000000..02c4578 --- /dev/null +++ b/AvocadoEdition_Light/addons/sample/config.php @@ -0,0 +1,3 @@ +getConfig(); + echo '
+ + + + + + + + + + + +
+ 애드온 기능 활성화 + + +
+
'; + } + + public function getConfig() + { + global $g5; + + $sql = "SELECT addon_config FROM {$g5['addons_config_table']} WHERE addon_name = '{$this->className}'"; + $result = sql_fetch($sql); + + if ($result && isset($result['addon_config'])) { + return json_decode($result['addon_config'], true) ?: []; + } + + return []; + } +} diff --git a/AvocadoEdition_Light/addons/sample/sample.config.php b/AvocadoEdition_Light/addons/sample/sample.config.php deleted file mode 100644 index d21ee4a..0000000 --- a/AvocadoEdition_Light/addons/sample/sample.config.php +++ /dev/null @@ -1,3 +0,0 @@ -addChildMenu("config", "환경설정", G5_ADMIN_URL . "/site_config_form.php", true, 1, "\F3E5", 0); $menu["config"]->getLastAddedMenu()->addSubURL("/site_config_form_update.php"); -$menu["config"]->addChildMenu("config", "테마 설정", G5_ADMIN_URL . "/theme.php", true, 2, "\F4B2", 0); +$menu["config"]->addChildMenu("config", "애드온 설정", G5_ADMIN_URL . "/addon_config.php", true, 2, "\F4CA", 0); + +$menu["config"]->addChildMenu("config", "홈페이지 폰트 설정", G5_ADMIN_URL . "/editor_font.php", true, 3, "\F5CB", 0); +$menu["config"]->getLastAddedMenu()->addSubURL("/editor_font_update.php"); + +$menu["config"]->addChildMenu("config", "테마 설정", G5_ADMIN_URL . "/theme.php", true, 4, "\F4B2", 0); $menu["config"]->getLastAddedMenu()->addSubURL("/theme_config_load.php"); $menu["config"]->getLastAddedMenu()->addSubURL("/theme_detail.php"); $menu["config"]->getLastAddedMenu()->addSubURL("/theme_update.php"); $menu["config"]->getLastAddedMenu()->addSubURL("/theme_preview.php"); -$menu["config"]->addChildMenu("config", "메인 편집", G5_ADMIN_URL . "/viewer_form.php", true, 3, "\F3F4", 0); -$menu["config"]->getLastAddedMenu()->addSubURL("/viewer_form_update.php"); - -$menu["config"]->addChildMenu("config", "디자인 설정", G5_ADMIN_URL . "/design_form.php", true, 4, "\F1D8", 0); +$menu["config"]->addChildMenu("config", "디자인 설정", G5_ADMIN_URL . "/design_form.php", true, 5, "\F1D8", 0); $menu["config"]->getLastAddedMenu()->addSubURL("/design_form_update.php"); -$menu["config"]->addChildMenu("config", "HTML에디터 폰트 설정", G5_ADMIN_URL . "/editor_font.php", true, 5, "\F3DA", 0); -$menu["config"]->getLastAddedMenu()->addSubURL("/editor_font_update.php"); +$menu["config"]->addChildMenu("config", "메인 편집", G5_ADMIN_URL . "/viewer_form.php", true, 6, "\F891", 0); +$menu["config"]->getLastAddedMenu()->addSubURL("/viewer_form_update.php"); -$menu["config"]->addChildMenu("config", "메뉴 설정", G5_ADMIN_URL . "/menu_list.php", true, 6, "\F478", 0); +$menu["config"]->addChildMenu("config", "메뉴 설정", G5_ADMIN_URL . "/menu_list.php", true, 7, "\F478", 0); $menu["config"]->getLastAddedMenu()->addSubURL("/menu_list_update.php"); $menu["config"]->getLastAddedMenu()->addSubURL("/menu_form.php"); $menu["config"]->getLastAddedMenu()->addSubURL("/menu_form_search.php"); diff --git a/AvocadoEdition_Light/adm/addon_config.php b/AvocadoEdition_Light/adm/addon_config.php new file mode 100644 index 0000000..7d29c23 --- /dev/null +++ b/AvocadoEdition_Light/adm/addon_config.php @@ -0,0 +1,107 @@ + +
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ 애드온 이름 + + name ?> +
+ 애드온 제작자 + + link ? "link . "\" target=\"_blank\">" . $addon->author . "" : $addon->author ?> +
+ 애드온 설명 + + description ?> +
+ 애드온 버전 + + version ?> +
+
+
+ +
+ + printConfigForm(); + } + ?> +
+
+ save + +
+
+
+
+
+
+ $value) { + if (!in_array($key, $filter)) { + $config_data[$key] = $value; + } + } + + $config_data["saved_date"] = (new DateTime())->getTimestamp(); + + $config_json = addslashes(json_encode($config_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + + $sql = " SELECT COUNT(*) as cnt FROM {$g5['addons_config_table']} WHERE addon_name = '{$addon_name}' "; + $row = sql_fetch($sql); + + if ($row['cnt'] > 0) { + $sql = " UPDATE {$g5['addons_config_table']} + SET addon_config = '{$config_json}', + addon_version = '{$addon->version}' + WHERE addon_name = '{$addon_name}' "; + } else { + $sql = " INSERT INTO {$g5['addons_config_table']} + SET addon_name = '{$addon_name}', + addon_config = '{$config_json}', + addon_version = '{$addon->version}' "; + } + + sql_query($sql); +} else { + alert("애드온이 설정되지 않았습니다."); +} + +goto_url('./addon_config.php?addon=' . $addon_name); diff --git a/AvocadoEdition_Light/adm/admin.head.php b/AvocadoEdition_Light/adm/admin.head.php index ae86d55..ea975b6 100644 --- a/AvocadoEdition_Light/adm/admin.head.php +++ b/AvocadoEdition_Light/adm/admin.head.php @@ -2,7 +2,7 @@ if (!defined('_GNUBOARD_')) exit; -$begin_time = get_microtime(); +$begin_time = microtime(true); include_once G5_PATH . '/head.sub.php'; ?> diff --git a/AvocadoEdition_Light/adm/css/addon_config.css b/AvocadoEdition_Light/adm/css/addon_config.css new file mode 100644 index 0000000..69b9c8f --- /dev/null +++ b/AvocadoEdition_Light/adm/css/addon_config.css @@ -0,0 +1,70 @@ + +th a { + display: inline-block; + vertical-align: middle; + padding: 3px 10px; + background: #ecc6c6; + color: #fff; + margin: 5px 0 0; +} + +th a+a { + margin-top: 3px; +} + +#wrap { + height: 100%; +} + +#container { + padding: 0 !important; + min-height: 100%; +} + +#wrapper { + height: 100%; + box-sizing: border-box; +} + +#container section.addon_config { + display: flex; + height: 100%; + padding: 8px; + gap: 8px; +} + +.addon_config>nav { + min-width: 200px; + display: flex; + flex-direction: column; + border: 1px solid #d18686; + border-radius: 4px; + overflow:hidden; +} + +.addon_config>nav>* { + padding: 0 12px; + line-height: 32px; +} + +.addon_config>nav>a.selected { + background: #ecc6c6; + font-weight: bold; +} + +.addon_config>nav>span { + background: #d18686; + color: #FFF; + line-height: 48px; +} + +.addon_config>section { + flex-grow: 1; + display: flex; + flex-direction: column; + gap: 8px; +} + +td a { + color: #d18686; +} diff --git a/AvocadoEdition_Light/adm/design_form_update.php b/AvocadoEdition_Light/adm/design_form_update.php index 72d4fcd..7dd0a4c 100644 --- a/AvocadoEdition_Light/adm/design_form_update.php +++ b/AvocadoEdition_Light/adm/design_form_update.php @@ -1,6 +1,25 @@