mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +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
|
|
@ -275,7 +275,7 @@
|
|||
|
||||
$logged_info = $oMemberModel->getLoggedInfo();
|
||||
if($logged_info->is_admin=='Y') {
|
||||
$orig_module->makeGnbUrl();
|
||||
$orig_module->makeGnbUrl($forward->module);
|
||||
$oModule->setLayoutPath("./modules/admin/tpl");
|
||||
$oModule->setLayoutFile("layout.html");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -6,11 +6,21 @@
|
|||
**/
|
||||
|
||||
class documentAdminView extends document {
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
**/
|
||||
function init() {
|
||||
// check current location in admin menu
|
||||
$oModuleModel = &getModel('module');
|
||||
$info = $oModuleModel->getModuleActionXml('document');
|
||||
foreach($info->menu AS $key => $menu)
|
||||
{
|
||||
if(in_array($this->act, $menu->acts))
|
||||
{
|
||||
Context::set('currentMenu', $key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -197,6 +197,12 @@
|
|||
$this->add('menu_title', $menu_title);
|
||||
$this->add('menu_item_srl', $parent_srl);
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -318,6 +324,77 @@
|
|||
$this->add('target', $target);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get all act list for admin menu
|
||||
**/
|
||||
function procMenuAdminAllActList() {
|
||||
$oModuleModel = &getModel('module');
|
||||
$installed_module_list = $oModuleModel->getModulesXmlInfo();
|
||||
if(is_array($installed_module_list))
|
||||
{
|
||||
$currentLang = Context::getLangType();
|
||||
foreach($installed_module_list AS $key=>$value)
|
||||
{
|
||||
$cache_file = sprintf("./files/cache/module_info/%s.%s.php", $value->module, $currentLang);
|
||||
if(is_readable($cache_file))
|
||||
include $cache_file;
|
||||
}
|
||||
}
|
||||
$this->add('menuList', $info->menu);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get all act list for admin menu
|
||||
**/
|
||||
function procMenuAdminInsertItemForAdminMenu()
|
||||
{
|
||||
$requestArgs = Context::getRequestVars();
|
||||
|
||||
// variable setting
|
||||
$logged_info = Context::get('logged_info');
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
$parentMenuInfo = $oMenuAdminModel->getMenuItemInfo($requestArgs->parent_srl);
|
||||
$groupSrlList = $oMemberModel->getMemberGroups($logged_info->member_srl);
|
||||
|
||||
preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $parentMenuInfo->name, $m);
|
||||
$cache_file = sprintf("./files/cache/module_info/%s.%s.php", $requestArgs->menu_name, Context::getLangType());
|
||||
include $cache_file;
|
||||
|
||||
$args->menu_item_srl = (!$requestArgs->menu_item_srl) ? getNextSequence() : $requestArgs->menu_item_srl;
|
||||
$args->parent_srl = $requestArgs->parent_srl;
|
||||
$args->menu_srl = $requestArgs->menu_srl;
|
||||
$args->name = sprintf('{$lang->menu_gnb_sub[%s][\'%s\']}', $m[1], $requestArgs->menu_name);
|
||||
$args->url = getNotEncodedUrl('', 'module', 'admin', 'act', $info->menu->{$requestArgs->menu_name}->index);
|
||||
$args->open_window = 'N';
|
||||
$args->expand = 'N';
|
||||
$args->normal_btn = '';
|
||||
$args->hover_btn = '';
|
||||
$args->active_btn = '';
|
||||
$args->group_srls = implode(',', array_keys($groupSrlList));
|
||||
$args->listorder = -1*$args->menu_item_srl;
|
||||
|
||||
// Check if already exists
|
||||
$oMenuModel = &getAdminModel('menu');
|
||||
$item_info = $oMenuModel->getMenuItemInfo($args->menu_item_srl);
|
||||
// Update if exists
|
||||
if($item_info->menu_item_srl == $args->menu_item_srl) {
|
||||
$output = executeQuery('menu.updateMenuItem', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
// Insert if not exist
|
||||
} else {
|
||||
$args->listorder = -1*$args->menu_item_srl;
|
||||
$output = executeQuery('menu.insertMenuItem', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
// Get information of the menu
|
||||
$menu_info = $oMenuModel->getMenu($args->menu_srl);
|
||||
$menu_title = $menu_info->title;
|
||||
// Update the xml file and get its location
|
||||
$xml_file = $this->makeXmlFile($args->menu_srl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Generate XML file for menu and return its location
|
||||
**/
|
||||
|
|
@ -521,6 +598,7 @@
|
|||
else $child_output = array("buff"=>"", "url_list"=>array());
|
||||
// List variables
|
||||
$names = $oMenuAdminModel->getMenuItemNames($node->name, $site_srl);
|
||||
unset($name_arr_str);
|
||||
foreach($names as $key => $val) {
|
||||
$name_arr_str .= sprintf('"%s"=>"%s",',$key, str_replace(array('\\','"'),array('\\\\','"'),$val));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,6 +107,15 @@
|
|||
return $node;
|
||||
}
|
||||
|
||||
function getMenuItems($menu_srl, $parent_srl = null, $columnList = array())
|
||||
{
|
||||
$args->menu_srl = $menu_srl;
|
||||
$args->parent_srl = $parent_srl;
|
||||
|
||||
$output = executeQueryArray('menu.getMenuItems', $args, $columnList);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Return menu name in each language to support multi-language
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="menu_srl" var="menu_srl" filter="number" notnull="notnull" />
|
||||
<condition operation="equal" column="parent_srl" var="parent_srl" filter="number" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="listorder" order="desc" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue