mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-28 14:52:24 +09:00
issue 70 menu auto setting completed
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8615 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f3df85dcca
commit
bfa45bfde4
12 changed files with 400 additions and 81 deletions
|
|
@ -3,6 +3,7 @@
|
|||
class adminAdminModel extends admin
|
||||
{
|
||||
var $pwd;
|
||||
var $gnbLangBuffer;
|
||||
|
||||
function getSFTPList()
|
||||
{
|
||||
|
|
@ -144,4 +145,36 @@
|
|||
|
||||
return $param;
|
||||
}
|
||||
|
||||
function getAdminMenuLang()
|
||||
{
|
||||
$currentLang = Context::getLangType();
|
||||
$cacheFile = sprintf('./files/cache/menu/adminMenu.%s.lang.php', $currentLang);
|
||||
|
||||
// Update if no cache file exists or it is older than xml file
|
||||
if(!is_readable($cacheFile))
|
||||
{
|
||||
$oModuleModel = &getModel('module');
|
||||
$installed_module_list = $oModuleModel->getModulesXmlInfo();
|
||||
|
||||
$this->gnbLangBuffer = '<?php ';
|
||||
foreach($installed_module_list AS $key=>$value)
|
||||
{
|
||||
$moduleActionInfo = $oModuleModel->getModuleActionXml($value->module);
|
||||
if(is_object($moduleActionInfo->menu))
|
||||
{
|
||||
foreach($moduleActionInfo->menu AS $key2=>$value2)
|
||||
{
|
||||
$lang->menu_gnb_sub[$key2] = $value2->title;
|
||||
$this->gnbLangBuffer .=sprintf('$lang->menu_gnb_sub[\'%s\'] = \'%s\';', $key2, $value2->title);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->gnbLangBuffer .= ' ?>';
|
||||
FileHandler::writeFile($cacheFile, $this->gnbLangBuffer);
|
||||
}
|
||||
else include $cacheFile;
|
||||
|
||||
return $lang->menu_gnb_sub;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,9 +46,12 @@
|
|||
|
||||
}
|
||||
|
||||
function makeGnbUrl()
|
||||
function makeGnbUrl($module = 'admin')
|
||||
{
|
||||
global $lang;
|
||||
$oAdminAdminModel = &getAdminModel('admin');
|
||||
$lang->menu_gnb_sub = $oAdminAdminModel->getAdminMenuLang();
|
||||
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$menu_info = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
|
||||
|
||||
|
|
@ -59,7 +62,44 @@
|
|||
return;
|
||||
}
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$moduleActionInfo = $oModuleModel->getModuleActionXml($module);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Context::set('gnbUrlList', $menu->list);
|
||||
Context::set('parentSrl', $parentSrl);
|
||||
}
|
||||
|
||||
function loadSideBar()
|
||||
|
|
@ -372,6 +412,19 @@
|
|||
$this->setTemplateFile('config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Display Admin Menu Configuration(settings) page
|
||||
* @return none
|
||||
**/
|
||||
function dispAdminMenuSetup()
|
||||
{
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$output = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
|
||||
|
||||
Context::set('menu_srl', $output->menu_srl);
|
||||
$this->setTemplateFile('menu_setup');
|
||||
}
|
||||
|
||||
function showSendEnv() {
|
||||
if(Context::getResponseMethod() != 'HTML') return;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
**/
|
||||
|
||||
class admin extends ModuleObject {
|
||||
var $xeMenuTitle;
|
||||
|
||||
/**
|
||||
* @brief install admin module
|
||||
|
|
@ -19,8 +20,11 @@
|
|||
* @brief if update is necessary it returns true
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$this->xeMenuTitle = '__XE_ADMIN__';
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$output = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
|
||||
$output = $oMenuAdminModel->getMenuByTitle($this->xeMenuTitle);
|
||||
|
||||
//if(1)
|
||||
if(!$output->menu_srl)
|
||||
{
|
||||
$this->_createXeAdminMenu();
|
||||
|
|
@ -70,94 +74,125 @@
|
|||
function _createXeAdminMenu()
|
||||
{
|
||||
//insert menu
|
||||
$args->title = '__XE_ADMIN__';
|
||||
$args->title = $this->xeMenuTitle;
|
||||
$args->menu_srl = getNextSequence();
|
||||
//$args->menu_srl = 3302;
|
||||
$args->listorder = $args->menu_srl * -1;
|
||||
$output = executeQuery('menu.insertMenu', $args);
|
||||
$menuSrl = $args->menu_srl;
|
||||
unset($args);
|
||||
|
||||
$adminUrl = getUrl('', 'module', 'admin');
|
||||
$gnbList = array(
|
||||
'dashboard'=>array(
|
||||
'url'=>$adminUrl,
|
||||
'lnbList'=>array()
|
||||
),
|
||||
'site'=>array(
|
||||
'url'=>$adminUrl,
|
||||
'lnbList'=>array()
|
||||
),
|
||||
'user'=>array(
|
||||
'url'=>$adminUrl,
|
||||
'lnbList'=>array('userList'=>$adminUrl, 'setting'=>$adminUrl, 'point'=>$adminUrl)
|
||||
),
|
||||
'content'=>array(
|
||||
'url'=>getUrl('', 'module', 'admin', 'act', 'dispDocumentAdminList'),
|
||||
'lnbList'=>array(
|
||||
'document'=>getUrl('', 'module', 'admin', 'act', 'dispDocumentAdminList'),
|
||||
'comment'=>$adminUrl,
|
||||
'trackback'=>$adminUrl,
|
||||
'file'=>$adminUrl,
|
||||
'poll'=>$adminUrl,
|
||||
'dataMigration'=>$adminUrl
|
||||
)
|
||||
),
|
||||
'theme'=>array(
|
||||
'url'=>$adminUrl,
|
||||
'lnbList'=>array()
|
||||
),
|
||||
'extensions'=>array(
|
||||
'url'=>$adminUrl,
|
||||
'lnbList'=>array('easyInstaller'=>$adminUrl, 'installedLayout'=>$adminUrl, 'installedModule'=>$adminUrl, 'installedWidget'=>$adminUrl, 'installedAddon'=>$adminUrl, 'WYSIWYGEditor'=>$adminUrl, 'spamFilter'=>$adminUrl)
|
||||
),
|
||||
'configuration'=>array(
|
||||
'url'=>$adminUrl,
|
||||
'lnbList'=>array('general'=>$adminUrl, 'fileUpload'=>$adminUrl)
|
||||
)
|
||||
);
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$output = $oMemberModel->getAdminGroup(array('group_srl'));
|
||||
$adminGroupSrl = $output->group_srl;
|
||||
|
||||
// common argument setting
|
||||
$args->open_window = 'N';
|
||||
$args->expand = 'N';
|
||||
$args->normal_btn = '';
|
||||
$args->hover_btn = '';
|
||||
$args->active_btn = '';
|
||||
$args->group_srls = $adminGroupSrl;
|
||||
|
||||
// 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[\''.$key.'\']}';
|
||||
$args->url = $value['url'];
|
||||
$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);
|
||||
}
|
||||
|
||||
if(is_array($value) && count($value)>0)
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$columnList = array('menu_item_srl', 'name');
|
||||
$output = $oMenuAdminModel->getMenuItems($menuSrl, 0, $columnList);
|
||||
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)
|
||||
{
|
||||
$args2->menu_srl = $args->menu_srl;
|
||||
$args2->open_window = 'N';
|
||||
$args2->expand = 'N';
|
||||
$args2->normal_btn = '';
|
||||
$args2->hover_btn = '';
|
||||
$args2->active_btn = '';
|
||||
$args2->group_srls = $adminGroupSrl;
|
||||
foreach($value['lnbList'] AS $key2=>$value2)
|
||||
{
|
||||
//insert menu item
|
||||
$args2->menu_item_srl = getNextSequence();
|
||||
$args2->parent_srl = $args->menu_item_srl;
|
||||
$args2->name = '{$lang->menu_gnb_sub[\''.$key.'\'][\''.$key2.'\']}';
|
||||
$args2->url = $value2;
|
||||
$args2->listorder = -1*$args2->menu_item_srl;
|
||||
$output = executeQuery('menu.insertMenuItem', $args2);
|
||||
}
|
||||
//if($value->module == 'document')
|
||||
//{
|
||||
$moduleActionInfo = $oModuleModel->getModuleActionXml($value->module);
|
||||
if(is_object($moduleActionInfo->menu))
|
||||
{
|
||||
foreach($moduleActionInfo->menu AS $key2=>$value2)
|
||||
{
|
||||
$gnbKey = "'".$this->_getGnbKey($key2)."'";
|
||||
|
||||
//insert menu item
|
||||
$args->menu_item_srl = getNextSequence();
|
||||
$args->parent_srl = $gnbDBList[$gnbKey];
|
||||
//$args->name = '{$lang->menu_gnb_sub['.$gnbKey.'][\''.$key2.'\']}';
|
||||
$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($args->menu_srl);
|
||||
$oMenuAdminConroller->makeXmlFile($menuSrl);
|
||||
}
|
||||
|
||||
function _getGnbKey($menuName)
|
||||
{
|
||||
switch($menuName) {
|
||||
case 'site':
|
||||
return 'site';
|
||||
break;
|
||||
case 'userList':
|
||||
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';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<div class="gnb jx">
|
||||
<ul>
|
||||
<!--@foreach($gnbUrlList AS $key=>$value)-->
|
||||
<li <!--@if($category == $key)-->class="activeOn"<!--@end-->><a href="{html_entity_decode($value['href'])}">{$value['text']}</a>
|
||||
<li <!--@if($parentSrl == $key)-->class="activeOn"<!--@end-->><a href="{html_entity_decode($value['href'])}">{$value['text']}</a>
|
||||
<!--@if(count($gnbUrlList[$key]['list']) > 0)-->
|
||||
<ul>
|
||||
<!--@foreach($gnbUrlList[$key]['list'] AS $key2=>$value2)-->
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<div class="lnb">
|
||||
<h2 class="h2">{$lang->menu_gnb[$category]}</h2>
|
||||
<ul>
|
||||
<!--@if(count($gnbSubUrlList[$category]) > 0)-->
|
||||
<!--@foreach($gnbSubUrlList[$category] AS $key=>$value)-->
|
||||
<li><a href="#">{$lang->menu_gnb_sub[$category][$key]}</a></li>
|
||||
<!--@if(count($gnbUrlList[$parentSrl]['list']) > 0)-->
|
||||
<!--@foreach($gnbUrlList[$parentSrl]['list'] AS $key=>$value)-->
|
||||
<li><a href="{html_entity_decode($value['href'])}">{$value['text']}</a></li>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
</ul>
|
||||
|
|
|
|||
44
modules/admin/tpl/js/menu_setup.js
Normal file
44
modules/admin/tpl/js/menu_setup.js
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
jQuery(function($){
|
||||
var menuList;
|
||||
var parentSrl;
|
||||
var editForm = $('#editForm');
|
||||
var listForm = $('#listForm');
|
||||
|
||||
$('button._add').click(function(){
|
||||
parentSrl = $(this).parent().prevAll('._parent_key').val();
|
||||
editForm.find('input[name=parent_srl]').val(parentSrl);
|
||||
if(!menuList)
|
||||
{
|
||||
var params = new Array();
|
||||
var response_tags = new Array('menuList');
|
||||
exec_xml("menu","procMenuAdminAllActList", params, completeGetActList, response_tags);
|
||||
}
|
||||
});
|
||||
|
||||
function completeGetActList(obj)
|
||||
{
|
||||
menuList = obj.menuList;
|
||||
if(menuList)
|
||||
{
|
||||
var menuNameList = $('#menuNameList');
|
||||
for(var x in menuList)
|
||||
{
|
||||
var menu = menuList[x];
|
||||
menuNameList.append('<option value="'+x+'">'+menu.title+'</option>');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('button._parent_delete').click(function() {
|
||||
var menu_item_srl = $(this).parent().prevAll('._parent_key').val();
|
||||
listForm.find('input[name=menu_item_srl]').val(menu_item_srl);
|
||||
listForm.submit();
|
||||
});
|
||||
|
||||
$('button._child_delete').click(function() {
|
||||
var menu_item_srl = $(this).parents('li').prevAll('._child_key').val();
|
||||
listForm.find('input[name=menu_item_srl]').val(menu_item_srl);
|
||||
listForm.submit();
|
||||
});
|
||||
});
|
||||
|
||||
56
modules/admin/tpl/menu_setup.html
Normal file
56
modules/admin/tpl/menu_setup.html
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<load target="./js/menu_setup.js" />
|
||||
<div class="content" id="content">
|
||||
<form id="listForm" action="./">
|
||||
<input type="hidden" name="act" value="procMenuAdminDeleteItem" />
|
||||
<input type="hidden" name="menu_srl" value="{$menu_srl}" />
|
||||
<input type="hidden" name="menu_item_srl" value="" />
|
||||
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin', 'act', 'dispAdminMenuSetup')}" />
|
||||
<h1 class="h1">Admin Menu Setup</h1>
|
||||
<div class="portlet siteMap">
|
||||
<h2 class="h2"><input value="Admin Menu" disabled /></h2>
|
||||
<ul class="lined">
|
||||
<!--@foreach($gnbUrlList AS $key=>$value)-->
|
||||
<li>
|
||||
<input type="hidden" value="{$key}" class="_parent_key" />
|
||||
<input value="{$value['text']}" /> <span class="side"> <button type="button" class="modalAnchor _add">Add</button> | <button type="button" class="_parent_delete">Delete</button></span>
|
||||
<!--@if(is_array($value['list']) && count($value['list'])>0)-->
|
||||
<ul>
|
||||
<!--@foreach($value['list'] AS $key2=>$value2)-->
|
||||
<input type="hidden" value="{$key2}" class="_child_key" />
|
||||
<li><input value="{$value2['text']}" /> <span class="side"><button type="button" class="_child_delete">Delete</button></span></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
<!--@end-->
|
||||
</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn medium"><input type="submit" value="Save it" /></span>
|
||||
<span class="btn medium"><button type="button">Add New Site Map...</button></span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="modal" id="editMenu">
|
||||
<div class="fg">
|
||||
<form id="editForm" action="./" class="form">
|
||||
<input type="hidden" name="act" value="procMenuAdminInsertItemForAdminMenu" />
|
||||
<input type="hidden" name="menu_srl" value="{$menu_srl}" />
|
||||
<input type="hidden" name="parent_srl" value="" />
|
||||
<h2 class="h2">My Navigation Setting</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q"><label for="name">Name</label></p>
|
||||
<div class="a">
|
||||
<select name="menu_name" id="menuNameList">
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="Save" /></span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue