그누보드 비밀글 패스워드 입력 시 팝업 사용하기
로빈아빠
본문
bbs/list.php 파일의 해당부분을 수정 합니다.
107 Line 부근
while {
중략...
$i++;
$k++;
}
$i++; 바로 윗 부분에
// 자신의 글이거나 관리자라면 통과
if (($list[$i][mb_id] && $list[$i][mb_id] == $member[mb_id]) || $is_admin)
;
else
{
// 비밀글이라면
if (strstr($list[$i][wr_option], "secret"))
{
// 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
// 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정
$is_owner = false;
if ($list[$i][wr_reply] && $member[mb_id])
{
$sql = " select mb_id from $write_table
where wr_num = '{$list[$i][wr_num]}'
and wr_reply = ''
and wr_is_comment = '0' ";
$row = sql_fetch($sql);
if ($row[mb_id] == $member[mb_id])
$is_owner = true;
}
$ss_name = "ss_secret_{$bo_table}_{$list[$i][wr_num]}";
if (!$is_owner)
{
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
// 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
// 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
//if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
if (!get_session($ss_name)) {
// 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
if ($member[mb_level] < $board[bo_read_level])
{ } else {
$list[$i]['href'] = "javascript:popup_window(\"./password.php?w=s&bo_table=$bo_table&wr_id={$list[$i][wr_id]}{$qstr}\", \"password_popup\", \"width=700, height=500\");";
}
//goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
//$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$list[wr_id]
}
}
}
}
$i++;
$k++;
}
이렇게 수정 합니다.
bbs/password_check.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "s") {
$qstr = "bo_table=$bo_table&sfl=$sfl&stx=$stx&wr_id=$wr_id&page=$page";
$wr = get_write($write_table, $wr_id);
if (sql_password($wr_password) != $wr[wr_password])
alert("패스워드가 틀립니다.");
// 세션에 아래 정보를 저장. 하위번호는 패스워드없이 보아야 하기 때문임.
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
$ss_name = "ss_secret_{$bo_table}_{$wr[wr_num]}";
//set_session("ss_secret", "$bo_table|$wr[wr_num]");
set_session($ss_name, TRUE);
} else
alert("w 값이 제대로 넘어오지 않았습니다.");
if($w == "s") {
echo "
<script type='text/javascript'>
opener.location.href = './board.php?$qstr';
this.name = 'opener';
this.close();
</script>
";
} else {
goto_url("./board.php?$qstr");
}
?>
bbs/password.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "u")
$action = "./write.php";
else if ($w == "d")
$action = "./delete.php";
else if ($w == "x")
$action = "./delete_comment.php";
else if ($w == "s")
{
// 패스워드 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
if ($is_admin || ($member[mb_id] == $write[mb_id] && $write[mb_id]))
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr_id");
else
$action = "./password_check.php";
}
else
alert("w 값이 제대로 넘어오지 않았습니다.");
$g4[title] = "패스워드 입력";
include_once("$g4[path]/head.sub.php");
if ($w != "s") {
if ($board[bo_include_head]) { @include ($board[bo_include_head]); }
if ($board[bo_content_head]) { echo stripslashes($board[bo_content_head]); }
}
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/password.skin.php");
if ($w != "s") {
if ($board[bo_content_tail]) { echo stripslashes($board[bo_content_tail]); }
if ($board[bo_include_tail]) { @include ($board[bo_include_tail]); }
}
include_once("$g4[path]/tail.sub.php");
?>
* 패스워드 입력창 사용 기준 :
읽기권한 1 일 때 만 작동.
비회원은 리스트에서 비밀글 클릭시 팝업으로 패스워드 입력.
* 해당 팁은 게시물 수정,삭제 시에는 팝업이 아닌 기존의 방식대로 작동 합니다.
*주의사항 :
만약 리스트에 마우스 오버되었을때 javascript:popup_window( 라고만 링크가 표시 된다면
스킨 파일의 list.skin.php 파일내에
echo "<a href=\"{$list[$i][href]}\">{$list[$i][subject]}</a>";
부분의 \" 따옴표를 ' 이렇게 바꿔 주세요..
107 Line 부근
while {
중략...
$i++;
$k++;
}
$i++; 바로 윗 부분에
// 자신의 글이거나 관리자라면 통과
if (($list[$i][mb_id] && $list[$i][mb_id] == $member[mb_id]) || $is_admin)
;
else
{
// 비밀글이라면
if (strstr($list[$i][wr_option], "secret"))
{
// 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
// 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정
$is_owner = false;
if ($list[$i][wr_reply] && $member[mb_id])
{
$sql = " select mb_id from $write_table
where wr_num = '{$list[$i][wr_num]}'
and wr_reply = ''
and wr_is_comment = '0' ";
$row = sql_fetch($sql);
if ($row[mb_id] == $member[mb_id])
$is_owner = true;
}
$ss_name = "ss_secret_{$bo_table}_{$list[$i][wr_num]}";
if (!$is_owner)
{
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
// 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
// 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
//if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
if (!get_session($ss_name)) {
// 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
if ($member[mb_level] < $board[bo_read_level])
{ } else {
$list[$i]['href'] = "javascript:popup_window(\"./password.php?w=s&bo_table=$bo_table&wr_id={$list[$i][wr_id]}{$qstr}\", \"password_popup\", \"width=700, height=500\");";
}
//goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
//$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$list[wr_id]
}
}
}
}
$i++;
$k++;
}
이렇게 수정 합니다.
bbs/password_check.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "s") {
$qstr = "bo_table=$bo_table&sfl=$sfl&stx=$stx&wr_id=$wr_id&page=$page";
$wr = get_write($write_table, $wr_id);
if (sql_password($wr_password) != $wr[wr_password])
alert("패스워드가 틀립니다.");
// 세션에 아래 정보를 저장. 하위번호는 패스워드없이 보아야 하기 때문임.
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
$ss_name = "ss_secret_{$bo_table}_{$wr[wr_num]}";
//set_session("ss_secret", "$bo_table|$wr[wr_num]");
set_session($ss_name, TRUE);
} else
alert("w 값이 제대로 넘어오지 않았습니다.");
if($w == "s") {
echo "
<script type='text/javascript'>
opener.location.href = './board.php?$qstr';
this.name = 'opener';
this.close();
</script>
";
} else {
goto_url("./board.php?$qstr");
}
?>
bbs/password.php 파일을 아래와 같이 수정 합니다.
<?
include_once("./_common.php");
if ($w == "u")
$action = "./write.php";
else if ($w == "d")
$action = "./delete.php";
else if ($w == "x")
$action = "./delete_comment.php";
else if ($w == "s")
{
// 패스워드 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
if ($is_admin || ($member[mb_id] == $write[mb_id] && $write[mb_id]))
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr_id");
else
$action = "./password_check.php";
}
else
alert("w 값이 제대로 넘어오지 않았습니다.");
$g4[title] = "패스워드 입력";
include_once("$g4[path]/head.sub.php");
if ($w != "s") {
if ($board[bo_include_head]) { @include ($board[bo_include_head]); }
if ($board[bo_content_head]) { echo stripslashes($board[bo_content_head]); }
}
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/password.skin.php");
if ($w != "s") {
if ($board[bo_content_tail]) { echo stripslashes($board[bo_content_tail]); }
if ($board[bo_include_tail]) { @include ($board[bo_include_tail]); }
}
include_once("$g4[path]/tail.sub.php");
?>
* 패스워드 입력창 사용 기준 :
읽기권한 1 일 때 만 작동.
비회원은 리스트에서 비밀글 클릭시 팝업으로 패스워드 입력.
* 해당 팁은 게시물 수정,삭제 시에는 팝업이 아닌 기존의 방식대로 작동 합니다.
*주의사항 :
만약 리스트에 마우스 오버되었을때 javascript:popup_window( 라고만 링크가 표시 된다면
스킨 파일의 list.skin.php 파일내에
echo "<a href=\"{$list[$i][href]}\">{$list[$i][subject]}</a>";
부분의 \" 따옴표를 ' 이렇게 바꿔 주세요..
관련링크
댓글목록
등록된 댓글이 없습니다.