mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@316 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
6c4afb721d
commit
73539eeb2b
5 changed files with 76 additions and 56 deletions
|
|
@ -10,9 +10,9 @@
|
||||||
|
|
||||||
// 아이콘을 미리 생성해 놓음
|
// 아이콘을 미리 생성해 놓음
|
||||||
var tree_folder_icon = new Image();
|
var tree_folder_icon = new Image();
|
||||||
tree_folder_icon.src = "./common/tpl/images/folder.gif";
|
tree_folder_icon.src = "./common/tpl/images/page.gif";
|
||||||
var tree_open_folder_icon = new Image();
|
var tree_open_folder_icon = new Image();
|
||||||
tree_open_folder_icon.src = "./common/tpl/images/imgfolder.gif";
|
tree_open_folder_icon.src = "./common/tpl/images/page.gif";
|
||||||
|
|
||||||
var tree_minus_icon = new Image();
|
var tree_minus_icon = new Image();
|
||||||
tree_minus_icon.src = "./common/tpl/images/minus.gif";
|
tree_minus_icon.src = "./common/tpl/images/minus.gif";
|
||||||
|
|
@ -119,10 +119,10 @@ function drawNode(parent_node, menu_id) {
|
||||||
if(hasChild) {
|
if(hasChild) {
|
||||||
if(!hasNextSibling) {
|
if(!hasNextSibling) {
|
||||||
line_icon = "minus";
|
line_icon = "minus";
|
||||||
folder_icon = "folder";
|
folder_icon = "page";
|
||||||
} else {
|
} else {
|
||||||
line_icon = "minusbottom";
|
line_icon = "minusbottom";
|
||||||
folder_icon = "folder";
|
folder_icon = "page";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(hasNextSibling) {
|
if(hasNextSibling) {
|
||||||
|
|
|
||||||
|
|
@ -31,4 +31,6 @@
|
||||||
$lang->about_menu_open_window = '메뉴 선택시 새창으로 띄울 것인지를 정할 수 있습니다';
|
$lang->about_menu_open_window = '메뉴 선택시 새창으로 띄울 것인지를 정할 수 있습니다';
|
||||||
$lang->about_menu_img_btn = '이미지 버튼을 등록하시면 레이아웃에서 자동으로 이미지 버튼으로 교체되어 표시가 됩니다.';
|
$lang->about_menu_img_btn = '이미지 버튼을 등록하시면 레이아웃에서 자동으로 이미지 버튼으로 교체되어 표시가 됩니다.';
|
||||||
$lang->about_menu_group_srls = '그룹을 선택하시면 해당 그룹의 사용자만 메뉴가 보이게 됩니다. (xml파일을 직접 열람하면 노출이 됩니다)';
|
$lang->about_menu_group_srls = '그룹을 선택하시면 해당 그룹의 사용자만 메뉴가 보이게 됩니다. (xml파일을 직접 열람하면 노출이 됩니다)';
|
||||||
|
|
||||||
|
$lang->msg_cannot_delete_for_child = '하부 메뉴가 있는 메뉴는 삭제하실 수 없습니다';
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -105,8 +105,15 @@
|
||||||
$node_info = $oLayoutModel->getLayoutMenuInfo($args->menu_srl);
|
$node_info = $oLayoutModel->getLayoutMenuInfo($args->menu_srl);
|
||||||
if($node_info->parent_srl) $parent_srl = $node_info->parent_srl;
|
if($node_info->parent_srl) $parent_srl = $node_info->parent_srl;
|
||||||
|
|
||||||
// DB에서 삭제
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = &DB::getInstance();
|
||||||
|
|
||||||
|
// 자식 노드가 있는지 체크
|
||||||
|
$output = $oDB->executeQuery('layout.getChildMenuCount', $args);
|
||||||
|
if(!$output->toBool()) return $output;
|
||||||
|
|
||||||
|
if($output->data->count>0) return new Object(-1, msg_cannot_delete_for_child);
|
||||||
|
|
||||||
|
// DB에서 삭제
|
||||||
$output = $oDB->executeQuery("layout.deleteLayoutMenu", $args);
|
$output = $oDB->executeQuery("layout.deleteLayoutMenu", $args);
|
||||||
if(!$output->toBool()) return $output;
|
if(!$output->toBool()) return $output;
|
||||||
|
|
||||||
|
|
|
||||||
11
modules/layout/queries/getChildMenuCount.xml
Normal file
11
modules/layout/queries/getChildMenuCount.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<query id="getChildMenuCount" action="select">
|
||||||
|
<tables>
|
||||||
|
<table name="layout_menu" />
|
||||||
|
</tables>
|
||||||
|
<columns>
|
||||||
|
<column name="count(*)" alias="count" />
|
||||||
|
</columns>
|
||||||
|
<conditions>
|
||||||
|
<condition operation="equal" column="parent_srl" var="menu_srl" filter="number" notnull="notnull" />
|
||||||
|
</conditions>
|
||||||
|
</query>
|
||||||
|
|
@ -1,84 +1,84 @@
|
||||||
/* 레이아웃 신규 생성시 완료 후 요청하는 함수 */
|
/* 레이아웃 신규 생성시 완료 후 요청하는 함수 */
|
||||||
function completeInsertLayout(ret_obj) {
|
function completeInsertLayout(ret_obj) {
|
||||||
var layout_srl = ret_obj['layout_srl'];
|
var layout_srl = ret_obj['layout_srl'];
|
||||||
location.href="./?module=admin&mo=layout&act=dispLayoutInfo&layout_srl="+layout_srl;
|
location.href="./?module=admin&mo=layout&act=dispLayoutInfo&layout_srl="+layout_srl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 레이아웃메뉴 입력후 */
|
/* 레이아웃메뉴 입력후 */
|
||||||
function completeInsertLayoutMenu(ret_obj) {
|
function completeInsertLayoutMenu(ret_obj) {
|
||||||
var menu_id = ret_obj['menu_id'];
|
var menu_id = ret_obj['menu_id'];
|
||||||
var xml_file = ret_obj['xml_file'];
|
var xml_file = ret_obj['xml_file'];
|
||||||
var menu_title = ret_obj['menu_title'];
|
var menu_title = ret_obj['menu_title'];
|
||||||
var menu_srl = ret_obj['menu_srl'];
|
var menu_srl = ret_obj['menu_srl'];
|
||||||
|
|
||||||
if(!xml_file) return;
|
if(!xml_file) return;
|
||||||
loadTreeMenu(xml_file, menu_id, "menu_zone_"+menu_id, menu_title, doGetMenuInfo, menu_srl);
|
loadTreeMenu(xml_file, menu_id, "menu_zone_"+menu_id, menu_title, doGetMenuInfo, menu_srl);
|
||||||
|
|
||||||
if(!menu_srl) {
|
if(!menu_srl) {
|
||||||
xInnerHtml("menu_zone_info_"+menu_id, "");
|
xInnerHtml("menu_zone_info_"+menu_id, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 레이아웃 멘뉴 삭제 */
|
/* 레이아웃 메뉴 삭제 */
|
||||||
function doDeleteLayoutMenu(menu_srl, menu_id) {
|
function doDeleteLayoutMenu(menu_srl, menu_id) {
|
||||||
var fo_obj = xGetElementById("fo_"+menu_id);
|
var fo_obj = xGetElementById("fo_"+menu_id);
|
||||||
if(!fo_obj) return;
|
if(!fo_obj) return;
|
||||||
|
|
||||||
procFilter(fo_obj, delete_layout_menu);
|
procFilter(fo_obj, delete_layout_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 레이아웃 메뉴에를 클릭시 적용할 함수 */
|
/* 레이아웃 메뉴에를 클릭시 적용할 함수 */
|
||||||
function doGetMenuInfo(menu_id, obj) {
|
function doGetMenuInfo(menu_id, obj) {
|
||||||
// layout, menu_id, node_srl을 추출
|
// layout, menu_id, node_srl을 추출
|
||||||
var fo_obj = xGetElementById("fo_layout");
|
var fo_obj = xGetElementById("fo_layout");
|
||||||
var layout = fo_obj.layout.value;
|
var layout = fo_obj.layout.value;
|
||||||
var node_srl = 0;
|
var node_srl = 0;
|
||||||
var parent_srl = 0;
|
var parent_srl = 0;
|
||||||
if(typeof(obj.getAttribute)!="undefined") {
|
if(typeof(obj.getAttribute)!="undefined") {
|
||||||
node_srl = obj.getAttribute("node_srl");
|
node_srl = obj.getAttribute("node_srl");
|
||||||
} else {
|
} else {
|
||||||
node_srl = obj.node_srl;
|
node_srl = obj.node_srl;
|
||||||
parent_srl = obj.parent_srl;
|
parent_srl = obj.parent_srl;
|
||||||
}
|
}
|
||||||
|
|
||||||
var params = new Array();
|
var params = new Array();
|
||||||
params["menu_id"] = menu_id;
|
params["menu_id"] = menu_id;
|
||||||
params["layout"] = layout;
|
params["layout"] = layout;
|
||||||
params["menu_srl"] = node_srl;
|
params["menu_srl"] = node_srl;
|
||||||
params["parent_srl"] = parent_srl;
|
params["parent_srl"] = parent_srl;
|
||||||
|
|
||||||
// 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다.
|
// 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다.
|
||||||
var response_tags = new Array('error','message','menu_id', 'tpl');
|
var response_tags = new Array('error','message','menu_id', 'tpl');
|
||||||
exec_xml('layout', 'getMenuTplInfo', params, completeGetMenuInfo, response_tags, params);
|
exec_xml('layout', 'getMenuTplInfo', params, completeGetMenuInfo, response_tags, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 메뉴 목록 갱신 */
|
/* 메뉴 목록 갱신 */
|
||||||
function doReloadTreeMenu(menu_id) {
|
function doReloadTreeMenu(menu_id) {
|
||||||
var fo_obj = xGetElementById("fo_"+menu_id);
|
var fo_obj = xGetElementById("fo_"+menu_id);
|
||||||
if(!fo_obj) return;
|
if(!fo_obj) return;
|
||||||
|
|
||||||
var params = new Array();
|
var params = new Array();
|
||||||
params["menu_id"] = menu_id;
|
params["menu_id"] = menu_id;
|
||||||
params["layout"] = fo_obj.layout.value;
|
params["layout"] = fo_obj.layout.value;
|
||||||
params["layout_srl"] = fo_obj.layout_srl.value;
|
params["layout_srl"] = fo_obj.layout_srl.value;
|
||||||
|
|
||||||
// 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다.
|
// 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다.
|
||||||
var response_tags = new Array('error','message','menu_id', 'xml_file', 'menu_title');
|
var response_tags = new Array('error','message','menu_id', 'xml_file', 'menu_title');
|
||||||
exec_xml('layout', 'procMakeXmlFile', params, completeInsertLayoutMenu, response_tags, params);
|
exec_xml('layout', 'procMakeXmlFile', params, completeInsertLayoutMenu, response_tags, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 빈 메뉴 추가시 사용 */
|
/* 빈 메뉴 추가시 사용 */
|
||||||
function doInsertLayoutMenu(menu_id, parent_srl) {
|
function doInsertLayoutMenu(menu_id, parent_srl) {
|
||||||
if(typeof(parent_srl)=='undefined') parent_srl = 0;
|
if(typeof(parent_srl)=='undefined') parent_srl = 0;
|
||||||
var params = {node_srl:0, parent_srl:parent_srl}
|
var params = {node_srl:0, parent_srl:parent_srl}
|
||||||
doGetMenuInfo(menu_id, params);
|
doGetMenuInfo(menu_id, params);
|
||||||
deSelectNode();
|
deSelectNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 서버로부터 받아온 메뉴 정보를 출력 */
|
/* 서버로부터 받아온 메뉴 정보를 출력 */
|
||||||
function completeGetMenuInfo(ret_obj, response_tags) {
|
function completeGetMenuInfo(ret_obj, response_tags) {
|
||||||
var menu_id = ret_obj['menu_id'];
|
var menu_id = ret_obj['menu_id'];
|
||||||
var tpl = ret_obj['tpl'];
|
var tpl = ret_obj['tpl'];
|
||||||
xInnerHtml("menu_zone_info_"+menu_id, "");
|
xInnerHtml("menu_zone_info_"+menu_id, "");
|
||||||
xInnerHtml("menu_zone_info_"+menu_id, tpl);
|
xInnerHtml("menu_zone_info_"+menu_id, tpl);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue