묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
팝업창 2개띄우는 방법 좀 알고 싶습니다.
2007.09.13 13:17
공지를 팝업창으로 띄우고자합니다.
공지 게시판이 두개인 관계로 따로 따로 동시애 두개를 띄우고자 합니다.
아래소스로 1개는 팝업이 되는데 두개를 동시애 띄우고자하니까 계속에로가 납니다.
두개를 동시에 띄우는 방법이 있으면 알려주시기 바랍니다.
</body>
<?include "/home/user/public_html/util/popup/popup.php";?>
</html>
============= popup.php ===========
<?
// 공지창을 띄울 페이지에 인클루드 시키시면 됩니다.
//////////////////////////////// 수정할 부분 ////////////////////////////////
$db_id = ""; // DB 아이디
$db_pass = ""; // DB 비밀번호
$db_name = ""; // DB 이름
$board_id = ""; // 공지사항 게시판 아이디
$zboard_url = "http://domain.com/zboard/"; // 제로보드 URL
//$win_width = 300; // 팝업창 가로(픽셀)
//$win_height = 400; // 팝업창 세로(픽셀)
$subject_cut = 50; // 제목 잘릴 길이
$memo_cut = 300; // 내용 잘릴 길이
//////////////////////////// 여기까지 수정 끝. //////////////////////////////
mysql_connect("localhost",$db_id,$db_pass) || die("sql에 연결실패");
mysql_select_db($db_name);
// 최근 게시물 하나만 팝업.(팝업 안열리게 하려면 게시물을 삭제해야 되므로 불편함)
//$result=mysql_query("select * from zetyx_board"."_$board_id order by no desc limit 1") or error(mysql_error());
// 공지사항에 체크된 최근 게시물 한개만 팝업 공지창 열리고...체크 해제하면 안 뜨게 하시려는 경우.(편리함)
$result=mysql_query("select * from zetyx_board"."_$board_id where headnum<=-2000000000 order by headnum asc limit 1") or error(mysql_error());
$rows = mysql_num_rows($result);
$notice = mysql_fetch_array($result);
$now_date_time = mktime();
function cut_text($msg,$cut_size) { // 글 자르기 함수 lib.php의 str_cut과 동일, outlogin 사용과의 충돌을 피함
if($cut_size<=0) return $msg;
if(ereg("[re]",$msg)) $cut_size=$cut_size+4;
for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++;
$cut_size=$cut_size+(int)$han*0.6;
$point=1;
for ($i=0;$i<strlen($msg);$i++) {
if ($point>$cut_size) return $pointtmp."...";
if (ord($msg[$i])<=127) {
$pointtmp.= $msg[$i];
if ($point%$cut_size==0) return $pointtmp."...";
} else {
if ($point%$cut_size==0) return $pointtmp."...";
$pointtmp.=$msg[$i].$msg[++$i];
$point++;
}
$point++;
}
return $pointtmp;
}
//if($rows && ($now_date_time - $notice[reg_date] <= 24*3600)){
if($rows && ($notice[no])){
$no = $notice[no];
$subject = stripslashes(cut_text($notice[subject],$subject_cut));
$memo = stripslashes(cut_text($notice[memo],$memo_cut));
$memo = stripslashes(str_replace("n","<br>",$memo));
$memo = stripslashes(str_replace("r","",$memo));
$memo = addslashes($memo);
// $memo_temp = "<a href=$zboard_url";
// $memo = $memo_temp."view.php?id=$board_id&no=$no target=window.opener onclick=window.close();>$memo</a>";
// $more = "<a href=/zboard/view.php?id=$board_id&no=$no target=opener.location.href onclick=window.close();>more</a>";
$more = ""/zboard/view.php?id=$board_id&no=$no";";
$reg_date = date("Y-m-d",$notice[reg_date]);
if($notice[file_name1])
$file1 = "<a href=$zboard_url$notice[file_name1] target=_blank>파일1</a> ";
if($notice[file_name2])
$file2 = "<a href=$zboard_url$notice[file_name2] target=_blank>파일2</a> ";
if($notice[sitelink1])
$link1 = "<a href=$notice[sitelink1] target=_blank>링크1</a> ";
if($notice[sitelink2])
$link2 = "<a href=$notice[sitelink2] target=_blank>링크2</a> ";
//echo("$memo");
?>
<script language='javascript'>
function getCookie(name)
{
var Found ;
Found = false ;
var start, end ;
var i = 0 ;
// cookie 문자열 전체를 검색
while(i <= document.cookie.length){
start = i ;
end = start + name.length ;
// name과 동일한 문자가 있다면
if(document.cookie.substring(start, end) == name) {
//Found = true ;
return true;
break ;
}
i++ ;
}
// name 문자열을 cookie에서 찾았다면
if(Found == true)
{
start = end + 1 ;
end = document.cookie.indexOf(';', start) ;
// 마지막 부분이라는 것을 의미(마지막에는 ";"가 없다)
if(end < start)
end = document.cookie.length ;
// name에 해당하는 value값을 추출하여 리턴한다.
return document.cookie.substring(start, end) ;
} else {
// 찾지 못했다면
return '' ;
}
}
// $board_id,$no
if (getCookie('<?=$no?>') != true) {
popwin = window.open('','_blank','left=0, top=0,menubar=no,toolbar=no,directories=no,location=no,status=no,scrollbars=yes,resizable=yes,width=450,height=350')
popwin.document.write('<html><head><title>공/지/사/항 :: domain.com ::</title>n')
popwin.document.write('<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">n')
popwin.document.write('<script>function ss_more(){opener.parent.location=<?=$more?> window.close();}</script>n')
popwin.document.write('<script language="javascript">n')
popwin.document.write('function controlCookie(elemnt) {n')
popwin.document.write('setCookie("<?=$no?>","y", 1)n')
popwin.document.write('self.close();n')
popwin.document.write(' }n')
popwin.document.write('function setCookie(name, value, expire) {n')//쿠키 생성 함수
popwin.document.write('var expire_date = new Date()n')
popwin.document.write('expire_date = new Date(expire_date.getTime() + 60*60*24*1000)n')
popwin.document.write('document.cookie = name + "=" + escape(value) + "; expires=" + expire_date.toGMTString() +"; path=/"; n')
popwin.document.write('self.close();n')
popwin.document.write(' }n')
popwin.document.write('function clearCookie(name) {n')//쿠키 소멸 함수
popwin.document.write('var today = new Date()n')
popwin.document.write('var expire_date = new Date(today.getTime() - 60*60*24*1000)n')//어제 날짜를 쿠키 소멸 날짜로 설정한다.
popwin.document.write('document.cookie = name + "= " + "; expires=" + expire_date.toGMTString()n')
popwin.document.write('}n')
popwin.document.write('</script>n')
popwin.document.write('</head>n')
popwin.document.write('<body bgcolor=white text=black link=blue vlink=purple alink=red topmargin=5 marginheight=5 leftmargin=5 marginwidth=5>n')
popwin.document.write('<table align=center cellpadding=0 cellspacing=0 width=100% height=100%><tr><td width=100% height=100%>n')
popwin.document.write('<table align=center border=1 cellspacing=0 width=100% height=100% bordercolor=#CCCCCC bordercolordark=white bordercolorlight=#CCCCCC>n')
popwin.document.write('<tr><td width=100% height=30 bgcolor=#E2E2C8 align=center><b><font size=3 color=blue><?=$subject?></font></b></td></tr>n')
popwin.document.write('<tr><td width=100% height=20 valign=top align=right><span style=font-size:9pt;><font color=maroon><?=$file1?><?=$file2?><?=$link1?><?=$link2?></font> <font color=#333333><b>Date : <?=$reg_date?></b></font></span> </font></td></tr>n')
popwin.document.write('<tr><td width=100% valign=top style=padding:5;><font style=font-size:11pt;><?=$memo?></font><br><br><div align=right><a href="javascript:ss_more();"><font color=#0066cc style=text-decoration:none;>☞ <b>more</b></font></a> </div></td></tr>n')
popwin.document.write('<tr><td width=100% height=20 align=center><font style=font-size:11pt;><b>하루 동안 이창 열지 않음</b> </font><input type=checkbox onClick="controlCookie(this);"> <a href="#" onClick=window.close();><img src=/images/close2.gif width=62 height=22 align=absmiddle border=0></a><!--<input type=button value="닫기" onclick=window.close();>--></td></tr>n')
popwin.document.write('</table></td></tr></table></body></html>n')
}
</script>
<?}else{?><?}?>
공지 게시판이 두개인 관계로 따로 따로 동시애 두개를 띄우고자 합니다.
아래소스로 1개는 팝업이 되는데 두개를 동시애 띄우고자하니까 계속에로가 납니다.
두개를 동시에 띄우는 방법이 있으면 알려주시기 바랍니다.
</body>
<?include "/home/user/public_html/util/popup/popup.php";?>
</html>
============= popup.php ===========
<?
// 공지창을 띄울 페이지에 인클루드 시키시면 됩니다.
//////////////////////////////// 수정할 부분 ////////////////////////////////
$db_id = ""; // DB 아이디
$db_pass = ""; // DB 비밀번호
$db_name = ""; // DB 이름
$board_id = ""; // 공지사항 게시판 아이디
$zboard_url = "http://domain.com/zboard/"; // 제로보드 URL
//$win_width = 300; // 팝업창 가로(픽셀)
//$win_height = 400; // 팝업창 세로(픽셀)
$subject_cut = 50; // 제목 잘릴 길이
$memo_cut = 300; // 내용 잘릴 길이
//////////////////////////// 여기까지 수정 끝. //////////////////////////////
mysql_connect("localhost",$db_id,$db_pass) || die("sql에 연결실패");
mysql_select_db($db_name);
// 최근 게시물 하나만 팝업.(팝업 안열리게 하려면 게시물을 삭제해야 되므로 불편함)
//$result=mysql_query("select * from zetyx_board"."_$board_id order by no desc limit 1") or error(mysql_error());
// 공지사항에 체크된 최근 게시물 한개만 팝업 공지창 열리고...체크 해제하면 안 뜨게 하시려는 경우.(편리함)
$result=mysql_query("select * from zetyx_board"."_$board_id where headnum<=-2000000000 order by headnum asc limit 1") or error(mysql_error());
$rows = mysql_num_rows($result);
$notice = mysql_fetch_array($result);
$now_date_time = mktime();
function cut_text($msg,$cut_size) { // 글 자르기 함수 lib.php의 str_cut과 동일, outlogin 사용과의 충돌을 피함
if($cut_size<=0) return $msg;
if(ereg("[re]",$msg)) $cut_size=$cut_size+4;
for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++;
$cut_size=$cut_size+(int)$han*0.6;
$point=1;
for ($i=0;$i<strlen($msg);$i++) {
if ($point>$cut_size) return $pointtmp."...";
if (ord($msg[$i])<=127) {
$pointtmp.= $msg[$i];
if ($point%$cut_size==0) return $pointtmp."...";
} else {
if ($point%$cut_size==0) return $pointtmp."...";
$pointtmp.=$msg[$i].$msg[++$i];
$point++;
}
$point++;
}
return $pointtmp;
}
//if($rows && ($now_date_time - $notice[reg_date] <= 24*3600)){
if($rows && ($notice[no])){
$no = $notice[no];
$subject = stripslashes(cut_text($notice[subject],$subject_cut));
$memo = stripslashes(cut_text($notice[memo],$memo_cut));
$memo = stripslashes(str_replace("n","<br>",$memo));
$memo = stripslashes(str_replace("r","",$memo));
$memo = addslashes($memo);
// $memo_temp = "<a href=$zboard_url";
// $memo = $memo_temp."view.php?id=$board_id&no=$no target=window.opener onclick=window.close();>$memo</a>";
// $more = "<a href=/zboard/view.php?id=$board_id&no=$no target=opener.location.href onclick=window.close();>more</a>";
$more = ""/zboard/view.php?id=$board_id&no=$no";";
$reg_date = date("Y-m-d",$notice[reg_date]);
if($notice[file_name1])
$file1 = "<a href=$zboard_url$notice[file_name1] target=_blank>파일1</a> ";
if($notice[file_name2])
$file2 = "<a href=$zboard_url$notice[file_name2] target=_blank>파일2</a> ";
if($notice[sitelink1])
$link1 = "<a href=$notice[sitelink1] target=_blank>링크1</a> ";
if($notice[sitelink2])
$link2 = "<a href=$notice[sitelink2] target=_blank>링크2</a> ";
//echo("$memo");
?>
<script language='javascript'>
function getCookie(name)
{
var Found ;
Found = false ;
var start, end ;
var i = 0 ;
// cookie 문자열 전체를 검색
while(i <= document.cookie.length){
start = i ;
end = start + name.length ;
// name과 동일한 문자가 있다면
if(document.cookie.substring(start, end) == name) {
//Found = true ;
return true;
break ;
}
i++ ;
}
// name 문자열을 cookie에서 찾았다면
if(Found == true)
{
start = end + 1 ;
end = document.cookie.indexOf(';', start) ;
// 마지막 부분이라는 것을 의미(마지막에는 ";"가 없다)
if(end < start)
end = document.cookie.length ;
// name에 해당하는 value값을 추출하여 리턴한다.
return document.cookie.substring(start, end) ;
} else {
// 찾지 못했다면
return '' ;
}
}
// $board_id,$no
if (getCookie('<?=$no?>') != true) {
popwin = window.open('','_blank','left=0, top=0,menubar=no,toolbar=no,directories=no,location=no,status=no,scrollbars=yes,resizable=yes,width=450,height=350')
popwin.document.write('<html><head><title>공/지/사/항 :: domain.com ::</title>n')
popwin.document.write('<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">n')
popwin.document.write('<script>function ss_more(){opener.parent.location=<?=$more?> window.close();}</script>n')
popwin.document.write('<script language="javascript">n')
popwin.document.write('function controlCookie(elemnt) {n')
popwin.document.write('setCookie("<?=$no?>","y", 1)n')
popwin.document.write('self.close();n')
popwin.document.write(' }n')
popwin.document.write('function setCookie(name, value, expire) {n')//쿠키 생성 함수
popwin.document.write('var expire_date = new Date()n')
popwin.document.write('expire_date = new Date(expire_date.getTime() + 60*60*24*1000)n')
popwin.document.write('document.cookie = name + "=" + escape(value) + "; expires=" + expire_date.toGMTString() +"; path=/"; n')
popwin.document.write('self.close();n')
popwin.document.write(' }n')
popwin.document.write('function clearCookie(name) {n')//쿠키 소멸 함수
popwin.document.write('var today = new Date()n')
popwin.document.write('var expire_date = new Date(today.getTime() - 60*60*24*1000)n')//어제 날짜를 쿠키 소멸 날짜로 설정한다.
popwin.document.write('document.cookie = name + "= " + "; expires=" + expire_date.toGMTString()n')
popwin.document.write('}n')
popwin.document.write('</script>n')
popwin.document.write('</head>n')
popwin.document.write('<body bgcolor=white text=black link=blue vlink=purple alink=red topmargin=5 marginheight=5 leftmargin=5 marginwidth=5>n')
popwin.document.write('<table align=center cellpadding=0 cellspacing=0 width=100% height=100%><tr><td width=100% height=100%>n')
popwin.document.write('<table align=center border=1 cellspacing=0 width=100% height=100% bordercolor=#CCCCCC bordercolordark=white bordercolorlight=#CCCCCC>n')
popwin.document.write('<tr><td width=100% height=30 bgcolor=#E2E2C8 align=center><b><font size=3 color=blue><?=$subject?></font></b></td></tr>n')
popwin.document.write('<tr><td width=100% height=20 valign=top align=right><span style=font-size:9pt;><font color=maroon><?=$file1?><?=$file2?><?=$link1?><?=$link2?></font> <font color=#333333><b>Date : <?=$reg_date?></b></font></span> </font></td></tr>n')
popwin.document.write('<tr><td width=100% valign=top style=padding:5;><font style=font-size:11pt;><?=$memo?></font><br><br><div align=right><a href="javascript:ss_more();"><font color=#0066cc style=text-decoration:none;>☞ <b>more</b></font></a> </div></td></tr>n')
popwin.document.write('<tr><td width=100% height=20 align=center><font style=font-size:11pt;><b>하루 동안 이창 열지 않음</b> </font><input type=checkbox onClick="controlCookie(this);"> <a href="#" onClick=window.close();><img src=/images/close2.gif width=62 height=22 align=absmiddle border=0></a><!--<input type=button value="닫기" onclick=window.close();>--></td></tr>n')
popwin.document.write('</table></td></tr></table></body></html>n')
}
</script>
<?}else{?><?}?>
사용방법 좀 알려주세요.
필요했던 소스인데..
어떻게 해야 할 지 모르겠네요. 부탁드립니다.