그룹,게시판 세로배열 스크롤링 자동메뉴(아마도님 요청) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

그룹,게시판 세로배열 스크롤링 자동메뉴(아마도님 요청) 정보

그룹,게시판 세로배열 스크롤링 자동메뉴(아마도님 요청)

첨부파일

scrolling_main.js (2.6K) 100회 다운로드 2006-05-23 01:04:23

본문

매번 메뉴만 만지작 거린다고 흉보지 마시고 멋지게 옷입혀서 나눠주시면 감사하겠습니다.
혹시 링크를 방문하시게 되면 갤러리 전반에 걸쳐 강력한 테스트 부탁드리겠습니다.^^

이번에 작업하는 갤러리에 보조 메뉴로 사용된 그룹,게시판 세로배열 스크롤링 메뉴입니다.
해당 그룹, 해당 게시판일경우 다른 스타일 적용 표시해줍니다.
bo_new 시간내 새 게시물이 있으면 게시판 옆에 새글 갯수가 조그맣게 나타납니다.
분류사용 체크된 게시판으로 들어가면 메뉴 하단에 해당 게시판의 분류가 나타납니다.
테스트용으로 넣어둔건데 그냥 두었으므로 필요없으면 삭제하세요.
그룹에 링크된 경로는 개인에 맞게 그룹최신글 등으로 수정해주세요.
<a href='$gal4[url]/?gur=$row[gr_id]' style='display: block;'>부분을 아래처럼,, 
<a href='$g4[bbs_path]/group.php?gr_id=$row[gr_id]' style='display: block;'>

성격상 지저분한게 싫어서 스타일시트로 간단하게 만들었습니다.
 
아랫쪽 <script language="JavaScript" src="<?=$gal4[url]?>/js/scrolling_main.js"></script>
부분에서 첨부된 scrolling_main.js 파일의 경로를 개인에 맞게 수정합니다.

절대 위치로 보여지므로 구성파일 어느곳에 넣어도 별 문제 없이 동작할것으로 보입니다.
제경우 하단 파일에 넣어서 사용합니다.
scrolling_main.js 파일에서 메뉴의 좌표를 개인에 맞게 수정하세요.

아래 소스<div id='STATICMENU' style='position:absolute; top:80;left:855;z-index: 0;'>에서
top:80;left:855; 을 scrolling_main.js 에서 설정한 좌표위치와 비슷하게 해주시면 무난합니다.
btn_top.gif 버튼은 g4기본설치시 우측하단에 있는 버튼입니다.
미리보기는 링크 오른쪽 따라다니는 녀석입니다.

여기서 부터 원하는 위치에 붙여넣으세요.
++++++++++++++++++++++++++++++++++++++++++++++++++++++
    <!-- scrolling menu  -->
    <div id='STATICMENU' style='position:absolute; top:80;left:855;z-index: 0;'>

    <?
    //$sql = " select gr_id, gr_subject from $g4[group_table] where gr_id = 'sample_gal'";//그룹명시
    // 그룹 접근 권한에 따라 그룹메뉴 보이기 여분필드 gr_1 순으로 정렬
    $sql = " SELECT a.gr_id, a.gr_subject, a.gr_use_access, b.mb_id FROM $g4[group_table] AS a LEFT JOIN $g4[group_member_table] AS b ON a.gr_id = b.gr_id WHERE  (b.mb_id = '$member[mb_id]' AND a.gr_use_access = '1' ) OR a.gr_use_access = '0'  ORDER BY a.gr_1";

    $result = sql_query($sql);
    for ($i=0; $row=mysql_fetch_array($result); $i++) {

    $style = "";
    if ($row[gr_id] == $gr_id)//해당 그룹 강조
    $style = " style='font-weight:bold; color:darkblue;' ";
    $gr_sub = "<span $style>" . cut_str(get_text($row[gr_subject]),20,"") . "</span>";

    echo "
    <div style='width:120; height:20; padding-top:10; padding-left:10px; padding-right:0px; background: transparent; border: 0px solid gray; display: block;'><a href='$gal4[url]/?gur=$row[gr_id]' style='display: block;'><b>$gr_sub</b></a></div>";
    //게시판 권한 설정 적용, 전체 검색사용에 체크된 게시판만 메뉴에 보이기
    $sql2 = " select bo_subject, bo_table, bo_new from $g4[board_table] where (bo_list_level <= $member[mb_level]) and (gr_id = '$row[gr_id]') and bo_use_search = '1' order by bo_subject ";
    $result2 = sql_query($sql2);

    for ($j=0; $row2=sql_fetch_array($result2); $j++) {

    //해당 게시판 변수선언 - 헐랭이님 소스코드 참조
    $tmp_write_table = $g4[write_prefix] . $row2[bo_table];
    // bo_new에서 지정한 시간과 글쓴 날짜 비교
    $new_time = date("Y-m-d H:i:s", time()-3600*$row2[bo_new]);
    $sql_new = " select wr_datetime from $tmp_write_table where wr_datetime >= '$new_time' ";
    $result_new = sql_query($sql_new);

    // 지정한 시간내 게시판 전체 새글 갯수 및 new아이콘
    $bn_count = mysql_num_rows($result_new);
    if ($bn_count > 0) {
        //$new = " <font class=small color=silver>($bn_count)</font>&nbsp;<img src='$g4[path]/gnusr/images/icon/icon_new.gif' border='0'>";
        $new = " <font class=small color=silver>($bn_count)</font>";//새글 있을때만  갯수 표시
    }else{
        $new = "";
    }

    $style = "";
    if ($row2[bo_table] == $bo_table)//해당 게시판 강조
    $style = " style='font-weight:normal; color:darkblue;' ";
    $bo_sub = "<span $style>" . cut_str(get_text($row2[bo_subject]),20,"") . "</span>";

    echo "
    <div style='width:120; height:15; padding-top:5; padding-left:15px;padding-right:0px;'><a href='$g4[bbs_path]/board.php?bo_table=$row2[bo_table]'>$bo_sub</a>$new</div>";

        }         
    }

    ?>

    <!-- 특정 게시판내 분류 목록 - 게시판이고 카테고리 사용 체크시만 동작 -->
    <?
    if (($board['bo_table']) && ($board['bo_use_category'])) {//게시판이고 카테고리 사용 체크시만 동작

    $row = sql_fetch(" SELECT bo_table, bo_subject, bo_category_list FROM $g4[board_table] WHERE bo_table = '$bo_table' ");

    $style = "";
    if ($row[bo_table] == $bo_table)//해당 게시판 강조
    $style = " style='color:darkblue;' ";
    $bo_sub = "<span $style>" . cut_str(get_text($row[bo_subject]),20,"") . "</span>";

    echo "
    <div style='width:120; height:20; padding-top:10; padding-left:10px; padding-bottom:5px; background: transparent; border: 0px solid gray; font-style: italic; '>test line<br><a href='$g4[bbs_path]/board.php?bo_table=$row[bo_table]' style='display: block;'>$bo_sub</a></div>";

$array = explode("|", $row['bo_category_list']); //분류 구분

    for ($i=0; $i<count($array); $i++) {
        //if (trim($array[$i]))  {

    $row1 = sql_fetch(" SELECT count(*) as cat_cnt FROM {$g4[write_prefix]}{$bo_table} WHERE ca_name = '$array[$i]' and wr_is_comment = '' ");

      $style = "";
      if ($array[$i] == $sca)//해당 분류 표시
      $style = " style='color:darkblue;' ";
      $ca_name = "<span $style>" . cut_str($array[$i], 14) . "</span>";

        echo "
        <div style='width:120; height:15;padding-top: 0px; padding-left:15px; font-style: italic; '><a href='./board.php?bo_table=$bo_table&sca=$array[$i]'>$ca_name </a>($row1[cat_cnt])</div> \n";

        }         
    }

    ?>
        <div class='small' style='padding:5 0 0 10;' nowrap>
        <input type="checkbox" name="ANIMATE" id='ANIMATE' onclick='ToggleAnimate();' onFocus='this.blur()'>
        <label for="ANIMATE" style='cursor:pointer' title='스크롤 on/off'>menu</label>&nbsp;
        <span onclick='scroll(0,0);' style='cursor:pointer' onFocus='this.blur()' title='맨위로 이동' target="_self"><img src="<?=$gal4[img]?>/btn/btn_top.gif" border="0" alt="" align='absmiddle'></span></div>
    </div>
    <script language="JavaScript" src="<?=$gal4[url]?>/js/scrolling_main.js"></script>
    <script language="javascript">InitializeStaticMenu();</script>
    <!-- end scrolling menu  -->
추천
2
  • 복사

댓글 15개

매우 감사합니다. 늘 이렇게 도움만 받으면... 대머리 될 텐데... 어찌 하나요.
아직은 초보라 .. 요즘 그누보드와 친구해서 시간가는 줄 모르고 그렇게 밤을 세우고 있지요.
올해는 꼭 가족 홈피를 만들어야지 했는데.. 플록님과 이곳 그누보드님들 덕분에 꿈이 조금씩 이루어 지고 있어요.
감사드리며. 조만간 저도 이곳 그누보드에 조금이나마 도움이 되는 글들을 올리길 바라며...
어제는 플록님의 둥근 테두리 만들기 따라했습니다만 아직 초보인지라...

아무튼 플록님 감사드리며, 열심히 또 소스갔다가 공부를 해야 겠지요.

감사합니다
저는 진작 대머리 되었습니다.^^

이 모든 소스가 이곳 고수님들께서 공개해주신 것으로 보시면 틀림없습니다.

저는 단지 약간의 아이디어와 주무기인 삽질을 보태었을 뿐 입니다.
웹의 생명은 소스도 중요하지만
아이디어를 내고 삽질를 얼마나 잘 하느냐에 따라 분위기가 반전된다고 생각합니다.
플록님은 소스 아이디어 삽질 3박자 두루갖춘 멋지고 아름다운 분이십니다.

늘 감사하고 있습니다.
윽,, 감사합니다.

다음에 기회가 되면 닉을 '아름다운삽질'로 변경해야겠습니다.

날씨와 관계없이 멋진 하루되기 바랍니다.

저도 알라뷰 입니다.^^;;
감사는 제가 드려야 될것 같습니다.

지금도 이시간에도 목진철님의 스크롤최신글에다가 아름다운삽질을 가하고 있습니다.

항상 멋진작품 감사드립니다.
오달수님께서 오버를 하셨습니다.

제것은 아무것도 없다는걸 잘 아시면서 그러시네요.^^;;

지금 편집하는 소스에도 오달수님 촌철살인의 한줄 팁이 들어있습니다.
증거들 대겠습니다.
//특정필드를 정수형으로 속성변경해서 정렬하기+정렬시 카테고리유지, 오달수님 팁
//http://www.sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=67681
//카테고리 내에서도  정렬되게...1라인추가.
$qstr2= str_replace("bo_table=$bo_table","bo_table=$bo_table&sca=$sca&page=$page",$qstr2);


별도의 시간내어 정리 해볼까요?? ㅎㅎ

항상 감사드립니다.
플록님이나 목진철 님..
고생도 많이 하시고 많이 공개도 하시고 지금도 잘 하시겠지만 나중엔 어마어마한 복 받으시길 바랍니다.
화이팅 ^^;;
저는 자격미달이 확실하지만,

'어마어마한 복'은 은근히 욕심이 나네요.^^

감사히 받겠습니다.

오달수님께서도 주신 복 두배로 뻥튀겨 돌려드립니다.

건강하세요~~!!
© SIRSOFT
현재 페이지 제일 처음으로