GNU보드 관리자 페이지 layer_view 함수 수정
새로운 사이트 작업을 준비하면서 GNU보드의 head.sub.php 파일에 문서타입을 지정했더니 관리자 페이지에서
상단 메뉴 레이어가 제 위치에 표시되지 않는 문제가 있어 미천한 jQuery 지식을 이용해서 함수를 수정했다.
adm/admin.head.php 파일에 보면 아래와 같은 함수가 있다.
function layer_view(link_id, menu_id, opt, x, y)
{
var link = document.getElementById(link_id);
var menu = document.getElementById(menu_id);
//for (i in link) { document.write(i + ‘<br/>’); } return;
if (save_layer != null)
{
save_layer.style.display = “none”;
selectBoxVisible();
}
if (link_id == ”)
return;
if (opt == ‘hide’)
{
menu.style.display = ‘none’;
selectBoxVisible();
}
else
{
x = parseInt(x);
y = parseInt(y);
menu.style.left = get_left_pos(link) + x;
menu.style.top = get_top_pos(link) + link.offsetHeight + y;
menu.style.display = ‘block’;
}
save_layer = menu;
}
위의 함수를 아래와 같이 수정했다.
function layer_view(link_id, menu_id, opt, x, y)
{
if(save_layer != menu_id) {
$(‘#’+save_layer).hide();
}
if (link_id == ”)
return;
if (opt == ‘hide’)
{
$(‘#’+menu_id).hide();
}
else
{
x = parseInt(x);
y = parseInt(y);
var position = $(‘#’+link_id).position();
var offsetHeight = $(‘#’+link_id).height();
var menu_left = position.left + x;
var menu_top = position.top + offsetHeight + y;
$(‘#’+menu_id).css(“top”, menu_top).css(“left”, menu_left).show();
}
save_layer = menu_id;
}
일단 이렇게 수정하고 나니 원하는 위치에 메뉴가 표시된다. 이렇게 하면 되는 건지 잘은 모르겠다. ^^;