Reorganize default admin menu

This commit is contained in:
Kijin Sung 2016-02-10 00:14:32 +09:00
parent 14d650d305
commit 08cc9009b5
6 changed files with 55 additions and 153 deletions

View file

@ -131,12 +131,13 @@ class adminAdminView extends admin
foreach((array)$moduleActionInfo->menu as $key => $value) foreach((array)$moduleActionInfo->menu as $key => $value)
{ {
if(isset($value->acts) && is_array($value->acts) && in_array($currentAct, $value->acts)) if(is_array($value->acts) && in_array($currentAct, $value->acts))
{ {
$subMenuTitle = $value->title; $subMenuTitle = $value->title;
break; break;
} }
} }
// get current menu's srl(=parentSrl) // get current menu's srl(=parentSrl)
$parentSrl = 0; $parentSrl = 0;
$oMenuAdminConroller = getAdminController('menu'); $oMenuAdminConroller = getAdminController('menu');

View file

@ -154,7 +154,7 @@ class admin extends ModuleObject
$output = $oMenuAdminModel->getMenuItems($menuSrl, 0, $columnList); $output = $oMenuAdminModel->getMenuItems($menuSrl, 0, $columnList);
if(is_array($output->data)) if(is_array($output->data))
{ {
foreach($output->data AS $key => $value) foreach($output->data as $key => $value)
{ {
preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $value->name, $m); preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $value->name, $m);
$gnbDBList[$m[1]] = $value->menu_item_srl; $gnbDBList[$m[1]] = $value->menu_item_srl;
@ -162,90 +162,43 @@ class admin extends ModuleObject
} }
unset($args); unset($args);
$gnbModuleList = array( $gnbMenuStructure = array(
0 => array( 'menu' => array(
'module' => 'menu', 'menu.siteMap',
'subMenu' => array('siteMap', 'siteDesign'), 'menu.siteDesign',
), ),
1 => array( 'user' => array(
'module' => 'member', 'member.userList',
'subMenu' => array('userList', 'userSetting', 'userGroup'), 'member.userSetting',
'member.userGroup',
'point.point',
), ),
2 => array( 'content' => array(
'module' => 'document', 'board.board',
'subMenu' => array('document'), 'document.document',
'comment.comment',
'file.file',
'poll.poll',
'editor.editor',
'importer.importer',
'spamfilter.spamFilter',
'trash.trash',
), ),
3 => array( 'configuration' => array(
'module' => 'comment', 'admin.adminConfigurationGeneral',
'subMenu' => array('comment'), 'admin.adminConfigurationFtp',
'admin.adminMenuSetup',
'file.fileUpload',
'module.filebox',
), ),
4 => array( 'advanced' => array(
'module' => 'file', 'autoinstall.easyInstall',
'subMenu' => array('file'), 'layout.installedLayout',
), 'module.installedModule',
5 => array( 'addon.installedAddon',
'module' => 'poll', 'widget.installedWidget',
'subMenu' => array('poll'), 'module.multilingual',
), 'rss.rss',
6 => array(
'module' => 'rss',
'subMenu' => array('rss'),
),
7 => array(
'module' => 'module',
'subMenu' => array('multilingual'),
),
8 => array(
'module' => 'importer',
'subMenu' => array('importer'),
),
9 => array(
'module' => 'trash',
'subMenu' => array('trash'),
),
10 => array(
'module' => 'autoinstall',
'subMenu' => array('easyInstall'),
),
11 => array(
'module' => 'layout',
'subMenu' => array('installedLayout'),
),
12 => array(
'module' => 'module',
'subMenu' => array('installedModule'),
),
13 => array(
'module' => 'widget',
'subMenu' => array('installedWidget'),
),
14 => array(
'module' => 'addon',
'subMenu' => array('installedAddon'),
),
15 => array(
'module' => 'editor',
'subMenu' => array('editor'),
),
16 => array(
'module' => 'spamfilter',
'subMenu' => array('spamFilter'),
),
17 => array(
'module' => 'admin',
'subMenu' => array('adminConfigurationGeneral', 'adminConfigurationFtp', 'adminMenuSetup'),
),
18 => array(
'module' => 'file',
'subMenu' => array('fileUpload'),
),
19 => array(
'module' => 'module',
'subMenu' => array('filebox'),
),
20 => array(
'module' => 'point',
'subMenu' => array('point')
), ),
); );
@ -253,8 +206,7 @@ class admin extends ModuleObject
$output = $oMemberModel->getAdminGroup(array('group_srl')); $output = $oMemberModel->getAdminGroup(array('group_srl'));
$adminGroupSrl = $output->group_srl; $adminGroupSrl = $output->group_srl;
// gnb sub item create // gnb common argument setting
// common argument setting
$args = new stdClass(); $args = new stdClass();
$args->menu_srl = $menuSrl; $args->menu_srl = $menuSrl;
$args->open_window = 'N'; $args->open_window = 'N';
@ -265,25 +217,25 @@ class admin extends ModuleObject
$args->group_srls = $adminGroupSrl; $args->group_srls = $adminGroupSrl;
$oModuleModel = getModel('module'); $oModuleModel = getModel('module');
foreach($gnbModuleList AS $key => $value) $moduleActionInfo = array();
foreach ($gnbMenuStructure as $key => $items)
{ {
if(is_array($value['subMenu'])) foreach ($items as $item)
{ {
$moduleActionInfo = $oModuleModel->getModuleActionXml($value['module']); list($module_name, $menu_name) = explode('.', $item);
foreach($value['subMenu'] AS $key2 => $value2) if (!isset($moduleActionInfo[$module_name]))
{ {
$gnbKey = "'" . $this->_getGnbKey($value2) . "'"; $moduleActionInfo[$module_name] = $oModuleModel->getModuleActionXml($module_name);
}
//insert menu item
$args->menu_item_srl = getNextSequence(); $args->menu_item_srl = getNextSequence();
$args->parent_srl = $gnbDBList[$gnbKey]; $args->parent_srl = $gnbDBList["'" . $key . "'"];
$args->name = '{$lang->menu_gnb_sub[\'' . $value2 . '\']}'; $args->name = '{$lang->menu_gnb_sub[\'' . $menu_name . '\']}';
$args->url = 'index.php?module=admin&act=' . $moduleActionInfo->menu->{$value2}->index; $args->url = 'index.php?module=admin&act=' . $moduleActionInfo[$module_name]->menu->{$menu_name}->index;
$args->listorder = -1 * $args->menu_item_srl; $args->listorder = -1 * $args->menu_item_srl;
$output = executeQuery('menu.insertMenuItem', $args); $output = executeQuery('menu.insertMenuItem', $args);
} }
} }
}
$oMenuAdminConroller = getAdminController('menu'); $oMenuAdminConroller = getAdminController('menu');
$oMenuAdminConroller->makeXmlFile($menuSrl); $oMenuAdminConroller->makeXmlFile($menuSrl);
@ -293,55 +245,6 @@ class admin extends ModuleObject
FileHandler::RemoveFilesInDir('./files/cache/menu/admin_lang'); FileHandler::RemoveFilesInDir('./files/cache/menu/admin_lang');
} }
/**
* Return parent menu key by child menu
* @return string
*/
function _getGnbKey($menuName)
{
switch($menuName)
{
case 'siteMap':
case 'siteDesign':
return 'menu';
break;
case 'userList':
case 'userSetting':
case 'userGroup':
case 'point':
return 'user';
break;
case 'document':
case 'comment':
case 'file':
case 'poll':
case 'rss':
case 'multilingual':
case 'importer':
case 'trash':
case 'spamFilter':
return 'content';
break;
case 'easyInstall':
case 'installedLayout':
case 'installedModule':
case 'installedWidget':
case 'installedAddon':
case 'editor':
return 'advanced';
break;
case 'adminConfigurationGeneral':
case 'adminConfigurationFtp':
case 'adminMenuSetup':
case 'fileUpload':
case 'filebox':
return 'configuration';
break;
default:
return 'advanced';
}
}
/** /**
* Return parent old menu key by child menu * Return parent old menu key by child menu
* @return string * @return string

View file

@ -28,7 +28,7 @@
<script> <script>
var __xe_admin_gnb_txs = new Array(); var __xe_admin_gnb_txs = new Array();
</script> </script>
<!--@foreach($gnbUrlList AS $key=>$value)--> <!--@foreach($gnbUrlList as $key=>$value)-->
<!--@if(strstr($value['menu_name_key'], 'configuration'))--> <!--@if(strstr($value['menu_name_key'], 'configuration'))-->
<li class="open"|cond="$_COOKIE['__xe_admin_gnb_tx_favorite'] == 'open'"> <li class="open"|cond="$_COOKIE['__xe_admin_gnb_tx_favorite'] == 'open'">
<script> <script>

View file

@ -1064,7 +1064,7 @@ margin-bottom: 10px;
border-top-color: #eee; border-top-color: #eee;
} }
.x>.body>.gnb>ul>li[data-index="5"] { .x>.body>.gnb>ul>li[data-index="5"] {
margin-bottom: 25px; margin-bottom: 1px;
} }
.x>.body>.gnb>ul>li[data-index="6"] { .x>.body>.gnb>ul>li[data-index="6"] {
border-top-color: #eee; border-top-color: #eee;

View file

@ -24,7 +24,6 @@
<action name="dispMemberModifyNicknameLog" type="view" standalone="true" /> <action name="dispMemberModifyNicknameLog" type="view" standalone="true" />
<action name="dispMemberAdminList" type="view" index="true" admin_index="true" menu_name="userList" menu_index="true"/> <action name="dispMemberAdminList" type="view" index="true" admin_index="true" menu_name="userList" menu_index="true"/>
<!--action name="dispMemberAdminConfig" type="view" menu_name="userSetting" menu_index="true" /-->
<action name="dispMemberAdminConfig" type="view" menu_name="userSetting" menu_index="true" /> <action name="dispMemberAdminConfig" type="view" menu_name="userSetting" menu_index="true" />
<action name="dispMemberAdminSignUpConfig" type="view" menu_name="userSetting" /> <action name="dispMemberAdminSignUpConfig" type="view" menu_name="userSetting" />
<action name="dispMemberAdminLoginConfig" type="view" menu_name="userSetting" /> <action name="dispMemberAdminLoginConfig" type="view" menu_name="userSetting" />

View file

@ -975,10 +975,9 @@ class moduleModel extends module
if(is_array($info->menu->{$action->attrs->menu_name}->acts)) if(is_array($info->menu->{$action->attrs->menu_name}->acts))
{ {
$info->menu->{$action->attrs->menu_name}->acts[] = $name; $info->menu->{$action->attrs->menu_name}->acts[] = $name;
$currentKey = array_search($name, $info->menu->{$action->attrs->menu_name}->acts);
} }
$buff[] = sprintf('$info->menu->%s->acts[%d]=\'%s\';', $action->attrs->menu_name, $currentKey, $name); $buff[] = sprintf('$info->menu->%s->acts[]=\'%s\';', $action->attrs->menu_name, $name);
$i++; $i++;
} }