[제나플러스] 그룹내 게시판 및 분류 추출 세로형 자동메뉴 > 팁앤테크

본문 바로가기
사이트 내 전체검색

팁앤테크

[제나플러스] 그룹내 게시판 및 분류 추출 세로형 자동메뉴

페이지 정보

본문

그룹에 속한 게시판 및 분류 추출 세로형 자동메뉴 bcRFV_css.php 입니다.
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/6766 속도 및 새글 카운트가 보강되었습니다.

특징;
# 기능은 위 메뉴와 크게 다르지 않으나 속도 향상과 관련된 중요한 패치가 되었습니다.
  foreach 함수 사용 및 쿼리 속도를 높이기위해 대해 아래팁을 참조했습니다.
  http://www.sir.co.kr/bbs/tb.php/pl_php/240

# 새글이 있는 경우 게시판 및 분류에 (원글/코멘트) 형식의 지정시간내 새글 숫자가 보여집니다.
  (나스카님께서 만들어 주셨고 izen님 속도향상 관련 쿼리를 참조 수정하였습니다. 죄송^^)
 
# 나스카님께서 코멘트 카운트만 있는 게시판 및 카테고리에서 카운트 노출 안 되는 버그를 잡아주셨습니다.

# 카테고리 세로칼럼을 조정해서 두줄이상으로 설정해서 보여줄 수 있게 했습니다.
    http://www.babybox.co.kr/g4/bbs/board.php?bo_table=work 두줄 css 타입 정렬입니다.
    http://www.babybox.co.kr/g4/bbs/board.php?bo_table=my_page 두줄 table 타입 정렬입니다.
    분류 배열만 테이블을 사용한 것으로 필요하신분은 코멘트 남겨주시면 해당 부분만 올려드리겠습니다.

# 그룹내 권한에 해당되는(보여지는) 게시판 숫자가 그룹이름 옆에 나타납니다.

# 카테고리가 있는 게시판은 게시판 이름옆에 특정 표시(·)가 나타납니다.

  해당 게시판 일때만 분류를 보여줍니다.
  해당 게시판 및 해당 분류일때 다른 스타일로 표시합니다.

  직접 도움을 주신 나스카님께 특별히 감사드립니다.

  미리보기 링크1 왼쪽 아래 걸려있습니다.
  링크의 위쪽 메뉴는 new_table활용형 테스트 메뉴입니다.

  버그 리포트 기대합니다.^^

--------------------------------------------------------------------------------

원하는 위치에 <? include_once("경로/bcRFV_css.php"); ?> 해줍니다.

<? if (!defined("_GNUBOARD_")) exit; // bcRFV_css.php
########################################################
# CSS로 구현한 그누보드4 게시판 및 분류 자동추출 세로 메뉴
# 게시판 및 분류에서 위치표시+새글갯수 표시, 분류 세로열 조정가능
# 2006년 8월 13일, 헐랭이님, 나스카님 소스코드 참조 수정 - 플록
########################################################
?><style type="text/css">
#bcRFV_global { /*메뉴 가장자리를 감싸는 영역*/
width:174px;
background-color:transparent/*black*/;
position:relative;
padding:5 0 0 0;
}
#bcRFV_group { /*그룹메뉴 영역*/
width:164px;
margin:5 0 0 5;
padding:7 0 0 10;
background-color:silver;
/*font-weight:bold;*/
}
.bcRFV_group_subject { /*그룹제목 스타일*/
width:156px;/*block 설정시 너비 빼먹으면 msie에서 안먹힘*/
height:23px;
display:block; /*포인터 영역 확대*/
}
#bcRFV_board { /*게시판 제목*/
width:174px;
margin:0 0 0 0;
padding:0 0 0 10;
background-color:transparent;
position:relative;
}
a.bcRFV_board_subject { /*게시판제목 링크 스타일*/
width:156px;/*block 설정시 너비 빼먹으면 msie에서 안먹힘*/
height:15px;
display:block; /*포인터 영역 확대*/
border-bottom:0px dotted gray;
padding:5 0 5 0;
}
#bcRFV_sub { /*분류 영역*/
position:relative;
border-right:0px dotted gray;
border-bottom:1px dotted gray;
border-left:0px dotted gray;
}
a.bcRFV_sub_subject { /*분류제목 링크 스타일*/
width:100px; /*block 설정시 너비 빼먹으면 msie에서 안먹힘*/
height:15px;
display:block; /*포인터 영역 확대*/
border-bottom:0px dotted gray;
margin-left:10;
padding:5 0 2 0;
}
.new {
font: oblique small-caps 500 12px/15px arial;
color:red;
}
</style><?

// rolo님 메뉴스킨 라이브러리 참조, 일반적인 조건으로 쿼리
// 제외 게시판 - 전체 검색 사용 no, 목록열람 레벨
// 게시판 정렬 - 전체 검색 오름 차순
// 나스카님 원글 및 분류별 새글 카운트(izen님 php속도향상팁 적용)
?><div id='bcRFV_global'><?

//### 그룹 추출 - 메뉴가 위치하는 그룹
$grN = sql_fetch(" select gr_id, gr_subject from $g4[group_table] where gr_id = '$gr_id 또는 그룹아이디' ");//그룹명시

$bar = " - ";
$bullet = "⊙";

$list = array();

//제외시키고자 하는 게시판을 수동으로 추가
$exc = "('게시판1', '게시판2', '게시판3')";

//## 게시판 추출 -목록열람 레벨 적용후 검색순 정렬
$sql = " select bo_table, bo_subject, bo_category_list, bo_use_category, bo_new from $g4[board_table] where (bo_list_level <= $member[mb_level]) and (gr_id = '$grN[gr_id]') and bo_table not in {$exc} order by bo_order_search";
$result = sql_query($sql);

for ($i=0; $row = sql_fetch_array($result); $i++) {
    $list[$row['bo_table']]['bo_subject'] = $row['bo_subject'];
    $list[$row['bo_table']]['sca'] = explode("|", $row['bo_category_list']);
    $list[$row['bo_table']]['bo_use_category'] = $row['bo_use_category'];
    $list[$row['bo_table']]['bo_new'] = $row['bo_new'];
}

//### 그룹
$menu_size= count( $list);
$group_subject = "<span style='font-weight:bold;'>" . cut_str(get_text($grN['gr_subject']),20,"") . "</span>";
$group_subject .= "<span style='font-size:8pt;'>&nbsp;Total:" . $menu_size . "</span>";

?><div id="bcRFV_group">
    <a href='<?=$g4['bbs_path']?><?=$grN['gr_id'] == "sample_gal"?'/gallery':'';/*특정그룹 경로*/?>/group.php?gr_id=<?=$grN['gr_id']?>' onfocus='this.blur()' class="bcRFV_group_subject"><?=$group_subject?></a></div><?

//## 게시판 목록
foreach( $list as $key=> $value) {
   
    $tmp_write_table = $g4[write_prefix] . $key;
    $intime = date("Y-m-d H:i:s", time()-3600*$value['bo_new']);
    //원글 및 코멘트 새글 카운트 by nasca, izen님 빠른쿼리로 보강
    $sql_new = mysql_query(" select count(wr_datetime) as wr_datetime from $tmp_write_table where  wr_is_comment = '0' and wr_datetime >= '$intime' ");
    $row_new = mysql_fetch_array($sql_new);
    $sql_cm_new = mysql_query(" select count(wr_datetime) as wr_datetime from $tmp_write_table where  wr_is_comment <> '0' and wr_datetime >= '$intime' ");
    $row_cm_new = mysql_fetch_array($sql_cm_new);

    $bn_count = $row_new['wr_datetime'];
    $bn_countc = $row_cm_new['wr_datetime'];

    if ($bn_count || $bn_countc > 0) {
        $new = "&nbsp;<span class='new'>(" . $bn_count . '/' . $bn_countc . ")</span>";
        }else{
            $new = "";
            }

    foreach( $value['sca'] as $category) {//분류가 있고 분류사용 체크된 게시판 별도표시
        $sicon = "";
        if (($value['bo_use_category'] == "1") && ($category)) {
        $sicon = "&nbsp;<span style='color:red;'>&middot;</span>";
        }
    }

    $style = "";
    if ($key == $bo_table)//해당 게시판 강조
    $style = "style='font-weight:bold; color:red;'";
    $bo_subject = "<span $style>" . cut_str(get_text($value['bo_subject']),20,"") . "</span>" . $new . $sicon;
 
    ?><div id='bcRFV_board'><a href='<?=$g4[bbs_path]?>/board.php?bo_table=<?=$key?>' class='bcRFV_board_subject' onfocus='this.blur()'><?=$bullet?> <?=$bo_subject?></a><div id='bcRFV_sub'><?

    //분류목록 세로배열
    $bo_width = 100;//전체 너비 %
    $cols = 2;//세로 칼럼수
    $ca_width = intval($bo_width / $cols);//분류 너비 %

    $cnt = 1;

    //게시판이고 분류사용 체크되있으며 분류내용 있는 경우
    if (($key == $bo_table) && (($value['bo_use_category'] == "1") && ($category))) {

    ?><div style="width:<?=$bo_width?>%; border:0px solid white;"><?
   
    //# 분류 목록
    foreach( $value['sca'] as $category) {
        //bo_new에서 지정한 시간내 분류별 원글 및 코멘트 새글 카운트 by nasca, izen님 빠른쿼리로 보강
        $sql2_new = mysql_query(" select count(wr_datetime) as wr_datetime from $tmp_write_table where wr_is_comment = '0' and wr_datetime >= '$intime' and ca_name = '$category'");
        $row2_new = mysql_fetch_array($sql2_new);
        $sql2_cm_new = mysql_query(" select count(wr_datetime) as wr_datetime from $tmp_write_table where wr_is_comment <> '0' and wr_datetime >= '$intime' and ca_name = '$category'");
        $row2_cm_new = mysql_fetch_array($sql2_cm_new);

        $cn_count = $row2_new['wr_datetime'];
        $cn_countc = $row2_cm_new['wr_datetime'];

        if ($cn_count || $cn_countc > 0) {
            $new2 = "&nbsp;<span class='new'>(" . $cn_count . '/' . $cn_countc . ")</span>";
            }else{
                $new2 = "";
                } 

        //링크에서 한글로된 카데고리 이름을 urlencode시킴
        $sca_url = urlencode($category);

        $style = "";
        if ($category == $sca)//해당 분류 강조
        $style = "style='font-weight:normal; color:red;'";
        $ca_subject = "<span $style>" . cut_str(get_text($category),10,"") . "</span>" . $new2;

        ?><span style="width:<?=$ca_width?>%;padding:3 0 3 10;"><a href='<?=$g4['bbs_path']?>/board.php?bo_table=<?=$key?>&sca=<?=urlencode($category)?>' style="border-bottom:0px dotted gray;" onfocus='this.blur()'><?=$bar?> <?=$ca_subject?></a>
        </span><?

        if ($cnt == $cols){
            $cnt = 0;
            ?></div><div style="width:<?=$bo_width?>%; border:0px solid red;"><?
            }

        $cnt++;
       
        }//foreach
        ?></div><?
    }//if
    ?></div></div><?
}//foreach 주메뉴 끝

?></div><!-- bcRFV_global end -->
<div style='clear: both;'></div>
추천0

댓글목록

등록된 댓글이 없습니다.

Total 825건 8 페이지
  • RSS
팁앤테크 목록
번호 제목 글쓴이 조회 추천 날짜
650 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 17130 0 06-01
649 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 17102 0 04-17
648 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 17079 0 10-07
647 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16991 0 04-04
646 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16982 0 10-28
645 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16969 0 05-31
644 월드컵쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16969 0 12-03
643 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16932 0 03-14
642 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16928 0 01-20
641 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16869 0 05-07
640 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16867 0 12-18
639 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16859 0 01-24
638 朴城忍쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 16833 0 02-27
637 포인트쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16817 0 05-07
636 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16817 0 05-30
635 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16804 0 11-01
634 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16733 0 01-13
633 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16706 0 09-21
632 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16628 0 11-12
631 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16611 0 01-05
630 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16576 0 10-22
629 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16562 0 02-22
628 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16544 0 11-12
627 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16505 0 09-29
626 제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 16485 0 06-12

검색

회원로그인

회원가입

사이트 정보

株式会社YHPLUS / 대표 : ZERO
〒140-0011 東京都品川区東大井2-5-9-203
050-5539-7787
오픈카카오톡 (YHPLUS) :
https://open.kakao.com/o/slfDj15d

접속자집계

오늘
1,519
어제
4,718
최대
7,259
전체
1,223,017
Copyright (c) 株式会社YHPLUS. All rights reserved.