제로보드 멀티갤러리 통합추출 팁
페이지 정보
본문
통합게시물 추출 소스입니다.
원저작권자는 배상봉 님 이시며, 그 코드를 바탕으로 사용에 대한 추가 설명을 적어봅니다.
두개의 파일에 각각의 부분을 삽입하시면 오케이
최근갤러리를 사용할 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
원저작권자는 배상봉 님 이시며, 그 코드를 바탕으로 사용에 대한 추가 설명을 적어봅니다.
두개의 파일에 각각의 부분을 삽입하시면 오케이
최근갤러리를 사용할 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;
}
자료출처
댓글목록
등록된 댓글이 없습니다.