mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
issue 2498 new admin menu develop
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11318 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
4b4fc419a8
commit
8aafc130ab
10 changed files with 196 additions and 52 deletions
|
|
@ -114,7 +114,7 @@
|
|||
$lang->menu_gnb_sub = $oAdminAdminModel->getAdminMenuLang();
|
||||
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$menu_info = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
|
||||
$menu_info = $oMenuAdminModel->getMenuByTitle($oAdminAdminModel->getAdminMenuName());
|
||||
Context::set('admin_menu_srl', $menu_info->menu_srl);
|
||||
|
||||
if(!is_readable($menu_info->php_file)) return;
|
||||
|
|
@ -389,8 +389,9 @@
|
|||
$oModuleModel = &getModel('module');
|
||||
$configObject = $oModuleModel->getModuleConfig('admin');
|
||||
|
||||
$oAdmin = &getClass('admin');
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$output = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
|
||||
$output = $oMenuAdminModel->getMenuByTitle($oAdmin->getAdminMenuName());
|
||||
|
||||
Context::set('menu_srl', $output->menu_srl);
|
||||
Context::set('menu_title', $output->title);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,13 @@
|
|||
* @version 0.1
|
||||
*/
|
||||
class admin extends ModuleObject {
|
||||
private $adminMenuName = '__ADMINMENU_V17__';
|
||||
|
||||
public function getAdminMenuName()
|
||||
{
|
||||
return $this->adminMenuName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install admin module
|
||||
* @return Object
|
||||
|
|
@ -24,6 +31,26 @@
|
|||
$oDB = &DB::getInstance();
|
||||
if(!$oDB->isColumnExists("admin_favorite", "type")) return true;
|
||||
|
||||
// for admin menu
|
||||
if(Context::isInstalled())
|
||||
{
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$output = $oMenuAdminModel->getMenuByTitle($this->adminMenuName);
|
||||
|
||||
if(!$output->menu_srl)
|
||||
{
|
||||
$oAdminClass = &getClass('admin');
|
||||
$oAdminClass->createXeAdminMenu();
|
||||
}
|
||||
else if(!is_readable($output->php_file))
|
||||
{
|
||||
$oMenuAdminController = &getAdminController('menu');
|
||||
$oMenuAdminController->makeXmlFile($output->menu_srl);
|
||||
}
|
||||
|
||||
$this->_oldAdminmenuDelete();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -66,18 +93,18 @@
|
|||
* Regenerate xe admin default menu
|
||||
* @return void
|
||||
*/
|
||||
function createXeAdminMenu()
|
||||
public function createXeAdminMenu()
|
||||
{
|
||||
//insert menu
|
||||
$args->title = '__XE_ADMIN__';
|
||||
$args->menu_srl = getNextSequence();
|
||||
$args->listorder = $args->menu_srl * -1;
|
||||
$output = executeQuery('menu.insertMenu', $args);
|
||||
$args->title = $this->adminMenuName;
|
||||
$args->menu_srl = getNextSequence();
|
||||
$args->listorder = $args->menu_srl * -1;
|
||||
$output = executeQuery('menu.insertMenu', $args);
|
||||
$menuSrl = $args->menu_srl;
|
||||
unset($args);
|
||||
|
||||
// gnb item create
|
||||
$gnbList = array('dashboard', 'menu', 'user', 'content', 'theme', 'extensions', 'configuration');
|
||||
$gnbList = array('dashboard', 'menu', 'user', 'content', 'configuration', 'advanced');
|
||||
foreach($gnbList AS $key=>$value)
|
||||
{
|
||||
//insert menu item
|
||||
|
|
@ -109,7 +136,7 @@
|
|||
$gnbModuleList = array(
|
||||
0=>array(
|
||||
'module'=>'menu',
|
||||
'subMenu'=>array('siteMap'),
|
||||
'subMenu'=>array('siteMap', 'siteDesign'),
|
||||
),
|
||||
1=>array(
|
||||
'module'=>'member',
|
||||
|
|
@ -214,7 +241,7 @@
|
|||
$args->hover_btn = '';
|
||||
$args->active_btn = '';
|
||||
$args->group_srls = $adminGroupSrl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
foreach($gnbModuleList AS $key=>$value)
|
||||
{
|
||||
|
|
@ -245,6 +272,56 @@
|
|||
* @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 'trackback':
|
||||
case 'file':
|
||||
case 'poll':
|
||||
case 'rss':
|
||||
case 'multilingual':
|
||||
case 'importer':
|
||||
case 'trash':
|
||||
case 'spamFilter':
|
||||
return 'content';
|
||||
break;
|
||||
case 'theme':
|
||||
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 string
|
||||
*/
|
||||
function _getOldGnbKey($menuName)
|
||||
{
|
||||
switch($menuName) {
|
||||
case 'siteMap':
|
||||
|
|
@ -287,7 +364,89 @@
|
|||
return 'configuration';
|
||||
break;
|
||||
default:
|
||||
return 'extensions';
|
||||
return 'user_added_menu';
|
||||
}
|
||||
}
|
||||
|
||||
private function _oldAdminmenuDelete()
|
||||
{
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
|
||||
$output = $oMenuAdminModel->getMenuByTitle($this->adminMenuName);
|
||||
$newAdminmenuSrl = $output->menu_srl;
|
||||
$output = $oMenuAdminModel->getMenuItems($newAdminmenuSrl, 0);
|
||||
$newAdminParentMenuList = array();
|
||||
if(is_array($output->data))
|
||||
{
|
||||
foreach($output->data AS $key=>$value)
|
||||
{
|
||||
$tmp = explode('\'', $value->name);
|
||||
$newAdminParentMenuList[$tmp[1]] = $value;
|
||||
}
|
||||
}
|
||||
unset($output);
|
||||
|
||||
// old admin menu
|
||||
$output = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
|
||||
$menuSrl = $output->menu_srl;
|
||||
|
||||
if($menuSrl)
|
||||
{
|
||||
$oMenuAdminController = &getAdminController('menu');
|
||||
|
||||
$output = $oMenuAdminModel->getMenuItems($menuSrl);
|
||||
if(is_array($output->data))
|
||||
{
|
||||
$parentMenu = array();
|
||||
foreach($output->data AS $key=>$menuItem)
|
||||
{
|
||||
if($menuItem->parent_srl == 0)
|
||||
{
|
||||
$tmp = explode('\'', $menuItem->name);
|
||||
$parentMenuKey = $tmp[1];
|
||||
$parentMenu[$menuItem->menu_item_srl] = $parentMenuKey;
|
||||
}
|
||||
}
|
||||
|
||||
$isUserAddedMenuMoved = false;
|
||||
foreach($output->data AS $key=>$menuItem)
|
||||
{
|
||||
if($menuItem->parent_srl != 0)
|
||||
{
|
||||
$tmp = explode('\'', $menuItem->name);
|
||||
$menuKey = $tmp[1];
|
||||
|
||||
$result = $this->_getOldGnbKey($menuKey);
|
||||
if($result == 'user_added_menu')
|
||||
{
|
||||
if($parentMenu[$menuItem->parent_srl] == 'theme')
|
||||
{
|
||||
$newParentItem = $newAdminParentMenuList['menu'];
|
||||
}
|
||||
else if($parentMenu[$menuItem->parent_srl] == 'extensions')
|
||||
{
|
||||
$newParentItem = $newAdminParentMenuList['advanced'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$newParentItem = $newAdminParentMenuList[$parentMenu[$menuItem->parent_srl]];
|
||||
}
|
||||
$menuItem->menu_srl = $newParentItem->menu_srl;
|
||||
$menuItem->parent_srl = $newParentItem->menu_item_srl;
|
||||
|
||||
$output = executeQuery('menu.updateMenuItem', $menuItem);
|
||||
$isUserAddedMenuMoved = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($isUserAddedMenuMoved)
|
||||
{
|
||||
$oMenuAdminController->makeXmlFile($newAdminmenuSrl);
|
||||
}
|
||||
}
|
||||
|
||||
$oMenuAdminController->deleteMenu($menuSrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -268,14 +268,14 @@
|
|||
</item>
|
||||
<item name="menu_gnb" type="array">
|
||||
<item name="dashboard">
|
||||
<value xml:lang="ko"><![CDATA[제어판]]></value>
|
||||
<value xml:lang="ko"><![CDATA[대시보드]]></value>
|
||||
<value xml:lang="en"><![CDATA[Dashboard]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ダッシュボード]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[控制面板]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Kontrol Paneli]]></value>
|
||||
</item>
|
||||
<item name="menu">
|
||||
<value xml:lang="ko"><![CDATA[사이트]]></value>
|
||||
<value xml:lang="ko"><![CDATA[사이트 제작/편집]]></value>
|
||||
<value xml:lang="en"><![CDATA[Menu]]></value>
|
||||
<value xml:lang="jp"><![CDATA[サイト]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[目录]]></value>
|
||||
|
|
@ -295,20 +295,6 @@
|
|||
<value xml:lang="zh-CN"><![CDATA[内容]]></value>
|
||||
<value xml:lang="tr"><![CDATA[içerik]]></value>
|
||||
</item>
|
||||
<item name="theme">
|
||||
<value xml:lang="ko"><![CDATA[테마]]></value>
|
||||
<value xml:lang="en"><![CDATA[Theme]]></value>
|
||||
<value xml:lang="jp"><![CDATA[テーマ]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[主题]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Tema]]></value>
|
||||
</item>
|
||||
<item name="extensions">
|
||||
<value xml:lang="ko"><![CDATA[확장기능]]></value>
|
||||
<value xml:lang="en"><![CDATA[Extensions]]></value>
|
||||
<value xml:lang="jp"><![CDATA[拡張機能]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[扩展]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Eklentiler]]></value>
|
||||
</item>
|
||||
<item name="configuration">
|
||||
<value xml:lang="ko"><![CDATA[설정]]></value>
|
||||
<value xml:lang="en"><![CDATA[Settings]]></value>
|
||||
|
|
@ -316,6 +302,10 @@
|
|||
<value xml:lang="zh-CN"><![CDATA[设置]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Ayarlar]]></value>
|
||||
</item>
|
||||
<item name="advanced">
|
||||
<value xml:lang="ko"><![CDATA[고급]]></value>
|
||||
<value xml:lang="en"><![CDATA[Advanced]]></value>
|
||||
</item>
|
||||
</item>
|
||||
<item name="newest_news">
|
||||
<value xml:lang="ko"><![CDATA[최신 소식]]></value>
|
||||
|
|
@ -1473,4 +1463,4 @@
|
|||
<value xml:lang="ko"><![CDATA[모두 접기]]></value>
|
||||
<value xml:lang="en"><![CDATA[Close All]]></value>
|
||||
</item>
|
||||
</lang>
|
||||
</lang>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
<action name="dispMenuAdminManagement" type="view" standalone="true" />
|
||||
<action name="dispMenuAdminMidList" type="view" standalone="true" />
|
||||
<action name="dispMenuAdminSiteMap" type="view" standalone="true" admin_index="true" menu_name="siteMap" menu_index="true" />
|
||||
<action name="dispMenuAdminSiteDesign" type="view" standalone="true" menu_name="siteDesign" />
|
||||
|
||||
<action name="getMenuAdminTplInfo" type="model" standalone="true" />
|
||||
<action name="getMenuAdminItemInfo" type="model" standalone="true" />
|
||||
|
|
@ -34,7 +35,7 @@
|
|||
<menus>
|
||||
<menu name="siteMap">
|
||||
<title xml:lang="en">Menu Management</title>
|
||||
<title xml:lang="ko">사이트맵</title>
|
||||
<title xml:lang="ko">사이트 메뉴 편집</title>
|
||||
<title xml:lang="jp">サイトマップ</title>
|
||||
<title xml:lang="zh-CN">Menu Management</title>
|
||||
<title xml:lang="zh-TW">選單管理</title>
|
||||
|
|
@ -45,5 +46,9 @@
|
|||
<title xml:lang="mn">Menu Management</title>
|
||||
<title xml:lang="tr">Menu Management</title>
|
||||
</menu>
|
||||
<menu name="siteDesign">
|
||||
<title xml:lang="en">Menu Management</title>
|
||||
<title xml:lang="ko">사이트 디자인 설정</title>
|
||||
</menu>
|
||||
</menus>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -87,7 +87,8 @@
|
|||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$menu_info = $oMenuAdminModel->getMenu($menu_srl);
|
||||
|
||||
if($menu_info->title == '__XE_ADMIN__')
|
||||
$oAdmin = &getClass('admin');
|
||||
if($menu_info->title == $oAdmin->getAdminMenuName())
|
||||
return new Object(-1, 'msg_adminmenu_cannot_delete');
|
||||
|
||||
$this->deleteMenu($menu_srl);
|
||||
|
|
@ -377,7 +378,8 @@
|
|||
// Get original information
|
||||
$item_info = $oMenuAdminModel->getMenuItemInfo($args->menu_item_srl);
|
||||
|
||||
if($menu_title == '__XE_ADMIN__' && $item_info->parent_srl == 0)return $this->stop('msg_cannot_delete_for_admin_topmenu');
|
||||
$oAdmin = &getClass('admin');
|
||||
if($menu_title == $oAdmin->getAdminMenuName() && $item_info->parent_srl == 0)return $this->stop('msg_cannot_delete_for_admin_topmenu');
|
||||
|
||||
if($item_info->parent_srl) $parent_srl = $item_info->parent_srl;
|
||||
// Display an error that the category cannot be deleted if it has a child node
|
||||
|
|
|
|||
|
|
@ -331,9 +331,10 @@
|
|||
$menuListFromDB = $this->getMenus();
|
||||
if(is_array($menuListFromDB))
|
||||
{
|
||||
$oAdmin = &getClass('admin');
|
||||
foreach($menuListFromDB AS $key=>$value)
|
||||
{
|
||||
if($value->title == '__XE_ADMIN__') unset($output[$key]);
|
||||
if($value->title == $oAdmin->getAdminMenuName()) unset($output[$key]);
|
||||
else
|
||||
{
|
||||
unset($menu);
|
||||
|
|
|
|||
|
|
@ -137,6 +137,8 @@
|
|||
else $site_srl = (int)$site_module_info->site_srl;
|
||||
}
|
||||
|
||||
$oAdmin = &getClass('admin');
|
||||
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$menuListFromDB = $oMenuAdminModel->getMenus();
|
||||
$output = $menuListFromDB;
|
||||
|
|
@ -147,7 +149,7 @@
|
|||
$menuItems = array();
|
||||
foreach($output AS $key=>$value)
|
||||
{
|
||||
if($value->title == '__XE_ADMIN__') unset($output[$key]);
|
||||
if($value->title == $oAdmin->getAdminMenuName()) unset($output[$key]);
|
||||
else
|
||||
{
|
||||
unset($menu);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="site_srl" var="site_srl" filter="number" />
|
||||
<condition operation="notequal" column="title" default="__XE_ADMIN__" pipe="and" />
|
||||
<condition operation="notequal" column="title" default="__ADMINMENU_V17__" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="listorder" order="asc" />
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
<table name="menu_item" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="menu_srl" var="menu_srl" />
|
||||
<column name="parent_srl" var="parent_srl" />
|
||||
<column name="name" var="name" notnull="notnull" />
|
||||
<column name="url" var="url" />
|
||||
<column name="open_window" var="open_window" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue