(수정)최근게시물을 최근이 아닌 카테고리별+추천, 히트, 역순등의 순서로 간편하게 뽑아오기^^ > Web Development

본문 바로가기
  • kb@lovelet.com
사이트 내 전체검색

RESOURCES Web Development

(수정)최근게시물을 최근이 아닌 카테고리별+추천, 히트, 역순등의 순서로 간편하게 뽑아오기…

페이지 정보

본문

이미 각각 개별적으로 존재하는 팁이지만...한군데 모아봤습니다.^^;

최근게시물 뽑기를 최근에 올라온 순서로 뽑는게 아닌 히트순, 추천순, 등록순, 역순등 필요한 형태로 각각 뽑는 방법입니다.
또한 카테고리를 사용하는 게시판에서는 원하는 카테고리에서 게시물을 추출할수도 있습니다.

먼저 OUTLOGIN.PHP 파일을 열어서 가장 아래 ?> 위에 다음 소스를 전부 복사해 넣으시구요.

///////////////////////////////////////////////////////////////////////////////////
function print_bbs3($skinname, $title, $id, $num=5, $textlen=30, $headline=1, $arrange=4, $datetype="Y/m/d") {
global $_zb_path, $_zb_url, $connect, $t_board, $admin_table;

if(!$skinname||!$id||!$title) return;

$str = zReadFile($_zb_path."latest_skin/".$skinname."/main.html");
if(!$str) {
echo "지정하신 $skinname 이라는 최근목록 스킨이 존재하지 않습니다
";
return;
}

$setup = mysql_fetch_array(mysql_query("select use_alllist from $admin_table where name='$id'"));
if($setup[use_alllist]) $target = "zboard.php?id=".$id;
else $target = "view.php?id=".$id;

// 히트순
if($arrange==1){
if(headline==0){$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 order by hit desc limit $num", $connect) or die(mysql_error()); }
else{$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 && category='$headline' order by hit desc limit $num", $connect) or die(mysql_error()); }
}

//추천순
else if($arrange==2){
if(headline==0){$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 order by vote desc limit $num", $connect) or die(mysql_error()); }
else{$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 && category='$headline' order by vote desc limit $num", $connect) or die(mysql_error()); }
}


//역순
else if($arrange==1){
if(headline==0){$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 order by no asc limit $num", $connect) or die(mysql_error()); }
else{$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 && category='$headline' order by no asc limit $num", $connect) or die(mysql_error()); }
}

//최근글
else{
if(headline==0){$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 order by no desc limit $num", $connect) or die(mysql_error()); }
else{$result = mysql_query("select * from $t_board"."_$id where is_secret=0 && headnum >-2000000000 && category='$headline' order by no desc limit $num", $connect) or die(mysql_error()); }
}

$tmpStr = explode("[loop]",$str);
$header = $tmpStr[0];
$tmpStr2 = explode("[/loop]",$tmpStr[1]);
$loop = $tmpStr2[0];
$footer = $tmpStr2[1];


$main_data = "";
while($data=mysql_fetch_array($result)) {
$name = stripslashes($data[name]);
$subject = cut_str(stripslashes($data[subject]),$textlen)."";
$date = date($datetype, $data[reg_date]);
if($data[total_comment]) $comment = "[".$data[total_comment]."]"; else $comment="";

$main = $loop;
$main = str_replace("[name]",$name,$main);
$main = str_replace("[date]",$date,$main);
$main = str_replace("[subject]","".$subject."",$main);
$main = str_replace("[comment]",$comment,$main);
$main_data .= "\\n".$main;
}
$list = $header.$main_data.$footer;
$list = str_replace("[title]","".$title."",$list);
$list = str_replace("[dir]",$_zb_url."latest_skin/".$skinname."/images/",$list);

echo $list;


}
///////////////////////////////////////////////////////////////////////////////////////

함수이름은 기존 함수와 중복되지 않도록 print_bbs3 라고 하였습니다.
간단하죠?^^
기존의 print_bbs() 처럼 사용하면 됩니다만, 변수가 두개 추가됩니다.

<? print_bbs3("스킨이름", "게시판명", "게시판ID", 글갯수, 글자제한, 카테고리, 추출형태) ?>

카테고리에 원하는 카테고리 번호를 넣어주면 되구요, 카테고리를 사용하지 않는 게시판은 1을 넣어주어야 합니다.
또는 카테고리를 사용하는 게시판에서 전체목록에서 추출을 원하면 0을 넣어주면 됩니다.
추출형태는...1-히트순, 2-추천순, 3-역순, 4-최근글순 으로 입력하시면 됩니다.

<? print_bbs3("default", "자유게시판", "free", 5, 30, 3, 1) ?> - 3번째 카테고리에서 히트순으로 5개 뽑기

기존에 있는 팁들을 섞어서 짬뽕한 형태지만 필요하신 분들이 계실거 같아서...^^

Share Post:

댓글목록

등록된 댓글이 없습니다.

Sign In
OR
Don't have an account? SIGN UP

Keywords

Visits

접속자

Total Visits
1,886,522