멀티갤러리 통합추출 팁 > 기술자료 | 해피정닷컴

멀티갤러리 통합추출 팁 > 기술자료

본문 바로가기

사이트 내 전체검색

멀티갤러리 통합추출 팁 > 기술자료

제로보드 멀티갤러리 통합추출 팁

페이지 정보


본문

통합게시물 추출 소스입니다.
원저작권자는 배상봉 님 이시며, 그 코드를 바탕으로 사용에 대한 추가 설명을 적어봅니다.

두개의 파일에 각각의 부분을 삽입하시면 오케이

최근갤러리를 사용할 html 문서와  제로보드/outlogin.php  를 준비합니다.




최근갤러리를 사용할 HTML 파일    :    예) abc.html
<?
  // 제로보드 디렉토리 설정부분        아웃로그인
  // 주의: 아래부분의 설정은 자신의 계정에 맞게 고쳐주세요.
  $_zb_url = "http://junbe.com/zeroboard/";
  $_zb_path = "/home/junbe/zeroboard/";
  include $_zb_path."outlogin.php";
?>
<html>
<head>
<title></title>
</head>

<body>
<?
    //출력하고픈 게시판의 아이디를 적어줍니다. 예: $mb_id = array("gallery1", "gallery2");
    $mb_id = array("gallery1", "gallery2");
    $mb_title = array("통합 추출된 갤러리");  // 타이틀이 필요없으시면 삭제해도 됩니다.
    $mb_conf[sortBy] = 0; //정렬하는 방식을 지정합니다. 0: 시간순  1: 조회순  2: 추천순
    //추출 함수 호출, 설명: recent_gallery(갤러리스킨이름, 제목, 출력할그림수, 그림넓이, 그림높이, 한줄에표시될그림수);
    recent_gallery("default/default_gallery", "갤러리 통합추출", 4);   
?>
</body>
</html>




두번째 수정할 파일  :  제로보드 / outlogin.php
파일을 오픈한후 페이지 끝부분에 아래 코드를 삽입
삽입시 주의사항  ?>  위쪽에 코드를 추가합니다.

//////////////////////////////////////////////////
// 통합겔러리 추출함수
///////////////////////////////////////////////////
       
function recent_gallery($skinname, $title, $num=10, $xsize=80, $ysize=80, $xnum=10) {
global $_zb_path, $_zb_url, $connect, $t_board, $t_comment, $admin_table, $mb_id, $mb_conf, $mb_title;

//////////////////////////////////////
// 스킨의 존재여부 검사

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

//////////////////////////////////////
// 필요한 변수 받아내기

$textlen=100;
$datetype="Y년m월d일";
$id = $mb_id; // id 받기
$idTitle = $mb_title; //각 게시판의 이름 받기   
$cutTime_Mode = $mb_conf[Time_Mode]; // 최근 게시물 시간 범위
$sortBy = $mb_conf[sortBy]; // 0: 시간, 1: 조회, 2: 추천   
$orderBy = $sortBy == 1 ? "hit" : ($sortBy == 2 ? "vote" : "no"); // 데이타베이스 검색어 관련부분
$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;
    $idTitle[$id[$i]] = $mb_title[$i];
}

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

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

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

if($cutTime_Mode == 1){
  $cut_time = time() - 3600 * 24;  // 24시간이내
}else if($cutTime_Mode == 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 and reg_date > $cut_time order by ".$orderBy." desc limit $num";
    $result = mysql_query($query, $connect) or die(mysql_error());
                while($data=mysql_fetch_array($result)){
            $imgList = "";
           
            if(eregi("\\.gif|\\.jpg",$data[file_name1])) $filename = $_zb_url.$data[file_name1];
            elseif(eregi("\\.gif|\\.jpg",$data[file_name2])) $filename = $_zb_url.$data[file_name2];
            else $filename="";

            $ad[$tc][image] = $filename;           
                    $ad[$tc][name] = stripslashes($data[name]);
                    $ad[$tc][subject] = cut_str(stripslashes($data[subject]), $textlen);
                    $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"));
                    $ad[$tc][comment] = $data[total_comment] ? $data[total_comment] : 0;
                               
                    $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];
            $ad[$tc][hit] = $data[hit]; // 2003.06.04 추가, 조회수
            $ad[$tc][vote] = $data[vote]; // 2003.06.04 추가, 추천수
                    $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];
           
            // 정열하기 위한 배열
            if($sortBy == 1){ // 조회별 정열
                $tm[$tc] = $data[hit].".".$tc;
            }else if($sortBy * 1 == 2){ // 추천별 정열
                    $tm[$tc] = $data[vote].".".$tc;
            }else{ //시간별 정열
                            $tm[$tc] = $data[reg_date].".".$tc;               
            }
           
            // 역 참조 만들기
                    $map[$tm[$tc]] = $tc;
                    $tc++;
                }
}

///////////////
// output


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

// 스킨관련 부분
// $mbName, $mbDate, $mbSubject, $mbComment, $mbCategory;

$imgList = "";
$cnt = 0;

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

        $mbComment = $ad[$n][comment];
        $mbName    = $ad[$n][name];
        $mbDate    = $ad[$n][date];
        $mbImage  = $ad[$n][image];
    $mbTitle  = "제목:".$ad[$n][subject]."\\n게시판:".$idTitle[$ad[$n][id]]."\\n카테고리:".$ad[$n] [cate]."\\n작성자:".$ad[$n][name]." \\n작성일:".$ad[$n][date]."\\n조회:".$ad[$n][hit]."\\n코멘트:".$ad[$n][comment]."개 ";
   
        if($mbImage) $imgList.="<a href='".$ad[$n][target]."'><img src='$mbImage' alt='".$mbTitle."' border=1 style=border-color:black width=$xsize height=$ysize vspacing=10 hspacing=10></a>";
        else $imgList.="<a href='".$ad[$n][target]."'><img src='[dir]t.gif' border=1 style=border-color:black width=$xsize height=$ysize vspacing=10 hspacing=10></a>";
           
    $cnt++;
        if($cnt>=$xnum) {
                $imgList.="<br>";
                $cnt=0;
        } else {
                $imgList.=" ";
        }           
   
        $main = $str;
        $main = str_replace("[name]",$mbName,$main);
        $main = str_replace("[date]",$mbDate,$main);
        $main = str_replace("[subject]",$mbSubject,$main);
        $main = str_replace("[comment]",$mbComment,$main);
        $main = str_replace("[category]",$mbCategory,$main);
        $main_data .= "\\n";
        $showList .= $main;
}
        $str = str_replace("[img]", $imgList, $str);
        $str = str_replace("[dir]",$_zb_url."latest_skin/".$skinname."/images/",$str);
        $str = str_replace("[title]","<font color=green><b>".$title."</b></font>",$str);

// 출력
echo $str;
}


자료출처
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&no=4875 

댓글목록

등록된 댓글이 없습니다.


Total 2,634건 126 페이지
  • RSS
기술자료 목록
134
HTML   23326  2006-07-06 18:45 ~ 2010-11-01 00:00  
133
일반   25941  2006-07-06 11:53  
132
제로보드   16451  2006-07-03 10:26  
131
호스팅   13874  2006-07-01 13:07 ~ 2009-03-23 00:00  
130
PHP   14089  2006-07-01 11:56 ~ 2023-09-18 08:16  
129
호스팅   14783  2006-06-30 16:37  
128
PHP   14004  2006-06-30 08:28  
127
MySQL   16480  2006-06-29 21:52  
126
PHP   15146  2006-06-29 21:51 ~ 2014-12-28 00:00  
125
PHP   21904  2006-06-29 20:55 ~ 2022-08-04 18:44  
124
PHP   14405  2006-06-29 20:26 ~ 2013-01-19 00:00  
123
Linux   14990  2006-06-29 19:16  
122
JavaScript   14716  2006-06-29 15:58 ~ 2007-12-29 00:00  
121
JavaScript   17982  2006-06-29 13:26 ~ 2019-08-08 18:44  
120
제로보드   15213  2006-06-28 17:28  
119
JavaScript   19457  2006-06-28 16:03 ~ 2018-09-03 13:26  
118
HTML   14580  2006-06-27 03:40 ~ 2013-05-12 00:00  
열람
제로보드   18247  2006-06-26 19:01  
116
PHP   21595  2006-06-26 17:01 ~ 2021-02-26 16:59  
115
ClassicASP   26608  2006-06-26 10:13  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.