mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-31 00:59:58 +09:00
add site admin menu
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8796 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
01b40169c7
commit
51a1d0a37e
6 changed files with 312 additions and 17 deletions
|
|
@ -1,23 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<module>
|
<module>
|
||||||
<grants />
|
<grants />
|
||||||
<permissions>
|
<permissions />
|
||||||
</permissions>
|
|
||||||
<actions>
|
<actions>
|
||||||
</actions>
|
</actions>
|
||||||
<menus>
|
|
||||||
<menu name="site">
|
|
||||||
<title xml:lang="en">Site</title>
|
|
||||||
<title xml:lang="ko">사이트</title>
|
|
||||||
<title xml:lang="zh-CN">Site</title>
|
|
||||||
<title xml:lang="jp">Site</title>
|
|
||||||
<title xml:lang="es">Site</title>
|
|
||||||
<title xml:lang="ru">Site</title>
|
|
||||||
<title xml:lang="fr">Site</title>
|
|
||||||
<title xml:lang="zh-TW">Site</title>
|
|
||||||
<title xml:lang="vi">Site</title>
|
|
||||||
<title xml:lang="mn">Site</title>
|
|
||||||
<title xml:lang="tr">Site</title>
|
|
||||||
</menu>
|
|
||||||
</menus>
|
|
||||||
</module>
|
</module>
|
||||||
|
|
|
||||||
3
modules/site/lang/ko.lang.php
Normal file
3
modules/site/lang/ko.lang.php
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?php
|
||||||
|
$lang->user_list = '회원 목록';
|
||||||
|
?>
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @class siteAdminController
|
||||||
|
* @author NHN (developers@xpressengine.com)
|
||||||
|
* @brief admin controller class of site module
|
||||||
|
**/
|
||||||
|
|
||||||
|
class siteAdminController extends site {
|
||||||
|
/**
|
||||||
|
* @brief initialization
|
||||||
|
* @return none
|
||||||
|
**/
|
||||||
|
function init() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @class siteAdminView
|
||||||
|
* @author NHN (developers@xpressengine.com)
|
||||||
|
* @brief site view class of admin module
|
||||||
|
**/
|
||||||
|
|
||||||
|
class siteAdminView extends site {
|
||||||
|
var $site_module_info = null;
|
||||||
|
var $site_srl = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initilization
|
||||||
|
* @return none
|
||||||
|
**/
|
||||||
|
function init() {
|
||||||
|
|
||||||
|
$oMemberModel = &getModel('member');
|
||||||
|
$logged_info = $oMemberModel->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');
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @class site
|
||||||
|
* @author NHN (developers@xpressengine.com)
|
||||||
|
* @brief base class of site module
|
||||||
|
**/
|
||||||
|
|
||||||
|
class site extends ModuleObject {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief install admin module
|
||||||
|
* @return new Object
|
||||||
|
**/
|
||||||
|
function moduleInstall() {
|
||||||
|
return new Object();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief if update is necessary it returns true
|
||||||
|
**/
|
||||||
|
function checkUpdate() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief update module
|
||||||
|
* @return new Object
|
||||||
|
**/
|
||||||
|
function moduleUpdate() {
|
||||||
|
return new Object();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief regenerate cache file
|
||||||
|
* @return none
|
||||||
|
**/
|
||||||
|
function recompileCache() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
@ -0,0 +1,217 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @class siteModel
|
||||||
|
* @author NHN (developers@xpressengine.com)
|
||||||
|
* @brief model class of the comment module
|
||||||
|
**/
|
||||||
|
|
||||||
|
class siteModel extends site {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialization
|
||||||
|
**/
|
||||||
|
function init() {
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSiteAdminMenu($member_info = null){
|
||||||
|
if (!$member_info) $member_info = Context::get('logged_info');
|
||||||
|
if (!$member_info) return null;
|
||||||
|
|
||||||
|
return $this->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';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue