diff --git a/modules/site/conf/module.xml b/modules/site/conf/module.xml index e52b3fb4c..5635c330d 100644 --- a/modules/site/conf/module.xml +++ b/modules/site/conf/module.xml @@ -1,23 +1,7 @@ - - + - - - Site - 사이트 - Site - Site - Site - Site - Site - Site - Site - Site - Site - - diff --git a/modules/site/lang/ko.lang.php b/modules/site/lang/ko.lang.php new file mode 100644 index 000000000..a09f11b8c --- /dev/null +++ b/modules/site/lang/ko.lang.php @@ -0,0 +1,3 @@ +user_list = '회원 목록'; +?> diff --git a/modules/site/site.admin.controller.php b/modules/site/site.admin.controller.php index e69de29bb..e74f8c540 100644 --- a/modules/site/site.admin.controller.php +++ b/modules/site/site.admin.controller.php @@ -0,0 +1,16 @@ + diff --git a/modules/site/site.admin.view.php b/modules/site/site.admin.view.php index e69de29bb..1092ae9c0 100644 --- a/modules/site/site.admin.view.php +++ b/modules/site/site.admin.view.php @@ -0,0 +1,35 @@ +getLoggedInfo(); + + $oModuleModel = &getModel('module'); + $this->site_module_info = Context::get('current_module_info'); + $this->site_srl = $this->site_module_info->site_srl; + + if (!Context::get('is_logged') || !$oModuleModel->isSiteAdmin($logged_info, $this->site_module_info->site_srl)) return $this->stop('msg_not_permitted'); + + $this->site_srl = $this->site_module_info->site_srl; + if(!$this->site_srl) return $this->stop('msg_invalid_request'); + + $this->setTemplatePath($this->module_path.'tpl'); + + + } + } +?> diff --git a/modules/site/site.class.php b/modules/site/site.class.php index e69de29bb..dfaa2faf4 100644 --- a/modules/site/site.class.php +++ b/modules/site/site.class.php @@ -0,0 +1,40 @@ + diff --git a/modules/site/site.model.php b/modules/site/site.model.php index e69de29bb..d478bb759 100644 --- a/modules/site/site.model.php +++ b/modules/site/site.model.php @@ -0,0 +1,217 @@ +makeGnbUrl($member_info->member_srl); + + } + + function makeGnbUrl($member_srl) + { + global $lang; + $oAdminAdminModel = &getAdminModel('admin'); + $lang->menu_gnb_sub = $oAdminAdminModel->getAdminMenuLang(); + + $oMenuAdminModel = &getAdminModel('menu'); + $outputs = $oMenuAdminModel->getMenus($member_srl); + if (!$outputs) $this->_createXeAdminMenu($member_srl); + $output = $outputs[0]; + + $menu_info = $oMenuAdminModel->getMenu($output->menu_srl); + + if(is_readable($menu_info->php_file)) + include $menu_info->php_file; + else { + //header('location:'.getNotEncodedUrl('', 'module', 'admin')); + return; + } + + $oModuleModel = &getModel('module'); + $moduleActionInfo = $oModuleModel->getModuleActionXml("admin"); + if(is_object($moduleActionInfo->menu)) + { + $subMenuTitle = ''; + foreach($moduleActionInfo->menu AS $key=>$value) + { + if($value->acts && in_array(Context::get('act'), $value->acts)) + { + $subMenuTitle = $value->title; + break; + } + } + } + + $parentSrl = 0; + if(is_array($menu->list)) + { + foreach($menu->list AS $key=>$value) + { + $parentMenu = $value; + if(is_array($parentMenu['list']) && count($parentMenu['list']) > 0) + { + foreach($parentMenu['list'] AS $key2=>$value2) + { + $childMenu = $value2; + if($subMenuTitle == $childMenu['text']) + { + $parentSrl = $childMenu['parent_srl']; + break; + } + } + } + } + } + + $return_output->menuList = $menu->list; + $return_output->parentSrl = $parentSrl; + + return $return_output; + } + + /** + * @brief regenerate xe admin default menu + * @return none + **/ + function _createXeAdminMenu($site_admin_srl) + { + //insert menu + $args->title = "__XE_SITE_ADMIN__"; + $args->menu_srl = getNextSequence(); + $args->listorder = $args->menu_srl * -1; + $args->site_srl = $site_admin_srl; + $output = executeQuery('menu.insertMenu', $args); + $menuSrl = $args->menu_srl; + unset($args); + + // gnb item create + $gnbList = array('dashboard', 'site', 'user', 'content', 'theme', 'extensions', 'configuration'); + foreach($gnbList AS $key=>$value) + { + //insert menu item + $args->menu_srl = $menuSrl; + $args->menu_item_srl = getNextSequence(); + $args->name = '{$lang->menu_gnb[\''.$value.'\']}'; + if($value == 'dashboard') $args->url = getUrl('', 'module', 'admin'); + else $args->url = '#'; + $args->listorder = -1*$args->menu_item_srl; + $output = executeQuery('menu.insertMenuItem', $args); + } + + $oMenuAdminModel = &getAdminModel('menu'); + $columnList = array('menu_item_srl', 'name'); + $output = $oMenuAdminModel->getMenuItems($menuSrl, 0, $columnList); + if(is_array($output->data)) + { + foreach($output->data AS $key=>$value) + { + preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $value->name, $m); + $gnbDBList[$m[1]] = $value->menu_item_srl; + } + } + + unset($args); + $oModuleModel = &getModel('module'); + $installed_module_list = $oModuleModel->getModulesXmlInfo(); + + // gnb sub item create + if(is_array($installed_module_list)) + { + $oMemberModel = &getModel('member'); + $output = $oMemberModel->getAdminGroup(array('group_srl')); + $adminGroupSrl = $output->group_srl; + + // common argument setting + $args->menu_srl = $menuSrl; + $args->open_window = 'N'; + $args->expand = 'N'; + $args->normal_btn = ''; + $args->hover_btn = ''; + $args->active_btn = ''; + $args->group_srls = $adminGroupSrl; + + foreach($installed_module_list AS $key=>$value) + { + $moduleActionInfo = $oModuleModel->getModuleActionXml($value->module); + if(is_object($moduleActionInfo->menu)) + { + foreach($moduleActionInfo->menu AS $key2=>$value2) + { + if ($value2->type == 'site' || $value2->type == 'all'){ + $gnbKey = "'".$this->_getGnbKey($key2)."'"; + + //insert menu item + $args->menu_item_srl = getNextSequence(); + $args->parent_srl = $gnbDBList[$gnbKey]; + $args->name = '{$lang->menu_gnb_sub[\''.$key2.'\']}'; + $args->url = getNotEncodedUrl('', 'module', 'admin', 'act', $value2->index); + $args->listorder = -1*$args->menu_item_srl; + $output = executeQuery('menu.insertMenuItem', $args); + } + } + } + } + } + + $oMenuAdminConroller = &getAdminController('menu'); + $oMenuAdminConroller->makeXmlFile($menuSrl); + } + + function _getGnbKey($menuName) + { + switch($menuName) { + case 'site': + return 'site'; + break; + case 'userList': + case 'siteUserList': + case 'userSetting': + case 'point': + return 'user'; + break; + case 'document': + case 'comment': + case 'trackback': + case 'file': + case 'poll': + case 'importer': + return 'content'; + break; + case 'theme': + return 'theme'; + break; + case 'easyInstall': + case 'installedLayout': + case 'installedModule': + case 'installedWidget': + case 'installedAddon': + case 'editor': + case 'spamFilter': + return 'extensions'; + break; + case 'adminConfiguration': + case 'adminMenuSetup': + case 'fileUpload': + return 'configuration'; + break; + default: + return 'extensions'; + } + } + } + +?>