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;

}

일단 이렇게 수정하고 나니 원하는 위치에 메뉴가 표시된다. 이렇게 하면 되는 건지 잘은 모르겠다. ^^;

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.