인터넷정보

갤러리(최근 or 랜덤) 슬라이드 + 새창(이미지크기로..) + 해당글 이동

알 수 없는 사용자 2007. 10. 13. 15:56

미리보기 :

이미지 새창 - http://oxtag.com/zboard/gallery.php?board_id=gallery&board_title=갤러리 이미지 새창&slide_mode=15&slidespeed=3000&list_num=15&num_rand=2&img_target=1

해당글 이동 - http://oxtag.com/zboard/gallery.php?board_id=gallery&board_title=갤러리 해당글 이동&slide_mode=15&slidespeed=3000&list_num=15&num_rand=2&img_target=2


★ 제로보드 기준 소스입니다. 다른 게시판도 디비 접속부만 수정하시면됨니다. 

<?
// <a href=http://oxtag.com target=_blank>http://oxtag.com</a>
// ★★★ -> 반드시 수정...
// ☆☆☆ -> 수정해도 그만 안해도 그만...
// modify by 선정이 (<a href=http://eschyles.mireene.com) target=_blank>http://eschyles.mireene.com)</a>

// 현재 파일을 제로보드에 업로드 후 iframe 태그 또는 include를 사용하세요.
// ex. <a href=http://oxtag.com/zboard/gallery.php?board_id=gallery&board_title=갤러리&slide_mode=15&slidespeed=3000&list_num=15&num_rand=2&img_target=1 target=_blank>http://oxtag.com/zboard/gallery.php?board_id=gallery&board_title=갤러리&slide_mode=15&slidespeed=3000&list_num=15&num_rand=2&img_target=1</a>
// ex. <a href=http://oxtag.com/zboard/gallery.php?board_id=gallery&board_title=갤러리&slide_mode=15&slidespeed=3000&list_num=15&num_rand=2&img_target=2 target=_blank>http://oxtag.com/zboard/gallery.php?board_id=gallery&board_title=갤러리&slide_mode=15&slidespeed=3000&list_num=15&num_rand=2&img_target=2</a>
// 제로보드 images 폴더에 noimage.gif, gallery_title.gif 파일을 올리세요.

// 보안을 위해서...
if (basename(getenv("PHP_SELF")) == basename(__FILE__)) die;
if(
eregi(":\/\/",$_zb_url)||eregi("\.\.",$_zb_url)) $_zb_url="/zboard/"; // ★★★ 제로보드 경로.. 아래 $_zb_url 과 동일하게.
$_zb_url = "/zboard/";                                // ★★★ 제로보드 경로 (업로드1, 업로드2 경로설정 때문에...) 
$_zb_path = "/home/tagpia/public_html/zboard/";        // ★★★ 제로보드 절대경로 
include_once $_zb_path."outlogin.php"
// if(!$connect) $connect=dbConn();

/*
$board_id = $_GET["$board_id"];
$width = $_GET["$width"];
$height = $_GET["$height"];
$slide_mode = $_GET["$slide_mode"];
$slidespeed = $_GET["$slidespeed"];
$list_num = $_GET["$list_num"];
$num_rand = $_GET["$num_rand"];
$img_target = $_GET["$img_target"];
*/

// ★★★ 추출할 갤러리 게시판 이름(id)을 입력하세요. (주소창에 입력하지 않은 경우..)
if($board_id) { $board_id = $board_id; } else { $board_id = "gallery"; }

// ☆☆☆ 추출할 게시판 이름을 입력하세요. (주소창에 입력하지 않은 경우..)
if($board_title) { $board_title = $board_title; } else { $board_title = "갤러리"; }

// ☆☆☆ 그림 가로사이즈
if($width) { $width = $width; } else { $width = "300"; }

// ☆☆☆ 그림 세로사이즈
if($height) { $height = $height; } else { $height = "225"; }

// ☆☆☆ 슬라이드 방식 : 아래 주석 설명 참고하세요... 아래 15가지 랜덤으로 보이게 할 때는 15
if($slide_mode) { $slide_mode = $slide_mode; } elseif($slide_mode <= "16") { $slide_mode = "15"; } else { $slide_mode = "15"; }

// ☆☆☆ 다음 이미지로 슬라이드되는 시간 : 1000 = 1초
if($slidespeed) { $slidespeed = $slidespeed; } else { $slidespeed = "3000"; }

// ☆☆☆ 추출할 그림 갯수를 입력하세요.
if($list_num) { $list_num = $list_num; } else { $list_num = "10"; }

// ☆☆☆ 게시물 추출시 : 최근등록순 = 1, 램덤추출 = 2
if($num_rand) { $num_rand = $num_rand; } else { $num_rand = "1"; } 

// ☆☆☆ 이미지 클릭시 : 팝업 = 1, 해당글 이동 = 2 
if($img_target) { $img_target = $img_target; } else { $img_target = "1"; }

$c_del=$list_num - 1;                        // 스크립트 안의 slideimages 와 slidecaption, slidelinks의 마지막 붙는 콤마(,) 제거를 위해서..

if($slide_mode==0)         { $slide = "Spiral(Duration=1,gridSizeX=10,gridSizeY=10)"; }         // 중심을 향해서 사각으로 회오리.. 설명이 참... ㅡ_ㅡ;;
elseif($slide_mode==1)         { $slide = "Pixelate(maxSquare=10,duration=1)"; }                 // 픽셀이 분해되서 모이는효과입니다. 
elseif($slide_mode==2)         { $slide = "Fade(duration=1)"; }                                 // 이미지가 겹치면서 샤샥 변하는효과. 
elseif($slide_mode==3)         { $slide = "RandomDissolve(Duration=1,orientation=vertical)"; } // 흩뿌리기 효과. 
elseif($slide_mode==4)         { $slide = "GradientWipe(duration=1)"; }                         // 좌측에서 우측으로 바뀌는 효과.
elseif($slide_mode==5)         { $slide = "Blinds(Duration=1,bands=20)"; }                         // 블라인드 효과
elseif($slide_mode==6)         { $slide = "Checkerboard(Duration=1,squaresX=20,squaresY=20)"; }// 바둑판처럼 바뀌는 효과
elseif($slide_mode==7)         { $slide = "Strips(Duration=1,motion=rightdown)"; }                 // 왼쪽 위에서 오른쪽 아래로 대각선으로 벗기듯이 변하는 효과
elseif($slide_mode==8)         { $slide = "Barn(Duration=1,orientation=vertical)"; }                 // 중간에서 좌우로 열리는 효과
elseif($slide_mode==9)         { $slide = "Iris(Duration=1,motion=out)"; }                         // +(열십자)모양으로 중간에서 사방으로 열리는 효과
elseif($slide_mode==10) { $slide = "Wheel(Duration=1,spokes=12)"; }                         // 바퀴살처럼 그림이 변하는 효과
elseif($slide_mode==11) { $slide = "RadialWipe(Duration=1,wipeStyle=clock)"; }                 // 360도 회전하는 와이프효과
elseif($slide_mode==12) { $slide = "RandomBars(Duration=1,orientation=vertical)"; }         // 불규칙한 세로바가 나타나는 효과
elseif($slide_mode==13) { $slide = "Slide(Duration=1,slideStyle=push)"; }                 // 한장씩 오른쪽에서 왼쪽으로 슬라이드
elseif($slide_mode==14) { $slide = "Stretch(Duration=1,stretchStyle=push)"; }                 // 책장 넘기는 효과
elseif($slide_mode==15) {                                                                 // 위 15가지 랜덤으로 보이게 할 때
mt_srand((double)microtime()*500000); 
$rn=mt_rand(0,14); 
$ri=array("Spiral(Duration=1,gridSizeX=10,gridSizeY=10)","Pixelate(maxSquare=10,duration=1)","Fade(duration=1)","RandomDissolve(Duration=1,orientation=vertical)","GradientWipe(duration=1)","Blinds(Duration=1,bands=20)","Checkerboard(Duration=1,squaresX=20,squaresY=20)","Strips(Duration=1,motion=rightdown)","Barn(Duration=1,orientation=vertical)","Iris(Duration=1,motion=out)","Wheel(Duration=1,spokes=12)","RadialWipe(Duration=1,wipeStyle=clock)","RandomBars(Duration=1,orientation=vertical)","Slide(Duration=1,slideStyle=push)","Stretch(Duration=1,stretchStyle=push)");
$slide=$ri[$rn];
}
else { 
$slide = "Spiral(Duration=1,gridSizeX=10,gridSizeY=10)"; }

if(
$num_rand==1) $num_rand = "order by no desc"
elseif(
$num_rand==2) $num_rand = "order by rand()"
else
$num_rand = "order by no desc"

$setup = mysql_fetch_array(mysql_query("select use_alllist from $admin_table where name='$board_id'"));
if(
$setup[use_alllist]) $target = "zboard.php?id=".$board_id;
else
$target = "view.php?id=".$board_id;

// 해당 게시판의 데이타 뽑아옴.. 
$result=mysql_query("select * from zetyx_board_$board_id $num_rand limit $list_num", $connect);
while(
$data=mysql_fetch_array($result)) { 

/* 해당글의 페이지를 찾기 위한 부분 시작*/
if($data[depth]>0){
$lasttemp=mysql_fetch_array(mysql_query("select count(*) from zetyx_board_$board_id where headnum <= $data[headnum] and arrangenum < $data[arrangenum]"));
}
else{
$lasttemp=mysql_fetch_array(mysql_query("select count(*) from zetyx_board_$board_id where headnum < $data[headnum]"));
}
$lasttotal=$lasttemp[0];
$setup2 = mysql_fetch_array(mysql_query("select memo_num from $admin_table where name='$board_id'"));
$page=(int)($lasttotal/$setup2[memo_num])+1;
/* 해당글의 페이지를 찾기 위한 부분 끝*/

// ☆☆☆ 한개의 글에서 하나만 출력합니다. 우선 순위는 순서대로 이니까 이건 알아서 수정하세요.
// 파일명에 한글이 있을 경우 엑박 방지를 위해서 urlencode..
if(eregi("\.gif|\.jpg|\.bmp",$data[sitelink1])) { // 사이트링크1에 이미지 확장자가 있을때...
$linkUrl=stripslashes($data[sitelink1]);
$linkUrl=eregi("^[0-9a-zA-Z./@~?&=_-]+$",$linkUrl)?$linkUrl:urlencode($linkUrl);
$linkUrl=str_replace("%3A", ":", $linkUrl);
$linkUrl=str_replace("%2F", "/", $linkUrl);
$img[]=$linkUrl;
$caption[]="<a href='".$_zb_url."".$target."&no=".$data[no]."&page=".$page."'>".$data[subject]."</a>";
$link[] = "".$_zb_url."".$target."&no=".$data[no]."&page=".$page."";
}
elseif(
eregi("\.gif|\.jpg|\.bmp",$data[sitelink2])) { // 사이트링크2에 이미지 확장자가 있을때...
$linkUrl=stripslashes($data[sitelink2]);
$linkUrl=eregi("^[0-9a-zA-Z./@~?&=_-]+$",$linkUrl)?$linkUrl:urlencode($linkUrl);
$linkUrl=str_replace("%3A", ":", $linkUrl);
$linkUrl=str_replace("%2F", "/", $linkUrl);
$img[]=        $linkUrl;
$caption[]="<a href='".$_zb_url."".$target."&no=".$data[no]."&page=".$page."'>".$data[subject]."</a>";
$link[] = "".$_zb_url."".$target."&no=".$data[no]."&page=".$page."";
}
elseif(
eregi("\.gif|\.jpg|\.bmp",$data[file_name1])) { // 업로드1에 이미지 확장자가 있을때...
$file_name=stripslashes($data[file_name1]);
$file_name=eregi("^[0-9a-zA-Z./@~?&=_-]+$",$file_name)?$file_name:urlencode($file_name);
$file_name=str_replace("%3A", ":", $file_name);
$file_name=str_replace("%2F", "/", $file_name);
$img[] = $_zb_url.$file_name;  // DQ엔진의 썸네일을 사용하고자 하시면 이 줄을 주석처리하고 밑에 줄을 주석처리 해제하세요.
//$img[] = "".$_zb_url."data/$board_id/small_".$data[no].".thumb";
$caption[]="<a href='".$_zb_url."".$target."&no=".$data[no]."&page=".$page."'>".$data[subject]."</a>";
$link[] = "".$_zb_url."".$target."&no=".$data[no]."&page=".$page."";
}
elseif(
eregi("\.gif|\.jpg|\.bmp",$data[file_name2])) { // 업로드2에 이미지 확장자가 있을때...
$file_name=stripslashes($data[file_name2]);
$file_name=eregi("^[0-9a-zA-Z./@~?&=_-]+$",$file_name)?$file_name:urlencode($file_name);
$file_name=str_replace("%3A", ":", $file_name);
$file_name=str_replace("%2F", "/", $file_name);
$img[] = $_zb_url.$file_name;  // DQ엔진의 썸네일을 사용하고자 하시면 이 줄을 주석처리하고 밑에 줄을 주석처리 해제하세요.
//$img[] = "".$_zb_url."data/$board_id/small_".$data[no].".thumb";
$caption[]="<a href='".$_zb_url."".$target."&no=".$data[no]."&page=".$page."'>".$data[subject]."</a>";
$link[] = "".$_zb_url."".$target."&no=".$data[no]."&page=".$page."";
}
else {
$img[]="".$_zb_url."images/noimage.gif";// 이미지가 없는 게시물 일때..
$caption[]="<a href='".$_zb_url."".$target."&no=".$data[no]."&page=".$page."'>".$data[subject]."</a>";
$link[] = "".$_zb_url."".$target."&no=".$data[no]."&page=".$page."";


?>

<script> 
<!-- 
// 이미지 사이의 시간 간격(1000 = 1초) 
var slidespeed=<?=$slidespeed;?>;
// 보여줄 이미지들의 경로를 갯수만큼 만들어줌 
var slideimages=new Array(<? for($i=0; $i <= $c_del; $i++){ echo "\"".$img[$i]."\""; if($i < $c_del) echo ","; } ?>);
// 각 이미지들의 제목을 갯수만큼 만들어줌 
var slidecaption=new Array(<? for($i=0; $i <= $c_del; $i++){ echo "\"".$caption[$i]."\""; if($i < $c_del) echo ","; } ?>);

<? if($img_target == "1") { ?>
// 각 이미지의 원본글의 주소를 만들어줌 
var slidelinks=new Array(<? for($i=0; $i <= $c_del; $i++){ echo "\"".$img[$i]."\""; if($i < $c_del) echo ","; } ?>); 
<? 
} else {
// }  elseif($img_target == "1") { 
?>
// 각 이미지들의 링크를 갯수만큼 만들어줌 
var slidelinks=new Array(<? for($i=0; $i <= $c_del; $i++){ echo "\"".$link[$i]."\""; if($i < $c_del) echo ","; } ?>); 
<? } ?>

var imageholder=new Array();
var ie55=window.createPopup;
for (i=0;i<slideimages.length;i++){ 
imageholder[i]=new Image();
imageholder[i].src=slideimages[i];
}

function gotoshow(what) { 

<? if($img_target == "1") { ?>

var imgwin = window.open('','','scrollbars=no,status=no,toolbar=no,resizable=1,location=no,menu=no,width=10,height=10'); 
imgwin.document.open(); 
imgwin.document.write("<html>\n"); 
imgwin.document.write("<title>♡ 갤러리 ♡</title>\n"); 
imgwin.document.write("<META HTTP-EQUIV='imagetoolbar' CONTENT='no'>\n"); 
imgwin.document.write("<script LANGUAGE=JavaScript>\n"); 

imgwin.document.write("function fitwin(){\n"); 
imgwin.document.write(" window.moveTo!((window.screen.width-document.body.clientWidth)/2,(window.screen.height-document.body.clientHeight)/2-45);\n"); 
imgwin.document.write("}\n"); 

imgwin.document.write("var isNav4, isIE4;\n"); 
imgwin.document.write("var windowX, windowY;\n"); 
imgwin.document.write("var bLargeImage = 0;\n"); 
imgwin.document.write("var x,y;\n"); 

imgwin.document.write("if (parseInt(navigator.appVersion.charAt(0)) >= 4)\n"); 
imgwin.document.write("{\n"); 
imgwin.document.write("isNav4 = (navigator.appName == 'Netscape') ? 1 : 0;\n"); 
imgwin.document.write("isIE4 = (navigator.appName.indexOf('Microsoft') != -1) ? 1 : 0;\n"); 
imgwin.document.write("}\n"); 

imgwin.document.write("function fitWindowSize()\n"); 
imgwin.document.write("{\n"); 
imgwin.document.write("if (isNav4) {\n"); 
imgwin.document.write("window.innerWidth = document.layers[0].document.images[0].width;\n"); 
imgwin.document.write("window.innerHeight = document.layers[0].document.images[0].height;\n"); 
imgwin.document.write("}\n"); 
imgwin.document.write("if (isIE4) {\n"); 
imgwin.document.write("window.resizeTo!(150, 150);\n"); 
imgwin.document.write("width = 150 - (document.body.clientWidth - document.images[0].width);\n"); 
imgwin.document.write("height = 150 - (document.body.clientHeight - document.images[0].height)\n"); 
imgwin.document.write("windowX = (window.screen.width-width)/2;\n"); 
imgwin.document.write("windowY = (window.screen.height-height)/2;\n"); 
imgwin.document.write("if(width>screen.width){\n"); 
imgwin.document.write("width = screen.width;\n"); 
imgwin.document.write("windowX = 0;\n"); 
imgwin.document.write("bLargeImage = 1;\n"); 
imgwin.document.write("}\n"); 
imgwin.document.write("if(height>screen.height - 45){\n"); 
imgwin.document.write("height = screen.height - 55;\n"); 
imgwin.document.write("windowY = 0;\n"); 
imgwin.document.write("bLargeImage = 1;\n"); 
imgwin.document.write("}\n"); 
imgwin.document.write("x = width/2;\n"); 
imgwin.document.write("y = height/2;\n"); 
imgwin.document.write("window.moveTo!(windowX,windowY);\n"); 
imgwin.document.write("window.resizeTo!(width, height);\n"); 
imgwin.document.write("}\n"); 
imgwin.document.write("}\n"); 

imgwin.document.write("function move() {\n"); 
imgwin.document.write("if(bLargeImage)\n"); 
imgwin.document.write("window.scroll(window.event.clientX - 45,window.event.clientY - 55);\n"); 
imgwin.document.write("}\n"); 

imgwin.document.write("</script>\n"); 
imgwin.document.write("<body onclick='window.close()' oncontextmenu='return false' ondragstart='return false' onkeydown='return false' onselectstart='return false' topmargin='0' onLoad='fitwin();fitWindowSize();' onmousemove='move();' leftmargin='0' marginwidth='0' marginheight='0''>\n"); 
imgwin.document.write("<center><a href=# onfocus=this.blur() style='cursor:move'>\n"); 
imgwin.document.write("<img src='"+slidelinks[whichlink]+"' border=0 onerror=\"this.src='<?=$zb_url?>images/noimage.gif';\">\n"); 
imgwin.document.write("</a></center>\n"); 
imgwin.document.write("</body>\n"); 
imgwin.document.write("</html>\n"); 
imgwin.document.close(); 

<? 
} else {
// }  elseif($img_target == "1") { 
?>

window.open(slidelinks[whichlink], "_self", "");

<? } ?>


function showPicture(src,caption) {
window.location!=src;
return;
}

//-->
</script>

<style>
body,a {font-size:9pt;text-decoration:none;color:#000000;}
a.hover {font-size:9pt;text-decoration:none;color:#FF9900;}
.title { background-color:#CAD9BC; } /* 타이틀공간 백그라운드 색상 */
.content { background-color:#F0F0F0; } /* 그림공간 백그라운드 색상 */
.border { background-color:#E0E0E0; } /* 테두리 색상 */
</style>

<table cellpadding=0 cellspacing=0 border=0 width=<?=$width+12;?> align=center>
  <tr height=1><td rowspan=3 width=1></td><td width=1></td><td width=1></td><td class=title></td><td width=1></td><td width=1></td><td rowspan=3 width=1></td></tr>
  <tr height=1><td colspan=2 class=title></td><td class=title></td><td colspan=2 class=title></td></tr>
  <tr height=1><td class=title></td><td colspan=3 class=title></td><td class=title></td></tr>
</table>

<table cellpadding=0 cellspacing=0 border=0 class=title width=<?=$width+12;?> align=center>
  <tr>
<td width=1 class=title></td>
<td height='27' align=center valign=top>  </td>
<td><img src=<?=$_zb_url?>images/gallery_title.gif><br></td>
<td align=left width=100%> <a href='<?=$_zb_url?>zboard.php?id=<?=$board_id;?>'><b><?=$board_title;?></a></td>
<td width=1 class=title></td>
</tr>
</table>

<table cellpadding=0 cellspacing=0 border=0 class=content width=<?=$width+12;?> align=center>
  <tr><td width=1 class=border></td><td align=center valign=top>

<TABLE border=0 cellspacing=0 cellpadding=0 width=<?=$width+10;?>>
     <tr>
        <td height=<?=$height+5;?> align=center>
          <a href="javascript:gotoshow()" onfocus=blur()><img src="<?=$img[0]?>" name="slide" style="filter:progid:DXImageTransform.Microsoft.<?=$slide?>;border-color:aaaaaa" border=1 width="<?=$width?>" height="<?=$height?>" onerror="this.src='<?=$_zb_url?>images/noimage.gif';" GALLERYIMG="no"></a><br>
        </td>
     </tr>
     <tr>
        <td height=25 align=center>
          <font id='img_caption' style="font-size:9pt; color:#000000;" align=center>캡션이미지 위치입니다.</font>
        </td>
     </tr>
</TABLE>

        </td><td width=1 class=border></td>
    </tr>
</table>

<table cellpadding=0 cellspacing=0 border=0 width=312 align=center>
  <tr height=1><td rowspan=3 width=1></td><td rowspan=2 width=1 class=border></td><td colspan=3 class=content></td><td rowspan=2 width=1 class=border></td><td rowspan=3 width=1></td></tr>
  <tr height=1><td width=1 class=border></td><td class=content></td><td width=1 class=border></td></tr>
  <tr height=1><td colspan=2></td><td class=border></td><td colspan=2></td></tr>
</table>

<script language="JavaScript1.1"> 
<!-- 
var whichlink=0; 
var whichimage=0; 
var pixeldelay=(ie55)? document.images.slide.filters[0].duration*1000 : 0; 
function slideit(){ 
if (!document.images) return 
if (ie55) document.images.slide.filters[0].apply();
document.images.slide.src=imageholder[whichimage].src;
img_caption.innerHTML = slidecaption[whichimage];
if (ie55) document.images.slide.filters[0].play();
whichlink=whichimage;
whichimage=(whichimage<slideimages.length-1)? whichimage+1 : 0;
setTimeout("slideit()",slidespeed+pixeldelay);

slideit();
//--> 
</script>

반응형