특정그룹과 특정게시판은 제외를 시키려면.... > 그누3질답

그누3질답

특정그룹과 특정게시판은 제외를 시키려면.... 정보

그누보드 특정그룹과 특정게시판은 제외를 시키려면....

본문

lulid님의 "왼쪽 게시판 목록에 새글 갯수 표시하기" 입니다.
http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&wr_id=1848

특정그룹과 특정게시판은 제외를 시키려면 어디를 어떻게 손봐야 할지 좀 가르쳐 주셔요~~~!

====================================== 소스 시작 ============================

function lulid_bbslist()
{
global $cfg;
global $bo_table;
$sqlgr = " select * from $cfg[table_group] order by gr_id "; //모든 게시판 그룹을 알아냅니다.
$resgr = sql_query($sqlgr);

$hours = 24; //새 글의 유효 시간. 현재로부터 24시간까지를 새 글로 취급. 예) 새 글을 일주일로 하시려면 24 * 7로 고치세요.
$intime = date("Y-m-d H:i:s", time() - (int)(60 * 60 * $hours));

while ($rowgr = mysql_fetch_array($resgr)) { //각각의 게시판 그룹에서 작업을 합니다.
echo "<b>$rowgr[gr_subject]</b><br>"; //게시판 그룹 이름을 출력합니다.
$sqlbo = " select * from $cfg[table_board] where gr_id = '$rowgr[gr_id]' order by bo_table ";
$resbo = sql_query($sqlbo);

while ($rowbo = mysql_fetch_array($resbo)) { //정해진 게시판 그룹 안에서 테이블 들을 추출합니다.

echo "&nbsp;<a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$rowbo[bo_table]'>"; //게시판 링크 출력.
if($bo_table == $rowbo[bo_table]) echo "<b>"; //추출된 게시판이 현재 선택된 게시판이면 "굵게" 표시.
echo "<font color=";
if($bo_table == $rowbo[bo_table]) echo "6666FF"; //추출된 게시판이 현재 선택된 게시판이면 "6666FF"색으로 표시.
else echo "8888FF"; //추출된 게시판이 현재 게시판이 아니면 "8888FF" 색으로 표시.
echo ">$rowbo[bo_subject]</a>"; //게시판 제목 출력
if($bo_table == $rowbo[bo_table]) echo "</font></b>";

//새 글이 있는지 검사
$sql = "select * from $cfg[write_table_prefix]$rowbo[bo_table] where wr_datetime >= '$intime'";
$result = sql_query($sql);

$i = 0;
for($i = 0; mysql_fetch_array($result); $i++); //새 글이 있으면 새 글의 갯수를 센다.
if($i > 0) echo "<font size=1 color=red>($i)</font>"; //새 글이 있으면 새 글의 갯수를 출력.
echo "<br>"; //줄 바꿈.
}
mysql_free_result($resbo);
}
mysql_free_result($resgr);
}

============================================= 소스 끝 ===========================

댓글 전체

function lulid_bbslist()
{
global $cfg;
global $bo_table;

// 제외하고 싶은 게시판 bo_table
$except_bo_table = array(
"bbs"=>1,
"gal"=>1,
"pds"=>1
);

// 제외하고 싶은 그룹 gr_id
$except_gr_id = array(
"group1"=>1,
"group2"=>1,
"group"=>1
);


$sqlgr = " select * from $cfg[table_group] order by gr_id "; //모든 게시판 그룹을 알아냅니다.
$resgr = sql_query($sqlgr);

$hours = 24; //새 글의 유효 시간. 현재로부터 24시간까지를 새 글로 취급. 예) 새 글을 일주일로 하시려면 24 * 7로 고치세요.
$intime = date("Y-m-d H:i:s", time() - (int)(60 * 60 * $hours));

while ($rowgr = mysql_fetch_array($resgr)) { //각각의 게시판 그룹에서 작업을 합니다.
if($except_gr_id[$rowgr[gr_id]] == 1) continue; // 제외 그룹 플래그가 1일경우 스킵....
echo "<b>$rowgr[gr_subject]</b><br>"; //게시판 그룹 이름을 출력합니다.
$sqlbo = " select * from $cfg[table_board] where gr_id = '$rowgr[gr_id]' order by bo_table ";
$resbo = sql_query($sqlbo);

while ($rowbo = mysql_fetch_array($resbo)) { //정해진 게시판 그룹 안에서 테이블 들을 추출합니다.
if($except_bo_table[$rowbo[bo_table]] == 1) continue; // 제외 테이블 플래그가 1일경우 스킵....
echo "&nbsp;<a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$rowbo[bo_table]'>"; //게시판 링크 출력.
if($bo_table == $rowbo[bo_table]) echo "<b>"; //추출된 게시판이 현재 선택된 게시판이면 "굵게" 표시.
echo "<font color=";
if($bo_table == $rowbo[bo_table]) echo "6666FF"; //추출된 게시판이 현재 선택된 게시판이면 "6666FF"색으로 표시.
else echo "8888FF"; //추출된 게시판이 현재 게시판이 아니면 "8888FF" 색으로 표시.
echo ">$rowbo[bo_subject]</a>"; //게시판 제목 출력
if($bo_table == $rowbo[bo_table]) echo "</font></b>";

//새 글이 있는지 검사
$sql = "select * from $cfg[write_table_prefix]$rowbo[bo_table] where wr_datetime >= '$intime'";
$result = sql_query($sql);

$i = 0;
for($i = 0; mysql_fetch_array($result); $i++); //새 글이 있으면 새 글의 갯수를 센다.
if($i > 0) echo "<font size=1 color=red>($i)</font>"; //새 글이 있으면 새 글의 갯수를 출력.
echo "<br>"; //줄 바꿈.
}
mysql_free_result($resbo);
}
mysql_free_result($resgr);
}


수정된 소스입니다...
위의 예제에서 제외될 게시판 bo_table 은  bbs, gal, pds 이고
제외될 그룹의 gr_id는 group1, group2, group 입니다...
총명님이 먼저 남겼군요  ^^;;

까만도적님... 그 애러는 `헛다리` 집었다는 것.... 같은데요.
gr_id 로 그룹만 먼저 제거후,,,

밑의 $sqlbo 부분에서 다시 bo_table 을 제어 하는 것이 나을듯 싶네요.
zzzz님//
 select * from gb_group where gr_id<>'gr_01' and gr_id<>'gr_02' and gr_id<>'gr_03' and gr_id<>'gr_04' and gr_id<>'gr_05' and gr_id<>'gr_06' and gr_id<>'gr_07' and gr_id<>'gr_08' and gr_id<>'gr_09' and gr_id<>'gr_10' and bo_table <> 'admin' order by gr_id

1054 : Unknown column 'bo_table' in 'where clause'

이런 에러메세지가 뜹니다. ㅠ.ㅠ

byfun님//
감사합니다.
근데 어떻게 하는지를 모르겠네요. ㅠ.ㅠ
정신이 없네요  ;;;;;
까만도적님은 요런거 함 하면 새로운 스킨이 나오더라구요 ㅎㅎ

$sqlgr = " select * from $cfg[table_group] where gr_id <> '없앨그룹'  AND bo_table <> '없앨게시판' order by gr_id "; //모든 게시판 그룹을 알아냅니다.


라면 되겠는데... 잘 모르겠네요.
// 다음 배열을 함수 위쪽에 선언
// 제외 게시판/그룹 배열... while 문에서 코드를 간단히 하기 위해 연관 배열 사용
$except_bo_table = array(
"bbs"=>1,
"gal"=>1,
"pds"=>1
);

$except_gr_id = array(
"group1"=>1,
"group2"=>1,
"group"=>1
);


// 그룹 제외
while ($rowgr = mysql_fetch_array($resgr)) { //각각의 게시판 그룹에서 작업을 합니다.
if($except_gr_id[$rowgr[gr_id]] == 1) continue; // 제외 그룹 플래그가 1일경우 스킵....
:
:
:
// 게시판 제외
while ($rowbo = mysql_fetch_array($resbo)) { //정해진 게시판 그룹 안에서 테이블 들을 추출합니다.
if($except_bo_table[$rowbo[bo_table]] == 1) continue; // 제외 테이블 플래그가 1일경우 스킵....


이렇게 하면 되지 않을까 싶네요.. 근데 안사용해봐서 확답은.. ^^;;
전체 9,564
그누3질답 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT