전체최신글중 특정그룹과 게시판 제외 도와주세요!! > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

전체최신글중 특정그룹과 게시판 제외 도와주세요!! 정보

전체최신글중 특정그룹과 게시판 제외 도와주세요!!

첨부파일

best10.lib.php (3.1K) 5회 다운로드 2009-12-18 06:59:56

본문

http://sir.co.kr/bbs/tb.php/g4_skin/87150/a2dd9f2a9db1462073b4935b504e6152 
 
전체 그룹에서 최신글 뽑아오는 스킨을 이용하는데요

특정그룹과 특정게시판을 제외시키고 싶어서요..


<?
if (!defined('_GNUBOARD_')) exit;

/*
izen.group.lib.php
제작일 : 2006-12-08

지정 기간제 히트순 최근 게시물 수정본
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328

그룹 최신글 관련하여 통합하도록 하였다.
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다.

izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?);
예) echo izen_group('best10', '06', wr_hit, 10, 28, 30);
*/

# 인기글
function izen_usort1($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}

# 헤드라인
function izen_usort2($a, $b)
{
return $b['wr_good'] - $a['wr_good'];
}

# 최신글 추출
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate)
{
global $g4;

$nowYmd = date(Ymd); # 시작시간을 구합니다.
$time = time();
$startYmd = date("Ymd",strtotime("-".$listdate." day", $time));

if ($skin_dir)
{
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
}
else
{
$latest_skin_path = "$g4[path]/skin/latest/basic";
}

$list = array();

$sql= " select bo_table from {$g4['board_table']} ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
#$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and  date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows ";

# 정렬 필드에 의해서 전체적으로 정렬, 관리한다.
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_scrap')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_scrap <> 0 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_1 = 1 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_good <> '0'  order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_id')
{
$sql_gr_Q = " wr_is_comment <> '1' order by $izen_sort desc limit 0, $rows ";
}

$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);

#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
}
}

if ($izen_sort == 'wr_hit')
{
usort($list, 'izen_usort1');
}

elseif ($izen_sort == 'wr_good')
{
usort($list, 'izen_usort2');
}

$list= array_slice($list, 0, $rows);

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();

return $content; } ?>

댓글 전체

방법은 여러가지가 있겠지만 2가지만 말씀드리면

query를 날리기 전에 미리 특정그룹과 게시판을 제외하고 데이터를 가져오는 방법(권장)과

데이터를 출력하기 전에 특정그룹과 게시판의 데이터를 제외시키고 출력하는 방법이 있습니다.

상황에 맞게 선택해서 사용하시면 됩니다.

1. 미리제거하기(특정그룹과 게시판을 제외시키고 가져오기)

$sql= " select bo_table from {$g4['board_table']} where gr_id != '특정그룹명' or bo_table != '특정게시판명' ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)

2. 출력하기전에 제외시키고 출력하기

#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{
  if($row[gr_id] != '특정그룹명' or $row[bo_table] != '특정게시판명') {
      $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
  }
}
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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