메인화면에 내가작성한 글리스트 보여주기(통합게시판)
| Zeroboard 4
Posted at 2009/12/29 02:49
통합게시판 최근 게시물과 비슷한 기능이며
회원별로 본인의 글 리스트를 보여주며 새로운 코멘트가 달렸는지
표시해 주므로 오래된 게시물 이라도 본인이 작성한 게시물의 관리를
편리? 하게 합니다.

설치방법

설치방법은 간단하며 아래의 설명대로 하시면 됩니다.

1, 각 게시판설정에서 게시판별로 게시판성격에 맞는 타이틀을 넣어줍니다.
    타이틀은너무길지 않도록 적당하게 만들어 줍니다. 예제: 유용한팁 공유게시판

2, 서버에 올려져있는 html 또는 php 의 문서를 다운로드 합니다.

3, 문서의 상단에 외부 로그인을 사용하기 위해서 적용한 아래의 코드가 반드시 들어 있어야 합니다.

<?
   $_zb_url = "멋진홈피주소/제로보드/";
   $_zb_path = "/경로어쩌고/제로보드/";
   include $_zb_path."outlogin.php";
?>





4, 아래의 코드를 긁어서 문서의 원하는 곳에 붙여 넣어줍니다.




<?
//내가작성한 글리스트 보여주기(통합게시판) 소스시작
// 원작자: 배상봉 님의 코드를 기둥으로 세운후 더하기 빼기 수정 및 어쩌고....헥헥 어렵다ㅠㅠ
// 짜집기함 : 헐랭이 kcho07@msn.com / http://avaschool.net
// 회원일때만 출력하고
if($member[no])
{
//현재 로그인한 회원번호를 변수 재설정하고 글로벌 때문에
$ssmembers =$member[no];
//내글 리스트 만들기 평션처리 시작
function recent_bbs($num=10, $textlen=30, $datetype="Y년m월d일") {
global $_zb_path, $_zb_url, $connect, $t_board, $ssmembers, $t_comment, $admin_table, $mb_id, $mb_conf;
// 필요한 변수들이며 복잡하고 어려워서 설명이 형편없음.ㅋㅋㅋ    그냥 넘어가자_-_
if(!$mb_conf[icon])
$ico = "";
else
$ico = $mb_conf[icon];
$id = $mb_id;
//게시판설정에서 타이틀이 없을경우 출력할 내용
$mb_conf[mytitle] =" 의 게시판";
$myTitle = $mb_conf[mytitle];
/* 내가작성한  게시물을 출력시킬 시간설정 시작 */
// $cutTimeMode가 1 이면 8760시간 1년이내의 게시물 추출
// $cutTimeMode가 2 이면 48시간 이내의 게시물 추출
// $cutTimeMode가 3 이면 오늘 0시0분부터 올라온 게시물 추출
// $cutTimeMode가 0 혹은 기타 수일 때 그냥 최근올려진 순서로 추출(시간제한 없음)
$mb_conf[timemode] ="1";
$cutTimeMode = $mb_conf[timemode];
for( $i = 0; $i < sizeof($id); $i++){    
$target[$id[$i]] = "view.php?id=";
}
// 처리 시작
$tc = 0;
//새로운글 등록후 새글표시 이미지를 출력할 시간설정
$time_new = time() - 3600 * 48;
//새로운글 표시 이미지임
$icon_new = "<img src='".$_zb_url."images/new.gif'>";
//아래의 출력할 시간변수는 추가할수 있습니다.
if($cutTimeMode == 1){
$cut_time = time() - 3600 * 8760;   // 1년동안의 8,760 시간 이내의 게시물만 출력 (수정가능함)
}else if($cutTimeMode == 2){
$cut_time = time() - 3600 * 48;   // 48시간내의 게시물만 출력 (수정가능함)
}else if($cutTimeMode == 3){
$cut_time = mktime(0,0,0,date("m"),date("d"),date("Y")); // 오늘 0시부터 작성한게시물만 출력
}else{
$cut_time = 0; //무제한 (처음부터 전부)
}
// 최근글 순서대로
for( $i = 0; $i < sizeof($id); $i++){
$query = "select * from ".$t_board."_".$id[$i]." where ismember='$ssmembers' and reg_date > $cut_time order by no desc limit $num";
$result = mysql_query($query, $connect) or die(mysql_error());
while($data=mysql_fetch_array($result)){
$ad[$tc][name] = stripslashes($data[name]);
$ad[$tc][subject] = cut_str(stripslashes($data[subject]), $textlen)."</font></b>";
$ad[$tc][date] = date($datetype, $data[reg_date]);
$ad[$tc][reg_date] = $data[reg_date];
$last_comment = mysql_fetch_array(mysql_query("select * from $t_comment"."_$id[$i] where parent='$data[no]' order by reg_date desc limit 1"));
$last_comment_time = $last_comment['reg_date'];
if(time()-$last_comment_time<3600*48){ //새로운 코멘트가 올라오면 빨강색으로 표시할 시간설정
$comment_num = "[<font color=red>".$data[total_comment]."</font>]";
}
else if(time()-$last_comment_time<3600*96) { //새로운 코멘트가 올라오면 그린색으로 표시할 시간설정
$comment_num = "[<font color=green>".$data[total_comment]."</font>]";
}
else {
$comment_num = "[".$data[total_comment]."]";
}
$ad[$tc][comment] = $data[total_comment] ? $comment_num : "";
$ad[$tc][icon] = $data[reg_date] > $time_new ? $icon_new : "";
$ad[$tc][target] = $_zb_url.$target[$id[$i]].$id[$i]."&no=".$data[no];
$ad[$tc][catelink] = $_zb_url."zboard.php?id=".$id[$i];
$ad[$tc][id] = $id[$i];
$ad[$tc][no] = $data[no];
$category = $data[category];
$result_category = mysql_query("select * from $admin_table where name='$id[$i]'") or die(mysql_error());
$category = mysql_fetch_array($result_category);
$ad[$tc][cate] = $category[title];
$tm[$tc] = $data[reg_date];
$map[$data[reg_date]] = $tc;
$tc++;
}
}
//여기서부터 보여주기 요땅
echo "
<table width=690 border=0 cellpadding=2 cellspacing=1 style='table-layout:fixed;'>
<tr height=22 bgcolor=#cfcccc>
<td width=120 align=center> 게 시 판</td>
<td width=340 align=center><b>제 목</b></td>
<td width=130 align=center>날 짜</td>
</tr>        
";
// 모든게시물을 시간순으로 정렬
if($tc)    
sort($tm);
// 최근 게시물 순으로 $num 갯수만큼 출력 - 뺑뺑이를 돌리자
for($i = sizeof($tm)-1; $i >= sizeof($tm)-$num && $i >= 0; $i--){
$n = $map[$tm[$i]];
print "$ico ";
echo "
<tr height=22>
<td>";
if($ad[$n][cate]){
// 게시판의 타이틀을 출력함
print " <a href=".$ad[$n][catelink]."><font color=#999999> [".$ad[$n][cate]."]</font></a> ";
} else {
print " <a href=".$ad[$n][catelink]."><font color=#999999> [".$ad[$n][id]." ".$myTitle."]</font></a> ";
}
echo "</td><td>";
print "<a href=".$ad[$n][target]." title='작성자:".$ad[$n][name]." 작성일:".$ad[$n][date]."'>";
print $ad[$n][subject];
print "</a> ".$ad[$n][icon].$ad[$n][comment]."";
echo "</td><td>";
print " 작성일: ".$ad[$n][date]."<br>n";
echo "</td></tr>";
} //뺑뺑이 끝
echo "</table>";
} //평션 끝
?>
<table align="center" border="0" cellspacing="2" width="710">
<tr>
<td style="border-width:1px; border-color:rgb(0,102,153); border-style:solid;" width="98%">

<center><b> 커뮤니티 분류의 <?=$member[name]?> 님의 최근 게시글 리스트.</b>
1년전 ~ 현재 까지의 최근글 이며 새로운 코멘트를 확인할수 있습니다.
</center>
<?
//실제출력
//출력할 게시판의 아이디를 나열합니다.현재 6개의 게시판을 나열하였음
$mb_id = array("com_a", "com_b", "com_c", "com_d", "com_e", "com_f");
//출력할 리스트의 갯수, 제목의 글자수를 넣어줍니다.   현재설정은 리스트20개 , 제목50자 까지 출력시킴
recent_bbs(20,50);
?>
</td>
</tr>
</table>
<br/>
<?
} //회원일때 끝
else
{
//로그인을 하지않았을 경우 즉 손님에게 보여줄 메세지
?>
<center>
<br>
<br>
<b>@ 안내:  이부분은 로그인을 하셔야만 출력이 됩니다. @</b>
<br>
<br>
</center>
<?
} //손님일때 끝
//내가작성한 글리스트 보여주기(통합게시판) 소스 끝
?>



5, 위의 코드를 정성을 들여서 설명부분을 전부 읽어 본후 환경에 맞게 설정을 합니다.


6, 위의 코드중 실제 출력할 부분에 게시판의 아이디(id)와 출력할 리스트수 및
   제목 글자수를 설정 합니다. 아래의 코드부분입니다.

<?
//실제출력
//출력할 게시판의 아이디를 나열합니다.현재 6개의 게시판을 나열하였음
$mb_id = array("com_a", "com_b", "com_c", "com_d", "com_e", "com_f");
//출력할 리스트의 갯수, 제목의 글자수를 넣어줍니다. 현재설정은 리스트20개 , 제목50자 까지 출력시킴
recent_bbs(20,50);
?>



이방법은 전체 게시판을 적용하거나 그룹별로 분리하여 몇개의 게시판을 묶어서 적용 하셔도 됩니다.


메인화면에 내가 작성한 글리스트 보여주기 (여러게시판 지정하기 ) -끝-
 댓글 남기기