홈>컴퓨터이야기
logo_01.gif


TOTAL ARTICLE : 91, TOTAL PAGE : 1 / 5
구분 웹일반 | 태그-소스 | 제로보드 | 그누보드 |
제로보드 : 여러게시판 최근게시물 통합하여 뽑기 2차 수개 버젼입니다.
 오예    | 2004·05·28 09:45 | HIT : 5,156 | 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 태그-소스   [java]마우스 오른쪽버튼 반응없게 (소스보기금지)  오예(쥔장) 04·05·04 1988 134
90 태그-소스   [css]스크롤바 색 바꾸기  오예(쥔장) 04·05·04 2039 137
89 태그-소스   [java]소스보기 금지된곳 소스보기  오예(쥔장) 04·05·04 2135 150
88 제로보드   제로보드 30초 제한 풀기  오예(쥔장) 04·04·14 2514 162
87 제로보드   GD를 이용하여 썸네일을 제로보드 갤러리에 적용시키기 2  오예 04·05·20 3479 254
제로보드   여러게시판 최근게시물 통합하여 뽑기 2차 수개 버젼입니다.  오예 04·05·28 5156 389
85 태그-소스   [태그]그림에서 오른쪽 마우스 작동안되게 하는법  오예 04·06·02 2586 266
84 제로보드   [제로보드]제로보드 최신버전에서 플래시 메뉴 사용할때 새로고침 안되는 문제  오예 04·08·30 4026 299
83 제로보드   [제로보드]새로고침 후에도 현재 페이지 계속 보이기  오예 04·08·30 2884 299
82 태그-소스   [태그]embed 태그의 못든 것  오예 04·10·20 3229 201
81 태그-소스   [태그]object 태그(iframe 대신 사용) 2  오예 04·12·31 2169 113
80 태그-소스   [태그]iframe 태그  오예 04·12·31 2338 111
79 제로보드   게시판에 스팸방지하기  오예 05·01·19 2444 160
78 태그-소스   스크롤바 색상바꾸기  오예 05·02·02 2006 138
77 태그-소스   [태그]소스보기 막기 모음  오예 05·05·04 2113 103
76 태그-소스   [태그]소스보기 막기 강좌  오예 05·05·04 2119 106
75 제로보드   최근 게시물보기 속도 빠르게 만들기  오예 05·06·02 3370 119
74 제로보드   GD게시판의 썸네일을 이용해 겔러리 최근파일 빠르게 보여주기  오예 05·06·08 2008 116
73 제로보드    [팁]게시물 작성시 내용을 복사해주기  오예 05·06·21 2212 128
72 제로보드   제로보드에 웹에디터 사용하기(미니위니)  오예 05·06·21 3040 166
12345
Copyright 1999-2020 Zeroboard / skin by GGAMBO