길

[2.65] popup 관리

· 2003-08-31 (일) 21:29:33 · 2508 · 19
/*
* open popup windows function
*/
function open_popup($popup_board = 'popup'){
global $cfg, $gnu_path, $HTTP_COOKIE_VARS;
$popup_path = "{$gnu_path}popup/";

$sql_popup = " SELECT * FROM {$cfg[write_table_prefix]}$popup_board WHERE wr_notice = '-1' ";
$result_popup = sql_query_error($sql_popup);

for ($i = 0, $popup_no = 1; $row_popup = mysql_fetch_array($result_popup); $i++, $popup_no++ ) {
$top_m = $i * 30;
$left_m = $i * 30;

if(!$HTTP_COOKIE_VARS[popnews.$row_popup[wr_id]] || ($HTTP_COOKIE_VARS[popnews.$row_popup[wr_id]] != "no")) {
echo"
<SCRIPT LANGUAGE=\"JavaScript\">
<!--
window.open('{$popup_path}popup_view.php?bo_table=$popup_board&wr_id=$row_popup[wr_id]','popupnews$i', 'scrollbars=no,status=yes,resizable=no,width=540,height=680,top=$top_m,left=$left_m');
//-->
</SCRIPT>
";
}
}
}
////////////////////////////////////////////////////////////////////////////////


////////////////////////// popup_view.php /////////////////////////////////////
<?php
$gnu_path = "./../";
$popup_path = $gnu_path . "popup/";

include($gnu_path . 'config.php');
include($gnu_path . 'lib.php');

$html_title = "▒ POPUP NEWS ▒";
$page_width = "100%";
include($gnu_path . 'head.sub.php');
?>

<script language="JavaScript">
<!--
function setCookie( name, value, expiredays ) {
var todayDate = new Date();
todayDate.setDate( todayDate.getDate() + expiredays );
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}
function closeWin() {
if ( document.popup.notice.checked )
setCookie( "popnews<?=$wr_id?>", "no" , 1);
self.close();
}
// -->
</script>

<iframe src="<?=$popup_path."popup_view2.php?bo_table=$bo_table&wr_id=$wr_id"?>" width=100% height=530 scrolling=yes frameborder=0></iframe>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form name="popup">
<tr>
<td align="center" height="20" valign="bottom">
<input type="checkbox" name="notice" value="no">
이 창을 다시 열지 않음 <a href="javascript:history.onclick=closeWin()"><img src="<?=$popup_path?>close.gif" width="40" height="11" align="absMiddel" border=0 alt="닫기"></a></td>
</tr>
</form>
</table>
<?
include($gnu_path . 'tail.sub.php');
?>
////////////////////////////////////////////////////////////////////////////////


////////////////////////// popup_view2.php ////////////////////////////////////
<?php
$gnu_path = "./../";
$popup_path = $gnu_path . "popup/";

include($gnu_path . 'config.php');
include($gnu_path . 'lib.php');

$sql = " SELECT * FROM {$cfg[write_table_prefix]}$bo_table WHERE wr_id = $wr_id ";
$row = sql_fetch_array($sql);
?>
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=euc-kr'>
<title>▒ POPUP NEWS ▒</title>
<link rel='stylesheet' href='<?=$gnu_path?>style.css' type='text/css'>
</head>
<body leftmargin='0' topmargin='0'>

<TABLE border=0 cellspacing=0 cellpadding=5 id=wr_content width=100% height=100%>
<TR>
<TD valign=top>
<?=$row[wr_content]?>
</TD>
</TR>
</TABLE>

</BODY>
</HTML>
/////////////////////////////////////////////////////////////////////////////////


//사용법:
맨위의 함수를 libdev.php에 추가합니다.
아래의 두 파일을 만들어서 $popup_path에 지정해준 폴더에 넣습니다.
index.php의 처음이나 마지막에서 함수를 호출합니다.

// 기능:
팝업을 관리합니다.
여러개의 팝업창을 관리할 수 있습니다.
팝업을 띄우고 안띄우고의 결정은 notice에 체크를 하느냐 안하느냐 입니다.

//추신:
지금 사용하는 것을 마구 편집해서 급하게 올립니다. 따라서 오류가 있을 수 있습니다.

//수정:
1. 쿠키이름이 구울때랑 읽어올때 다르게 지정되어 있는 것을 수정했습니다.
2. global 선언에 $HTTP_COOKIE_VARS를 추가 했습니다.

//추신2:
팁텍이라고 올리면서 실행되지도 못하고 테스트도 안하고 올린점 사죄드립니다.
앞으로는 철저한 테스트를 거쳐 올리도록 하겠습니다.
죄송합니다. ^^;

첨부파일

popup.zip (2.5 KB) 68회 2004-02-18 22:21
|

댓글 19개

넘 감사합니다...
이제는 잘 되는군요.....
잘 사용하겠습니다...*^^*
2003-09-01 (월) 13:37:05
global $cfg, $gnu_path, $HTTP_COOKIE_VARS;
글로벌 선언에 추가입니다.
인클루드 파일로 작성된 것을 함수로 바꾸면서...

앞으로는 확실하게 테스트후 올리도록하겠습니다. --;
죄송합니다. - -;
2003-09-01 (월) 11:10:16
--;
지금 수업중이라... 잠시 후에 다시 수정해 보겠습니다.
ㅜ,ㅜ;;
그래도 안되는군요....
2003-09-01 (월) 10:27:51
>>//if(!$HTTP_COOKIE_VARS[popup.$row_popup[wr_id]] || ($HTTP_COOKIE_VARS[popup.$row_popup[wr_id]] != "no")) {

>>//setCookie( "popnews<?=$wr_id?>", "no" , 1);

죄송합니다. 두부분에서 구울때와 읽을때의 쿠키의 이름이 다르게 되어 있군요. 죄송합니다.
popnews와 popup 을 일치시켜 주세요.

죄송합니다. 편집하면서 확인을 안해서... 죄송합니다.
죄송합니다.....안되는데요?

웹사이트 주소 입력 <====== 이부분을 http://www.yesooin.com(팁이 적용된 홈페이지)으로만 했는데
적용이 안되는군요.....
2003-09-01 (월) 10:06:52
인터넷 옵션> 개인정보> 웹사이트 [편집 클릭]> 웹사이트 주소 입력 [허용 클릭]
이렇게 하시면 ....
브라우저에서 쿠키 관련 설정을 어떻게 해야하나요?
전 익스 6.0버전을 사용하고 있습니다...
2003-09-01 (월) 09:36:19
사용하시는 브라우저에서 쿠키관련 설정을 살펴보셨는지요.
하루동안 열지 않겠습니다를 클릭을 했는데도
이부분이 작동하지 않고 다시 새로 고침을 하면 다시 뜨는군요....ㅡ,ㅡ;;
훌륭하신 팁입니다...

감사히 쓰겠습니다.....*^^*
반드시 있어야 겠다 싶은것만 콕콕 집어 올려주십니다. 좋은 소스 잘 쓰겠습니다.
그리고 건의 하나드리겠습니다.
이소스를 응용해서 폼메일에 적용하면 어떨까요?
이를테면 최신글들이 실려있는 메일을 회원들에게 정기적으로 발송할 수 있는 뭐 그런거 ...
음. 너무 많이 바라는가봐요. 그냥 있는거만이라도 분석해서 써야 할것 같습니다.
2003-08-31 (일) 22:34:07
$gnu_path = "./../"; 로 해보시면 될 듯..
2003-08-31 (일) 22:33:35
$gnu_path = "./../../";
이것 그누보드와 popup폴더의 관계에 맞추어서 수정해주세요.
2003-08-31 (일) 22:17:48
길선 아버님...

위 소스데로 하면 게시판의 테이블이 popup 아닌가요?

결과가 이렇게 나오는군요... 이벤트 공지는 잘 되었는데 말입니다.

select * from

1064 : 'SQL 구문에 오류가 있습니다.' 에러 같읍니다. ('' 명령어 라인 1)

select * from

1064 : 'SQL 구문에 오류가 있습니다.' 에러 같읍니다. ('' 명령어 라인 1)
Fatal error: Call to undefined function: sql_fetch_array() in /home/bang/public_html/board/popup/popup_view2.php on line 9
2003-08-31 (일) 21:59:38
popup_view.php, popup_view2.php 두개의 파일은
popup_view.php에서 popup_view2.php를 iframe으로 불러오도록 하고 있습니다.
2003-08-31 (일) 21:56:47
예 따로 만들어서 패스에 설정한 대로 위치시키시면 됩니다.
2003-08-31 (일) 21:50:35
아... 근데.. popup_view2.php , popup_view1.php 는 따로 만들어야 되는건가요?
2003-08-31 (일) 21:49:37
아싸... 또 265 다...

감사해요... 길선 아버님...
댓글을 작성하시려면 로그인이 필요합니다.

그누3 팁자료실

1,026건
+
제목 글쓴이 날짜 조회
03-09-01 조회 3,043
천천풍
03-09-01 조회 2,025
03-08-31 조회 2,509
03-08-31 조회 1,973
03-08-31 조회 2,672
03-08-31 조회 2,774
03-08-29 조회 2,687
03-08-30 조회 2,487
03-08-30 조회 3,099
03-08-30 조회 2,312
03-08-29 조회 2,868
03-08-29 조회 2,936
03-08-29 조회 5,253
03-08-28 조회 3,046
03-08-28 조회 2,049
03-08-28 조회 2,382
03-08-28 조회 2,775
03-08-27 조회 2,343
03-08-26 조회 2,323
03-08-26 조회 2,352