홈>컴퓨터이야기
logo_01.gif


TOTAL ARTICLE : 91, TOTAL PAGE : 1 / 5
구분 웹일반 | 태그-소스 | 제로보드 | 그누보드 |
제로보드 : 여러게시판 최근게시물 통합하여 뽑기 2차 수개 버젼입니다.
 오예    | 2004·05·28 09:45 | HIT : 5,155 | VOTE : 389
여러게시판 최근게시물 통합하여 뽑기 2차 수개 버젼입니다.

생각밖으로 많은 분들이 사용해 주시고 유용한 의견들을 제기하여 주셔서
저도 많이 배우게 되었습니다. 그냥 저의 홈페지에서만 사용하려고 했었는데
다른 분들에게도 도움이 된다니 기쁘기만 합니다.

팁을 올린후 여러 따스한 분들이 제기해주신 건의에 근거하여 여러군데를 고쳐서 새로 올립니다.

고쳐진 부분:
1. 전체리스트보기 채크사항에 따라 zboard 혹은 view로 링크가 가도록 하게 했음
2. 카테고리를 클릭하면 해당 게시판의 카테고리의 게시물로 이동하는 기능 추가
3. 게시물이 적거나 혹은 없을 때 에러나는 부분 수개

추가된(혹은 강화된) 부분:
1. 출력하고픈 게시판 리스트를 함수 밖에서 지정할 수 있도록 함
2. 최근게시물 추출방식을 "오늘0시부터 올라온 게시물", "24시간내에 올라온 게시물"별로 추출이 가능하게 설정함
3. 카테고리 위치에 자기가 원하는 문자열이 나오도록 설정할수 있게 함
4. 리스트 이미지를 지정할 수 있게 함

사용해 주시고 좋은 건의 주신 여러분께 감사를 드립니다. (*꾸벅)

미리보기 주소: http://12345.x-y.net/tellme4.php
3월 1일 [ 게시판 > 카테고리 ] 기능추가한 미리보기: http://12345.x-y.net/samples/tellme5.php


<!-- ################################### -->
<!--
아래부분은 소스 입니다.
새로운 php파일을 만들어 복사 해 넣은 후 실행해보세요.
사용하기전 고쳐야 할 부분:
1. 제로보드의 주소 및 절대경로
2. 게시판 아이디 설정부분 (자신의 게시판 아이디들을 array로 지정하세요)
-->


<?
  // 제로보드 디렉토리 설정부분        아웃로그인
  // 주의: 아래부분의 설정은 자신의 계정에 맞게 고쳐주세요.
  $_zb_url = "제로보드주소";
  $_zb_path = "절대경로";
  include $_zb_path."outlogin.php";
  // 설정부분 끝.

//////////////////////////////////////////////////
// 최근게시물 함수 지정
///////////////////////////////////////////////////
        
function recent_bbs($num=10, $textlen=30, $datetype="Y년m월d일") {
global $_zb_path, $_zb_url, $connect, $t_board, $t_comment, $admin_table, $mb_id, $mb_conf;

//////////////////////////////////////
// 필요한 변수 꺼내기

if(!$mb_conf[icon])
    $ico = "<img src=".$zb_url."images/dot_green.gif width=7 height=7>";
else
    $ico = $mb_conf[icon];

$id = $mb_id; // id 받기
$cutTimeMode = $mb_conf[timemode]; // 최근 게시물 시간 범위
$showCategory = 1 - $mb_conf[nocategory]; //카테고리 보여줄지 말지..  
$myTitle = $mb_conf[mytitle];      

for( $i = 0; $i < sizeof($id); $i++){    
    $setup = mysql_fetch_array(mysql_query("select use_alllist, use_category from $admin_table where name='".$id[$i]."'"));
    if($setup[use_alllist])
        $target[$id[$i]] = "zboard.php?id=";
    else
        $target[$id[$i]] = "view.php?id=";
    if($setup[use_category]) $use_category[$id[$i]] = 1;    
}

//////////////////////////////////////
// 처리 시작

$tc = 0; //전체 데이타 카운터
$icon_new = "<img src='".$_zb_url."images/new_writing.gif'>";
$time_new = time() - 3600 * 24;

/* 뽑을 게시물 시간범위 관련 설정 시작 */
// $cutTimeMode가 1 이면 24시간 이내의 게시물 추출
// $cutTimeMode가 2 이면 오늘 새벽 0시0분부터 올라온 게시물 추출
// $cutTimeMode가 0 혹은 기타 수일 때 그냥 최근올려진 순서로 추출(시간제한 없음)

if($cutTimeMode == 1){
  $cut_time = time() - 3600 * 24;   // 24시간이내
}else if($cutTimeMode == 2){
  $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 is_secret=0 order by no desc limit $num";
    $query = "select * from ".$t_board."_".$id[$i]." where is_secret=0 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*12)
                        $comment_num = "[<font color=red>".$data[total_comment]."</font>]";
                    elseif(time()-$last_comment_time<3600*24)
                        $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]."&category=".$data[category];
                    $ad[$tc][id] = $id[$i];
                    $ad[$tc][no] = $data[no];
                    $category = $data[category];
                    $result_category = mysql_query("select * from zetyx_board_category_".$id[$i]." where no='$category'") or die(mysql_error());
                    $category = mysql_fetch_array($result_category);
                    $ad[$tc][cate] = $category[name];
                    $tm[$tc] = $data[reg_date];
                    $map[$data[reg_date]] = $tc;
                    $tc++;
                }
}
///////////////
// output


// 모든게시물을 시간순으로 정렬
if($tc)    
  sort($tm);

// 최근 게시물 순으로 $num만큼 출력
for($i = sizeof($tm)-1; $i >= sizeof($tm)-$num && $i >= 0; $i--){
$n = $map[$tm[$i]];
print "$ico ";

// 카테고리 표시하지 않기를 선택했다면 카테고리 감추고 자신이 정의한 제목을 앞에 달음
if($showCategory)
        print "[<a href=".$ad[$n][catelink]."><font color=black>".$ad[$n][cate]."</font></a>]";
else
  print $myTitle;

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]."<br>\n";
}

}
?>
    
<!-- ############################################### 브라우저에 출력 부분 ############################################### -->    
    
<html>
<head><title>최근 게시물 쭉 뽑아내기</title></head>
<body>
<br>
일반 사용법.<br>
<br>        
최근 글 10개 출력하기(글 길이를 30자까지 끊기)<br>
<?
    $mb_id = array("gcomm_greeting", "gcomm_relax", "gcomm_discuss", "gcomm_lifestory", "gcomm_album", "gcomm_help","gdata_other","gguest_guest");
    recent_bbs(10,30);
?>
<br>
<br>
<br>    
조금 전문적인 사용방법<br>    
<br>
공지 뽑기(카테고이 안보이기, 카테고리에 지정한 문자열 나오게 하기, 리스트 아이콘 지정하기)<br>
<?
    $mb_id = array("gcomm_notice");   // 공지사항 뽑기
    $mb_conf[nocategory] = 1; // 카테고리 보이지 않음
    $mb_conf[mytitle] = "<b>알림공지</b> "; // 카테고리 자리에 자신이 정의한 글자가 나오게 함
    $mb_conf[icon] = "<img src='".$_zb_url."images/notice.gif' width=12 height=12>"; // 리스트 아이콘 지정
    recent_bbs(2,30);
    $mb_conf[icon] = ""; // 초기화시킴
    $mb_conf[nocategory] = 0; // 초기화시킴
?>
<br>
<br>    
24시간 이내에 올려진 글 뽑기 (최근글 뽑기 시간범위 지정 1)<br>
<?
    $mb_id = array("gcomm_greeting", "gcomm_relax", "gcomm_discuss", "gcomm_lifestory", "gcomm_album", "gcomm_help","gdata_other","gguest_guest");
    $mb_conf[timemode] = 1;
    recent_bbs( 5, 30);
?>
<br>
<br>
오늘 새벽 0시0분부터 올라온 글만 뽑기 (최근글 뽑기 시간범위 지정 2)<br>    
<?
    $mb_conf[timemode] = 2;
    recent_bbs( 6, 30);
?>
<br>
</body>
</html>      
샬롬~
난! 자유인...
  
91 제로보드   미니위니 에디터 FAQ  오예 07·10·31 5560 124
90 그누보드   회원 권한 1 밖에 안나올때  오예 08·03·12 5529 101
제로보드   여러게시판 최근게시물 통합하여 뽑기 2차 수개 버젼입니다.  오예 04·05·28 5155 389
88 제로보드   제로보드 2009.9.22 보안 취약점 패치  오예 09·09·29 4834 291
87 제로보드   [제로보드]제로보드 최신버전에서 플래시 메뉴 사용할때 새로고침 안되는 문제  오예 04·08·30 4024 299
86 제로보드   제로보드 스팸방지기능(ZM_Crypt 2.0)  오예 09·02·06 3888 191
85 제로보드   제로보드 서버 이전 방법  오예 08·09·19 3763 230
84 제로보드   DQ Revolution 1.8.p9 최근갤러리에 썸네일 불러오기  오예 09·03·20 3699 149
83 제로보드   갤러리에 한글이름 적용하기  오예 09·06·29 3634 217
82 제로보드   제로보드 스팸 차단하기  오예 07·05·03 3584 68
81 태그-소스   원하는 시간부터 재생하는 동영상 태그  오예 10·02·03 3500 179
80 제로보드   GD를 이용하여 썸네일을 제로보드 갤러리에 적용시키기 2  오예 04·05·20 3478 254
79 그누보드   비회원일때 글쓰기 버튼 나오게 하는 방법  오예 08·03·12 3476 147
78 태그-소스   이미지맵 링크 점선 없애기  오예 08·07·11 3469 229
77 제로보드   최근 게시물보기 속도 빠르게 만들기  오예 05·06·02 3370 119
76 태그-소스   [태그]embed 태그의 못든 것  오예 04·10·20 3228 201
75 그누보드   로그아웃 후 메인으로 이동하기  오예 10·03·02 3196 184
74 태그-소스   해상도에 따라 변하는 레이어위치 고정하기  오예 06·12·18 3166 55
73 웹일반   FTP로 지워지지 않는 파일 삭제방법  오예 09·09·15 3145 192
72 태그-소스   창크기 고정 소스  오예 09·07·14 3129 196
12345
Copyright 1999-2020 Zeroboard / skin by GGAMBO