diff --git a/common/tpl/common_layout.html b/common/tpl/common_layout.html
index 649aa82a8..5aa69a9cc 100644
--- a/common/tpl/common_layout.html
+++ b/common/tpl/common_layout.html
@@ -13,7 +13,6 @@
-
diff --git a/modules/blog/blog.view.php b/modules/blog/blog.view.php
index 55739dd64..6a67ebfa2 100644
--- a/modules/blog/blog.view.php
+++ b/modules/blog/blog.view.php
@@ -527,6 +527,7 @@
$category_info = $oBlogModel->getCategory($module_srl);
Context::set('category_info', $category_info);
+ Context::addJsFile('./common/js/tree_menu.js');
$this->setTemplateFile('category_list');
}
diff --git a/modules/blog/skins/default/images/tree_menu/folder.gif b/modules/blog/skins/default/images/tree_menu/folder.gif
new file mode 100644
index 000000000..eb129763d
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/folder.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/join.gif b/modules/blog/skins/default/images/tree_menu/join.gif
new file mode 100644
index 000000000..34dd47610
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/join.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/joinbottom.gif b/modules/blog/skins/default/images/tree_menu/joinbottom.gif
new file mode 100644
index 000000000..48b81c80a
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/joinbottom.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/line.gif b/modules/blog/skins/default/images/tree_menu/line.gif
new file mode 100644
index 000000000..1a259eea0
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/line.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/minus.gif b/modules/blog/skins/default/images/tree_menu/minus.gif
new file mode 100644
index 000000000..3d212a97a
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/minus.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/minusbottom.gif b/modules/blog/skins/default/images/tree_menu/minusbottom.gif
new file mode 100644
index 000000000..dc3198be2
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/minusbottom.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/page.gif b/modules/blog/skins/default/images/tree_menu/page.gif
new file mode 100644
index 000000000..42d7318c5
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/page.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/page_folder.gif b/modules/blog/skins/default/images/tree_menu/page_folder.gif
new file mode 100644
index 000000000..e6d880347
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/page_folder.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/plus.gif b/modules/blog/skins/default/images/tree_menu/plus.gif
new file mode 100644
index 000000000..b2c997233
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/plus.gif differ
diff --git a/modules/blog/skins/default/images/tree_menu/plusbottom.gif b/modules/blog/skins/default/images/tree_menu/plusbottom.gif
new file mode 100644
index 000000000..b5671d891
Binary files /dev/null and b/modules/blog/skins/default/images/tree_menu/plusbottom.gif differ
diff --git a/modules/blog/skins/default/js/blog_tree_menu.js b/modules/blog/skins/default/js/blog_tree_menu.js
index 248c16b82..226419afa 100644
--- a/modules/blog/skins/default/js/blog_tree_menu.js
+++ b/modules/blog/skins/default/js/blog_tree_menu.js
@@ -19,9 +19,6 @@ function blogLoadTreeMenu(xml_url, title, index_url) {
var zone = xGetElementById("blog_category");
if(typeof(zone)=="undefined") return;
- // 노드 정보들을 담을 변수 세팅
- blog_node_info_list = new Array();
-
// 제목이 없으면 제목을 category로 지정
if(typeof(title)=="undefined" || !title) title = "category";
@@ -32,9 +29,8 @@ function blogLoadTreeMenu(xml_url, title, index_url) {
if(!xml_url) return;
var oXml = new xml_handler();
oXml.reset();
- oXml.xml_path = url;
+ oXml.xml_path = xml_url;
- // menu_id, zone_id는 계속 달고 다녀야함
var param = {"title":title, "index_url":index_url}
// 요청후 drawTreeMenu()함수를 호출 (xml_handler.js에서 request method를 직접 이용)
@@ -42,6 +38,7 @@ function blogLoadTreeMenu(xml_url, title, index_url) {
}
// 트리메뉴 XML정보를 이용해서 정해진 zone에 출력
+var blog_menu_selected = false;
function blogDrawTreeMenu(oXml, callback_func, resopnse_tags, null_func, param) {
var title = param.title;
var index_url = param.index_url;
@@ -49,50 +46,50 @@ function blogDrawTreeMenu(oXml, callback_func, resopnse_tags, null_func, param)
var zone = xGetElementById("blog_category");
var html = "";
- // 제목 지정
- html = '
'+title+'
';
-
+ // 받아온 xml내용을 이용하여 트리 메뉴 그림
var xmlDoc = oXml.getResponseXml();
if(!xmlDoc) {
xInnerHtml(zone, html);
return null;
}
- blog_tree_menu_folder_list[menu_id] = new Array();
-
// node 태그에 해당하는 값들을 가져와서 html을 작성
var node_list = xmlDoc.getElementsByTagName("node");
if(node_list.length>0) {
var root = xmlDoc.getElementsByTagName("root")[0];
- var output = drawNode(root, menu_id);
+ var output = blogDrawNode(root);
html += output.html;
}
+ // 제목 지정
+ var title_class = "selected";
+ if(blog_menu_selected) title_class = "unselected";
+ html = ''+title+'
'+html;
+
// 출력하려는 zone이 없다면 load후에 출력하도록 함
if(!zone) {
- xAddEventListener(window, 'load', function() { drawTeeMenu(zone_id, menu_id, html); });
+ xAddEventListener(window, 'load', function() { blogDrawTeeMenu(html); });
// 출력하려는 zone을 찾아졌다면 바로 출력
} else {
xInnerHtml(zone, html);
- if(manual_select_node_srl) manualSelectNode(menu_id, manual_select_node_srl);
}
return null;
}
// 페이지 랜더링 중에 메뉴의 html이 완성되었을때 window.onload event 후에 그리기 재시도를 하게 될 함수
-function drawTeeMenu(zone_id, menu_id, html) {
- xInnerHtml(zone_id, html);
- if(manual_select_node_srl) manualSelectNode(menu_id, manual_select_node_srl);
+function blogDrawTeeMenu(html) {
+ xInnerHtml("blog_category", html);
}
// root부터 시작해서 recursive하게 노드를 표혐
-function drawNode(parent_node, menu_id) {
+function blogDrawNode(parent_node) {
var output = {html:"", expand:"N"}
for (var i=0; i< parent_node.childNodes.length; i++) {
var html = "";
+ var selected = false;
// nodeName이 node가 아니면 패스~
var node = parent_node.childNodes.item(i);
@@ -115,99 +112,100 @@ function drawNode(parent_node, menu_id) {
if(i==parent_node.childNodes.length-1) hasNextSibling = true;
// 후에 사용하기 위해 blog_node_info_list에 node_srl을 값으로 하여 node object 추가
- blog_node_info_list[menu_id][node_srl] = node;
+ blog_node_info_list[node_srl] = node;
// zone_id 값을 세팅
- var zone_id = "menu_"+menu_id+"_"+node_srl;
- blog_tree_menu_folder_list[menu_id][blog_tree_menu_folder_list[menu_id].length] = zone_id;
+ var zone_id = "blog_category_"+node_srl;
+ blog_tree_menu_folder_list[blog_tree_menu_folder_list.length] = zone_id;
- // url을 확인하여 현재의 url과 동일하다고 판단되면 manual_select_node_srl 에 값을 추가 (관리자페이지일 경우는 무시함)
- if(node_callback_func[menu_id] == moveTreeMenu && url && typeof(zbxe_url)!="undefined" && zbxe_url == url) manual_select_node_srl = node_srl;
+ if(url && typeof(zbxe_url)!="undefined" && zbxe_url == url) {
+ selected = true;
+ blog_menu_selected = true;
+ }
- // manual_select_node_srl이 node_srl과 같으면 펼침으로 처리
- if(manual_select_node_srl == node_srl) expand = "Y";
+ // blog_selected_node이 node_srl과 같으면 펼침으로 처리
+ if(selected) expand = "Y";
// 아이콘 설정
- var line_icon = null;
- var folder_icon = null;
+ var line_class = null;
+ var folder_class = null;
// 자식 노드가 있을 경우 자식 노드의 html을 구해옴
var child_output = null;
var child_html = "";
+
if(hasChild) {
// 자식 노드의 zone id를 세팅
var child_zone_id = zone_id+"_child";
- blog_tree_menu_folder_list[menu_id][blog_tree_menu_folder_list[menu_id].length] = child_zone_id;
+ blog_tree_menu_folder_list[blog_tree_menu_folder_list.length] = child_zone_id;
// html을 받아옴
- child_output = drawNode(node, menu_id);
+ child_output = blogDrawNode(node);
var chtml = child_output.html;
var cexpand = child_output.expand;
if(cexpand == "Y") expand = "Y";
// 무조건 펼침이 아닐 경우
if(expand!="Y") {
- if(!hasNextSibling) child_html += ''+chtml+'
';
- else child_html += ''+chtml+'
';
+ if(!hasNextSibling) child_html += ''+chtml+'
';
+ else child_html += ''+chtml+'
';
+
// 무조건 펼침일 경우
} else {
- if(!hasNextSibling) child_html += ''+chtml+'
';
- else child_html += ''+chtml+'
';
+ if(!hasNextSibling) child_html += ''+chtml+'
';
+ else child_html += ''+chtml+'
';
}
}
// 자식 노드가 있는지 확인하여 있으면 아이콘을 바꿈
if(hasChild) {
+
// 무조건 펼침이 아닐 경우
if(expand != "Y") {
if(!hasNextSibling) {
- line_icon = "minus";
- folder_icon = "page";
+ line_class = "minus";
+ folder_class = "folder_close";
} else {
- line_icon = "minusbottom";
- folder_icon = "page";
+ line_class = "minus_bottom";
+ folder_class = "folder_close";
}
// 무조건 펼침일 경우
} else {
if(!hasNextSibling) {
- line_icon = "plus";
- folder_icon = "page";
+ line_class = "plus";
+ folder_class = "folder_open";
} else {
- line_icon = "plusbottom";
- folder_icon = "page";
+ line_class = "plus_bottom";
+ folder_class = "folder_open";
}
}
// 자식 노드가 없을 경우
} else {
if(hasNextSibling) {
- line_icon = "joinbottom";
- folder_icon = "page";
+ line_class = "join_bottom";
+ folder_class = "page";
} else {
- line_icon = "join";
- folder_icon = "page";
+ line_class = "join";
+ folder_class = "page";
}
}
// html 작성
- html += '';
+ var click_str = ' class="'+folder_class+'"' ;
+ if(hasChild) click_str += ' onclick="blogToggleFolder(\''+zone_id+'\');return false;" ';
- if(hasChild) html+= '
';
- else html+= '';
+ var text_class = "unselected";
+ if(selected) text_class = "selected";
- html += '
';
+ html += ''+
+ '
'+
+ ''+
+ ''+text+''+
+ '
';
- var chk_enable = xGetElementById(menu_id+"_enable_move");
- if(chk_enable) {
- html += '
';
- } else {
- html += '';
- }
-
- html += text+'';
-
- html += child_html;
+ if(hasChild && child_html) html += child_html;
html += ' ';
@@ -218,123 +216,39 @@ function drawNode(parent_node, menu_id) {
return output;
}
-// 관리자 모드일 경우 *_enable_move 의 값에 따라 메뉴 이동을 시키거나 정보를 보여주도록 변경
-function doNodeFunc(obj, menu_id, node_srl, zone_id) {
- var chk_enable = xGetElementById(menu_id+"_enable_move");
- if(!chk_enable || chk_enable.checked!=true || !obj) {
- selectNode(menu_id,node_srl,zone_id);
- return;
- }
-
- deSelectNode();
- tree_drag_enable(obj,tree_drag_start,tree_drag,tree_drag_end);
-}
-
-// 수동으로 메뉴를 선택하도록 함
-function manualSelectNode(menu_id, node_srl) {
- var zone_id = "menu_"+menu_id+"_"+node_srl;
- selectNode(menu_id,node_srl,zone_id,false);
- return;
-}
-
// 노드의 폴더 아이콘 클릭시
-function toggleFolder(zone_id) {
+function blogToggleFolder(zone_id) {
// 아이콘을 클릭한 대상을 찾아봄
var child_zone = xGetElementById(zone_id+"_child");
if(!child_zone) return;
- // 대상의 아이콘들 찾음
- var line_icon = xGetElementById(zone_id+'_line_icon');
- var folder_icon = xGetElementById(zone_id+'_folder_icon');
+ var line_obj = xGetElementById(zone_id+'_line');
+ var folder_obj = xGetElementById(zone_id+'_folder');
// 대상의 자식 노드들이 숨겨져 있다면 열고 아니면 닫기
- if(child_zone.style.display == "block") {
+ if(folder_obj.className == "folder_open") {
child_zone.style.display = "none";
- if(line_icon.src.indexOf('bottom')>0) line_icon.src = tree_minus_bottom_icon.src;
- else line_icon.src = tree_minus_icon.src;
- folder_icon.src = tree_folder_icon.src;
+ if(line_obj.className.indexOf('bottom')>0) line_obj.className = 'minus_bottom';
+ else line_obj.className = 'minus';
+
+ folder_obj.className = 'folder_close'
} else {
- if(line_icon.src.indexOf('bottom')>0) line_icon.src = tree_plus_bottom_icon.src;
- else line_icon.src = tree_plus_icon.src;
- folder_icon.src = tree_open_folder_icon.src;
child_zone.style.display = "block";
+
+ if(line_obj.className.indexOf('bottom')>0) line_obj.className = 'plus_bottom';
+ else line_obj.className = 'plus';
+
+ folder_obj.className = 'folder_open';
}
}
-// 노드의 글자 선택시
-var prev_selected_node = null;
-function selectNode(menu_id, node_srl, zone_id, move_url) {
- // 선택된 노드를 찾아봄
- var node_zone = xGetElementById(zone_id+'_node');
- if(!node_zone) return;
-
- // 이전에 선택된 노드가 있었다면 원래데로 돌림
- if(prev_selected_node) {
- var prev_zone = xGetElementById(prev_selected_node.id);
- if(prev_zone) {
- prev_zone.style.backgroundColor = "#ffffff";
- prev_zone.style.fontWeight = "normal";
- prev_zone.style.color = "#000000";
- }
- }
-
- // 선택된 노드의 글자를 변경
- prev_selected_node = node_zone;
- node_zone.style.backgroundColor = "#0e078f";
- node_zone.style.fontWeight = "bold";
- node_zone.style.color = "#FFFFFF";
-
- // 함수 실행
- if(typeof(move_url)=="undefined"||move_url==true) {
- var func = node_callback_func[menu_id];
- func(menu_id, blog_node_info_list[menu_id][node_srl]);
- //toggleFolder(zone_id);
- }
-}
-
-// 선택된 노드의 표시를 없앰
-function deSelectNode() {
- // 이전에 선택된 노드가 있었다면 원래데로 돌림
- if(!prev_selected_node) return;
- prev_selected_node.style.backgroundColor = "#ffffff";
- prev_selected_node.style.fontWeight = "normal";
- prev_selected_node.style.color = "#000000";
-}
-
-
-// 모두 닫기
-function closeAllTreeMenu(menu_id) {
- for(var i in blog_tree_menu_folder_list[menu_id]) {
- var zone_id = blog_tree_menu_folder_list[menu_id][i];
- var zone = xGetElementById(zone_id);
- if(!zone) continue;
- var child_zone = xGetElementById(zone_id+"_child");
- if(!child_zone) continue;
-
- child_zone.style.display = "block";
- toggleFolder(zone_id);
- }
-}
-
-// 모두 열기
-function openAllTreeMenu(menu_id) {
- for(var i in blog_tree_menu_folder_list[menu_id]) {
- var zone_id = blog_tree_menu_folder_list[menu_id][i];
- var zone = xGetElementById(zone_id);
- if(!zone) continue;
- var child_zone = xGetElementById(zone_id+"_child");
- if(!child_zone) continue;
-
- child_zone.style.display = "none";
- toggleFolder(zone_id);
- }
-}
-
-// 메뉴 클릭시 기본으로 동작할 함수 (사용자 임의 함수로 대체될 수 있음)
-function moveTreeMenu(menu_id, node) {
+// 노드 클릭시
+function blogSelectNode(node_srl) {
// url과 open_window값을 구함
- var node_srl = node.getAttribute("node_srl");
+ var node = blog_node_info_list[node_srl];
+ if(!node) return;
+
var url = node.getAttribute("url");
var open_window = node.getAttribute("open_window");
var hasChild = false;
@@ -342,8 +256,8 @@ function moveTreeMenu(menu_id, node) {
// url이 없고 child가 있으면 해당 폴더 토글한다
if(!url && hasChild) {
- var zone_id = "menu_"+menu_id+"_"+node_srl;
- toggleFolder(zone_id);
+ var zone_id = "menu_blog_category_"+node_srl;
+ blogToggleFolder(zone_id);
return;
}
@@ -360,225 +274,3 @@ function moveTreeMenu(menu_id, node) {
}
}
}
-
-// 메뉴 드래그 중이라는 상황을 간직할 변수
-var tree_drag_manager = {obj:null, isDrag:false}
-var tree_tmp_object = new Array();
-var tree_disappear = 0;
-
-/**
- * 메뉴 드래깅을 위한 함수들
- **/
-// 드래깅시 보여줄 임시 object를 생성하는 함수
-function tree_create_tmp_object(obj) {
- var tmp_obj = tree_tmp_object[obj.id];
- if(tmp_obj) return tmp_obj;
-
- tmp_obj = xCreateElement('DIV');
- tmp_obj.id = obj.id + '_tmp';
- tmp_obj.style.display = 'none';
- tmp_obj.style.position = 'absolute';
- tmp_obj.style.backgroundColor = obj.style.backgroundColor;
- tmp_obj.style.fontSize = obj.style.fontSize;
- tmp_obj.style.fontFamlily = obj.style.fontFamlily;
- tmp_obj.style.color = "#5277ff";
- tmp_obj.style.opacity = 1;
- tmp_obj.style.filter = 'alpha(opacity=100)';
-
- document.body.appendChild(tmp_obj);
- tree_tmp_object[obj.id] = tmp_obj;
- return tmp_obj;
-}
-
-// 기생성된 임시 object를 찾아서 return, 없으면 만들어서 return
-function tree_get_tmp_object(obj) {
- var tmp_obj = tree_tmp_object[obj.id];
- if(!tmp_obj) tmp_obj = tree_create_tmp_object(obj);
- return tmp_obj;
-}
-
-// 메뉴에 마우스 클릭이 일어난 시점에 드래그를 위한 제일 첫 동작 (해당 object에 각종 함수나 상태변수 설정)
-function tree_drag_enable(child_obj, funcDragStart, funcDrag, funcDragEnd) {
- // 클릭이 일어난 메뉴의 상위 object를 찾음
- var obj = child_obj.parentNode.parentNode;
-
- // 상위 object에 드래그 가능하다는 상태와 각 드래그 관련 함수를 설정
- obj.draggable = true;
- obj.drag_start = funcDragStart;
- obj.drag = funcDrag;
- obj.drag_end = funcDragEnd;
- obj.target_id = null;
-
- // 드래그 가능하지 않다면 드래그 가능하도록 상태 지정하고 mousemove이벤트 등록
- if (!tree_drag_manager.isDrag) {
- tree_drag_manager.isDrag = true;
- xAddEventListener(document, 'mousemove', tree_drag_mouse_move, false);
- }
-
- // mousedown이벤트 값을 지정
- xAddEventListener(obj, 'mousedown', tree_mouse_down, false);
-}
-
-// 드래그를 시작할때 호출되는 함수 (이동되는 형태를 보여주기 위한 작업을 함)
-function tree_drag_start(tobj, px, py) {
- var obj = tree_get_tmp_object(tobj);
-
- xInnerHtml(obj, xInnerHtml(tobj));
-
- tobj.source_color = tobj.style.color;
- tobj.style.color = "#BBBBBB";
-
- xLeft(obj, xPageX(tobj));
- xTop(obj, xPageY(tobj));
- xWidth(obj, xWidth(tobj));
- xHeight(obj, xHeight(tobj));
-
- xDisplay(obj, 'block');
-}
-
-// 드래그 시작후 마우스를 이동할때 발생되는 이벤트에 의해 실행되는 함수
-function tree_drag(tobj, dx, dy) {
- var obj = tree_get_tmp_object(tobj);
- xLeft(obj, parseInt(xPageX(obj),10) + parseInt(dx,10));
- xTop(obj, parseInt(xPageY(obj),10) + parseInt(dy,10));
-
- var menu_id = tobj.id.replace(/menu_/,'');
- menu_id = menu_id.replace(/_([0-9]+)$/,'');
- if(!menu_id) return;
-
- for(var node_srl in blog_node_info_list[menu_id]) {
- var zone_id = "menu_"+menu_id+"_"+node_srl;
- var target_obj = xGetElementById(zone_id);
-
- var hh = parseInt(xHeight(target_obj),10);
- var h = parseInt(parseInt(xHeight(target_obj),10)/2,10);
-
- var l = xPageX(target_obj);
- var t = xPageY(target_obj);
- var ll = parseInt(l,10) + parseInt(xWidth(target_obj),10);
- var tt = parseInt(t,10) + hh;
-
- if( tobj != target_obj && tobj.xDPX >= l && tobj.xDPX <= ll) {
- if(tobj.xDPY >= t && tobj.xDPY < tt-h) {
- try {
- target_obj.parentNode.insertBefore(tobj, target_obj);
- tobj.target_id = target_obj.id;
- } catch(e) {
- }
- }
- }
- }
-}
-
-// 드래그 종료 (이동되는 object가 이동할 곳에 서서히 이동되는 것처럼 보이는 효과)
-function tree_drag_end(tobj, px, py) {
- var obj = tree_get_tmp_object(tobj);
- tree_disappear = tree_disapear_object(obj, tobj);
- tree_drag_disable(tobj.id);
-}
-
-// 스르르 사라지게 함;;
-function tree_disapear_object(obj, tobj) {
- var it = 150;
- var ib = 15;
-
- var x = parseInt(xPageX(obj),10);
- var y = parseInt(xPageY(obj),10);
- var ldt = (x - parseInt(xPageX(tobj),10)) / ib;
- var tdt = (y - parseInt(xPageY(tobj),10)) / ib;
-
- return setInterval(function() {
- if(ib < 1) {
- clearInterval(tree_disappear);
- xInnerHtml(tobj,xInnerHtml(obj));
- xInnerHtml(obj,'');
- xDisplay(obj, 'none');
- return;
- }
- ib -= 5;
- x-=ldt;
- y-=tdt;
- xLeft(obj, x);
- xTop(obj, y);
- }, it/ib);
-}
-
-// 마우스다운 이벤트 발생시 호출됨
-function tree_mouse_down(e) {
- var evt = new xEvent(e);
- var obj = evt.target;
-
- while(obj && !obj.draggable) {
- obj = xParent(obj, true);
- }
-
- if(obj) {
- xPreventDefault(e);
- obj.xDPX = evt.pageX;
- obj.xDPY = evt.pageY;
- tree_drag_manager.obj = obj;
- xAddEventListener(document, 'mouseup', tree_mouse_up, false);
- if (obj.drag_start) obj.drag_start(obj, evt.pageX, evt.pageY);
- }
-}
-
-// 마우스 버튼을 놓았을때 동작될 함수 (각종 이벤트 해제 및 변수 설정 초기화)
-function tree_mouse_up(e) {
- if (tree_drag_manager.obj) {
- xPreventDefault(e);
- xRemoveEventListener(document, 'mouseup', tree_mouse_up, false);
-
- if (tree_drag_manager.obj.drag_end) {
- var evt = new xEvent(e);
- tree_drag_manager.obj.drag_end(tree_drag_manager.obj, evt.pageX, evt.pageY);
- }
-
- tree_drag_manager.obj = null;
- tree_drag_manager.isDrag = false;
- }
-}
-
-// 드래그할때의 object이동등을 담당
-function tree_drag_mouse_move(e) {
- var evt = new xEvent(e);
-
- if (tree_drag_manager.obj) {
- xPreventDefault(e);
-
- var obj = tree_drag_manager.obj;
- var dx = evt.pageX - obj.xDPX;
- var dy = evt.pageY - obj.xDPY;
-
- obj.xDPX = evt.pageX;
- obj.xDPY = evt.pageY;
-
- if (obj.drag) {
- obj.drag(obj, dx, dy);
- } else {
- xMoveTo(obj, xLeft(obj) + dx, xTop(obj) + dy);
- }
- }
-}
-
-// 해당 object 에 더 이상 drag가 되지 않도록 설정
-function tree_drag_disable(id) {
- if (!tree_drag_manager) return;
- var obj = xGetElementById(id);
- obj.draggable = false;
- obj.drag_start = null;
- obj.drag = null;
- obj.drag_end = null;
- obj.style.color = obj.source_color;
-
- xRemoveEventListener(obj, 'mousedown', tree_mouse_down, false);
-
- if(obj.id && obj.target_id && obj.id!=obj.target_id) {
- var menu_id = obj.id.replace(/menu_/,'');
- menu_id = menu_id.replace(/_([0-9]+)$/,'');
- if(menu_id) {
- var callback_move_func = node_move_callback_func[menu_id];
- if(callback_move_func) callback_move_func(menu_id, obj.id, obj.target_id);
- }
- }
- obj.target_id = null;
-}
diff --git a/modules/blog/skins/default/layout.html b/modules/blog/skins/default/layout.html
index 7c9970571..d29f50739 100644
--- a/modules/blog/skins/default/layout.html
+++ b/modules/blog/skins/default/layout.html
@@ -1,5 +1,6 @@
+
diff --git a/modules/menu/menu.view.php b/modules/menu/menu.view.php
index 0c3e3c719..191f48d5a 100644
--- a/modules/menu/menu.view.php
+++ b/modules/menu/menu.view.php
@@ -12,6 +12,7 @@
**/
function init() {
$this->setTemplatePath($this->module_path.'tpl');
+ Context::addJsFile('./common/js/tree_menu.js');
}
/**