rolo님 라이브러리를 이용한 슬라이드 메뉴스킨 작업관련 질문입니다.
미리보기 링크1 입니다.
아래 스크립트의 그룹아이디를 배열로 넣어주는 부분을 원본에서 해결하지 못해 메뉴라이브러리 파일에 아래 라인을 추가했습니다.
일단 동작은 합니다만,
원본 $list 함수 부분을 수정해서 가능하다면 그리 하고싶은데 잘 안 됩니다.
효율적인 방법이 있다면 조언 부탁드립니다.
라이브러리 추가부분입니다.
//id값 활용을 위한 테스트 라인
$sqlgr= "select gr_id from $g4[group_table] order by gr_id ASC ";
$resultgr = sql_query($sqlgr);
for ($j=0; $rowgr = sql_fetch_array($resultgr); $j++) {
$grId[] = $rowgr['gr_id'];
}
//
$list = array();
~~
그룹아이디(그룹별 유니크 값이 필요함)를 배열로 넣어줄 필요가 있는 부분입니다.
<script language="javascript">
//######그룹별 서브메뉴 환경설정 (그룹명,시작위치,x좌표,y좌표,너비,높이)
var <?=$grId[0]?> = new ypSlideOutMenu("<?=$grId[0]?>", "down", 0, 1, 122, 115)
var <?=$grId[1]?> = new ypSlideOutMenu("<?=$grId[1]?>", "down", 0, 1, 122, 157)
var <?=$grId[2]?> = new ypSlideOutMenu("<?=$grId[2]?>", "down", 0, 1, 122, 340)
var <?=$grId[3]?> = new ypSlideOutMenu("<?=$grId[3]?>", "down", 0, 1, 122, 157)
var <?=$grId[4]?> = new ypSlideOutMenu("<?=$grId[4]?>", "down", 0, 1, 122, 340)
//###### 환경설정 끝
<?/*그룹 목록 참고
//print_r2 ($grId);//이 라인의 주석을 풀어서 그룹 배열을 참고
// 모든 서브메뉴가 동일한 환경이라면 다음을 참고
// for ($j=0; $j<count($grId); $j++) {
var my<?=$grId[$j]?> = new ypSlideOutMenu("<?=$grId[$j]?>", "down", 0, 0, 400, 30)
// }*/?>
ypSlideOutMenu.writeCSS();
</script>
미리보기 링크1 입니다.
아래 스크립트의 그룹아이디를 배열로 넣어주는 부분을 원본에서 해결하지 못해 메뉴라이브러리 파일에 아래 라인을 추가했습니다.
일단 동작은 합니다만,
원본 $list 함수 부분을 수정해서 가능하다면 그리 하고싶은데 잘 안 됩니다.
효율적인 방법이 있다면 조언 부탁드립니다.
라이브러리 추가부분입니다.
//id값 활용을 위한 테스트 라인
$sqlgr= "select gr_id from $g4[group_table] order by gr_id ASC ";
$resultgr = sql_query($sqlgr);
for ($j=0; $rowgr = sql_fetch_array($resultgr); $j++) {
$grId[] = $rowgr['gr_id'];
}
//
$list = array();
~~
그룹아이디(그룹별 유니크 값이 필요함)를 배열로 넣어줄 필요가 있는 부분입니다.
<script language="javascript">
//######그룹별 서브메뉴 환경설정 (그룹명,시작위치,x좌표,y좌표,너비,높이)
var <?=$grId[0]?> = new ypSlideOutMenu("<?=$grId[0]?>", "down", 0, 1, 122, 115)
var <?=$grId[1]?> = new ypSlideOutMenu("<?=$grId[1]?>", "down", 0, 1, 122, 157)
var <?=$grId[2]?> = new ypSlideOutMenu("<?=$grId[2]?>", "down", 0, 1, 122, 340)
var <?=$grId[3]?> = new ypSlideOutMenu("<?=$grId[3]?>", "down", 0, 1, 122, 157)
var <?=$grId[4]?> = new ypSlideOutMenu("<?=$grId[4]?>", "down", 0, 1, 122, 340)
//###### 환경설정 끝
<?/*그룹 목록 참고
//print_r2 ($grId);//이 라인의 주석을 풀어서 그룹 배열을 참고
// 모든 서브메뉴가 동일한 환경이라면 다음을 참고
// for ($j=0; $j<count($grId); $j++) {
var my<?=$grId[$j]?> = new ypSlideOutMenu("<?=$grId[$j]?>", "down", 0, 0, 400, 30)
// }*/?>
ypSlideOutMenu.writeCSS();
</script>
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 9개
다음 코드가 도움이 될 겁니다.
foreach( $list as $key => $value)
echo $key;
매번 시간+삽질로 해결하는 방식이다 보니 어수선 합니다.
$key 값을 가지고 삽질을 한 참 해보고 안 되어 할 수 없이 쿼리를 해서 테스트해본후 질문드린 것입니다.
말씀하신 대로 해보면 gr_id가 capturecommunitywork 이런식으로 모두 붙어서(원래는 capture community work) 올라오긴 합니다.
다만 이 그룹아이디값을 따로따로 배열변수에 담아내기가 잘 안 됩니다.
다시 한 번 봐주시면 고맙겠습니다.
테스트중인 메뉴의 스크립트는 아래에서 받아온 것입니다.
ypSlideOutMenu
http://ypslideoutmenus.sourceforge.net
꼭 필요한 옵션은 거의 있는것 같습니다.
아무래도 다음 달에 v2를 준비해야겠습니다.
<script language="javascript">
//######그룹별 서브메뉴 환경설정 (그룹명,시작위치,x좌표,y좌표,너비,높이)
<?
foreach( $list as $key => $value) {
?>var <?=$key?> = new ypSlideOutMenu("<?=$key?>", "down", 0, 1, 122, 115);<?
} ?>
ypSlideOutMenu.writeCSS();
</script>
?>var <?=$key?> = new ypSlideOutMenu("<?=$key?>", "down", 0, 1, 122, 115);<?
이 방법의 경우 순서에 문제는 없으나 그룹마다 서브 메뉴의 높이가 달라서 실제 적용에는 문제가 있습니다.
받아온 $key값을 정규표현식으로 몇자씩 잘라서 배열에 넣는 방법등을 해보는데 잘 안 됩니다.
괴롭혀드려서 죄송합니다.^^
슬라이드 메뉴 환상적입니다.^^
제가 할 줄 아는것이 그져 부딪히는 것 뿐이라서 늘 이렇게 헤메고 있답니다.
메뉴스킨 분류가 생기는 그날까지 쭈~욱 삽질은 계속 됩니다. ^^**
문제가 없을지 한 번 검토해주시면 고맙겠습니다.
라입브러리 파일에서 한줄 추가했습니다.
$list[$row['gr_id']]['gr_id'] = $row['gr_id'];//id값 활용을 위한 테스트 라인
$list[$row['gr_id']]['gr_subject'] = $row['gr_subject'];
$list[$row['gr_id']]['bbs'][] = array( 'bo_table'=> $row['bo_table'], 'bo_subject'=>$row['bo_subject']);
스킨 파일에서 스크립트 상위에 다음과 같이 수정했습니다.
foreach( $list as $key => $value)
$grId[] = $value['gr_id']; //분류 구분
/*
print_r2 ($grId); 찍어본 결과를 참조해서 올라온 그룹만 스크립트에서 환경설정
[0] => capture
[1] => community
[2] => work
[3] =>
*/
?>
<script language="javascript" src="<?=$menu_skin_path?>/ypSlideOutMenus.js"></script>
<script language="javascript">
//######그룹별 서브메뉴 환경설정 (그룹명,시작위치,x좌표,y좌표,너비,높이)
var <?=$grId[0]?> = new ypSlideOutMenu("<?=$grId[0]?>", "down", 0, 1, 122, 115)
var <?=$grId[1]?> = new ypSlideOutMenu("<?=$grId[1]?>", "down", 0, 1, 122, 157)
var <?=$grId[2]?> = new ypSlideOutMenu("<?=$grId[2]?>", "down", 0, 1, 122, 340)
//###### 환경설정 끝
ypSlideOutMenu.writeCSS();
</script>
큰 문제가 없다면 메뉴 스킨화 홍보차원에서라도 현재상태로 올릴까 합니다.
전역변수 부분에 해당 그룹 및 게시판에 다른 스타일을 적용하기위해 추가한 부분을 빼먹었습니다.
global $member;//부가메뉴 ?? 레벨만 인식(관리자??)
global $gr_id;//포커스를 위한 설정(해당그룹 표시)
global $bo_table;//포커스를 위한 설정(해당게시판 표시)
내달 예정하신 v2를 기대하고 있겠습니다.
도움 주셔서 감사합니다.