diff --git a/AvocadoEdition_Light/adm/_m.board.menu.php b/AvocadoEdition_Light/adm/_m.board.menu.php new file mode 100644 index 0000000..a32a412 --- /dev/null +++ b/AvocadoEdition_Light/adm/_m.board.menu.php @@ -0,0 +1,22 @@ +addChildMenu("member", "게시판관리", G5_ADMIN_URL . "/board_list.php", true, 1, "gear-wide-connected", 0); +$menu["board"]->getLastAddedMenu()->addSubURL("/board_list_update.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/board_form.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/board_form_update.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/board_delete.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/board_copy.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/board_copy_update.php"); + +$menu["board"]->addChildMenu("member", "게시판그룹관리", G5_ADMIN_URL . "/boardgroup_list.php", true, 2, "gear-wide-connected", 0); +$menu["board"]->getLastAddedMenu()->addSubURL("/boardgroup_list_update.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/boardgroup_form.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/boardgroup_form_update.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/boardgroupmember_list.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/boardgroupmember_update.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/boardgroupmember_form.php"); + +$menu["board"]->addChildMenu("member", "내용관리", G5_ADMIN_URL . "/contentlist.php", true, 2, "gear-wide-connected", 0); +$menu["board"]->getLastAddedMenu()->addSubURL("/contentform.php"); +$menu["board"]->getLastAddedMenu()->addSubURL("/contentformupdate.php"); diff --git a/AvocadoEdition_Light/adm/_m.member.menu.php b/AvocadoEdition_Light/adm/_m.member.menu.php new file mode 100644 index 0000000..d3bb6a6 --- /dev/null +++ b/AvocadoEdition_Light/adm/_m.member.menu.php @@ -0,0 +1,22 @@ +addChildMenu("member", "회원관리", G5_ADMIN_URL . "/member_list.php", true, 1, "gear-wide-connected", 0); +$menu["member"]->getLastAddedMenu()->addSubURL("/member_form.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/member_delete.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/member_list_update.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/member_list_delete.php"); + +$menu["member"]->addChildMenu("member", "접속자집계", G5_ADMIN_URL . "/visit_list.php", true, 2, "grid-1x2", 0); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_domain.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_browser.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_os.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_device.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_hour.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_date.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_week.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_month.php"); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_year.php"); + +$menu["member"]->addChildMenu("member", "접속자로그삭제", G5_ADMIN_URL . "/visit_delete.php", true, 3, "palette2", 0); +$menu["member"]->getLastAddedMenu()->addSubURL("/visit_delete_update.php"); diff --git a/AvocadoEdition_Light/adm/_m.other.menu.php b/AvocadoEdition_Light/adm/_m.other.menu.php new file mode 100644 index 0000000..cc85321 --- /dev/null +++ b/AvocadoEdition_Light/adm/_m.other.menu.php @@ -0,0 +1,8 @@ +addChildMenu("other", "홈페이지 상세관리", G5_ADMIN_URL . "/config_form.php", true, 1, "gear-wide-connected", 0); +$menu["other"]->getLastAddedMenu()->addSubURL("/config_form_update.php"); + +$menu["other"]->addChildMenu("other", "세션파일 일괄삭제", G5_ADMIN_URL . "/session_file_delete.php", true, 1, "gear-wide-connected", 0); +$menu["other"]->addChildMenu("other", "캐시파일 일괄삭제", G5_ADMIN_URL . "/cache_file_delete.php", true, 1, "gear-wide-connected", 0); diff --git a/AvocadoEdition_Light/adm/_m.site.menu.php b/AvocadoEdition_Light/adm/_m.site.menu.php new file mode 100644 index 0000000..8215ae1 --- /dev/null +++ b/AvocadoEdition_Light/adm/_m.site.menu.php @@ -0,0 +1,22 @@ +addChildMenu("config", "환경설정", G5_ADMIN_URL . "/site_config_form.php", true, 1, "gear-wide-connected", 0); +$menu["config"]->getLastAddedMenu()->addSubURL("/site_config_form_update.php"); + +$menu["config"]->addChildMenu("config", "메인 편집", G5_ADMIN_URL . "/viewer_form.php", true, 2, "grid-1x2", 0); +$menu["config"]->getLastAddedMenu()->addSubURL("/viewer_form_update.php"); + +$menu["config"]->addChildMenu("config", "테마 설정", G5_ADMIN_URL . "/theme.php", true, 3, "palette2", 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 . "/design_form.php", true, 4, "brush", 0); +$menu["config"]->getLastAddedMenu()->addSubURL("/design_form_update.php"); + +$menu["config"]->addChildMenu("config", "메뉴 설정", G5_ADMIN_URL . "/menu_list.php", true, 5, "list", 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/_menu.class.php b/AvocadoEdition_Light/adm/_menu.class.php deleted file mode 100644 index e90a8fd..0000000 --- a/AvocadoEdition_Light/adm/_menu.class.php +++ /dev/null @@ -1,49 +0,0 @@ -mid = $mid; - $this->name = $name; - $this->order = $order; - $this->target = $target; - $this->icon = $icon; - $this->gnb_grp_div = $gnb_grp_div; - } -} - -class MenuCategory extends Menu -{ - public $key; - public $childmenu; - - public function __construct($key, $mid, $name, $target, $order = 0, $icon = '', $gnb_grp_div = 0) - { - $this->key = $key; - $this->childmenu = []; - parent::__construct($mid, $name, $target, $order, $icon, $gnb_grp_div); - } - - public function addChildMenu($mid, $name, $target, $order = 0, $icon = '', $gnb_grp_div = 0) - { - $this->childmenu[] = new Menu($mid, $name, $target, $order, $icon, $gnb_grp_div); - usort($this->childmenu, function($a, $b) { - return $a->order - $b->order; - }); - } - - public function buildHtml() - { - global $g5, $is_admin, $auth, $menu, $auth_menu, $sub_menu; - } -} diff --git a/AvocadoEdition_Light/adm/admin.head.php b/AvocadoEdition_Light/adm/admin.head.php index 9111b25..79220eb 100644 --- a/AvocadoEdition_Light/adm/admin.head.php +++ b/AvocadoEdition_Light/adm/admin.head.php @@ -95,20 +95,13 @@ function print_menu2($key, $no) "; - foreach ($amenu as $key => $value) { - $href1 = $href2 = ''; - if ($menu['menu' . $key][0][2]) { - $href1 = ''; - $href2 = ''; - } else { - continue; - } + foreach ($menu as $key => $menuitem) { $current_class = ""; - if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu' . $key][0][0], 0, 3))) - $current_class = " gnb_1dli_air"; - $gnb_str .= '
  • ' . PHP_EOL; - $gnb_str .= $href1 . $menu['menu' . $key][0][1] . $href2; - $gnb_str .= print_menu1('menu' . $key, 1); + $gnb_str .= "
  • name}\">" . PHP_EOL; + $gnb_str .= "url . "\" class=\"gnb_1da\">"; + $gnb_str .= $menuitem->name; + $gnb_str .= ""; + $gnb_str .= $menuitem->buildHtml();//print_menu1('menu' . $key, 1); $gnb_str .= "
  • "; } $gnb_str .= ""; diff --git a/AvocadoEdition_Light/adm/admin.lib.php b/AvocadoEdition_Light/adm/admin.lib.php index 37cfc3b..afa626d 100644 --- a/AvocadoEdition_Light/adm/admin.lib.php +++ b/AvocadoEdition_Light/adm/admin.lib.php @@ -444,20 +444,19 @@ if (get_session('ss_mb_key') !== $admin_key) { // 가변 메뉴 unset($auth_menu); unset($menu); -unset($amenu); $tmp = dir(G5_ADMIN_PATH); $menu = []; -$amenu = []; while ($entry = $tmp->read()) { if (preg_match('/(.*?)\.menu\.php$/', $entry, $m)) { include_once implode(DIRECTORY_SEPARATOR, [G5_ADMIN_PATH, $entry]); - $amenu[$m[1]] = $entry; } } -@ksort($amenu); +usort($menu, function($a, $b) { + return $a->order - $b->order; +}); $arr_query = []; if (isset($sst)) diff --git a/AvocadoEdition_Light/adm/admin.menu100.php b/AvocadoEdition_Light/adm/admin.menu100.php deleted file mode 100644 index d9f8606..0000000 --- a/AvocadoEdition_Light/adm/admin.menu100.php +++ /dev/null @@ -1,10 +0,0 @@ -display = $display; + $this->mid = $mid; + $this->name = $name; + $this->order = $order; + $this->url = $url; + $this->icon = $icon; + $this->gnb_grp_div = $gnb_grp_div; + } + + public function addSubURL($url) + { + if (!in_array($url, $this->suburl)) + $this->suburl[] = $url; + } +} diff --git a/AvocadoEdition_Light/classes/menucategory/menucategory.class.php b/AvocadoEdition_Light/classes/menucategory/menucategory.class.php new file mode 100644 index 0000000..29ed0ab --- /dev/null +++ b/AvocadoEdition_Light/classes/menucategory/menucategory.class.php @@ -0,0 +1,82 @@ +key = $key; + $this->childmenu = []; + parent::__construct($mid, $name, $url, $display, $order, $icon, $gnb_grp_div); + } + + public function addChild($childMenu) + { + $this->last_menu = $childMenu; + $this->childmenu[] = $childMenu; + $this->orderMenu(); + } + + public function addChildMenu($mid, $name, $url, $display = true, $order = 0, $icon = '', $gnb_grp_div = 0) + { + $menuitem = new Menu($mid, $name, $url, $display, $order, $icon, $gnb_grp_div); + $this->last_menu = $menuitem; + $this->childmenu[] = $menuitem; + $this->orderMenu(); + } + + public function orderMenu() + { + usort($this->childmenu, function($a, $b) { + return $a->order - $b->order; + }); + } + + public function getLastAddedMenu() + { + return $this->last_menu; + } + + public function buildHtml() + { + global $g5, $is_admin, $auth, $menu, $auth_menu; + $sub_menu = str_replace([G5_ADMIN_URL, "/adm"], ["", ""], $_SERVER["SCRIPT_NAME"]); + + $str = ""; + + return $str; + } +} diff --git a/AvocadoEdition_Light/common.php b/AvocadoEdition_Light/common.php index 222c058..ced9055 100644 --- a/AvocadoEdition_Light/common.php +++ b/AvocadoEdition_Light/common.php @@ -9,8 +9,11 @@ header('P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV if (!defined('G5_SET_TIME_LIMIT')) define('G5_SET_TIME_LIMIT', 0); + @set_time_limit(G5_SET_TIME_LIMIT); +define("__ADVDIR__", __DIR__); + //========================================================================================================================== // extract($_GET); 명령으로 인해 page.php?_POST[var1]=data1&_POST[var2]=data2 와 같은 코드가 _POST 변수로 사용되는 것을 막음 // 081029 : letsgolee 님께서 도움 주셨습니다. @@ -44,6 +47,38 @@ for ($i = 0; $i < $ext_cnt; $i++) { } //========================================================================================================================== +/** + * Summary of load_libs + * @param mixed $base_dir + * @throws \Exception + * @return string[] + */ +function load_libs($base_dir) +{ + $base_path = realpath($base_dir); + if ($base_path === false) { + throw new Exception("지정된 기본 디렉토리를 찾을 수 없습니다: $base_dir"); + } + $loaded_files = []; + $iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($base_path, RecursiveDirectoryIterator::SKIP_DOTS), + RecursiveIteratorIterator::SELF_FIRST + ); + foreach ($iterator as $file) { + if ($file->isDir()) { + $parent_folder_name = $file->getFilename(); + $class_file = $file->getPathname() . DIRECTORY_SEPARATOR . $parent_folder_name . '.class.php'; + if (file_exists($class_file)) { + require_once $class_file; + $loaded_files[] = $class_file; + } + } + } + return $loaded_files; +} + +$_system = new stdClass; +$_system->classes = load_libs(__DIR__ . "/classes"); function g5_path() { @@ -704,15 +739,12 @@ $faq_skin_url = get_skin_url('faq', $config['cf_faq_skin']); //============================================================================== - // 방문자수의 접속을 남김 include_once (G5_BBS_PATH . '/visit_insert.inc.php'); - // 일정 기간이 지난 DB 데이터 삭제 및 최적화 include_once (G5_BBS_PATH . '/db_table.optimize.php'); - // common.php 파일을 수정할 필요가 없도록 확장합니다. $extend_file = array(); $tmp = dir(G5_EXTEND_PATH);