게시판 카운터를 새로고침할 때마다 증가시키기
게시판 카운터를 새로고침을 할 때마다 증가시키고 싶습니다.
comet님의 글 대로 하니 게시판 카운터는 새로고침을 할 때마다 증가를 합니다.
그런데, 첨부파일 다운로드가 안되더라구요.
게시판 카운터 증가나 첨부파일 다운로드를 문제 없이 할 수 있는 방법이 없을까요?
둘 중 하나는 포기를 해야하는 것인지. ㅠ.ㅠ
comet님의 글 내용입니다.
그누보드 bbs 폴더안에 board.php 파일을 여셔셔
119번째 라인에서
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
{
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else
{
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1) {
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
set_session($ss_name, TRUE);
}
위처럼 되어져 있는부분을-------------------------------------------------------------------------------
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
//$ss_name = "ss_view_{$bo_table}_{$wr_id}";
//if (!get_session($ss_name))
//{
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else
{
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1) {
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
//set_session($ss_name, TRUE);
//}
이렇게 고쳐주시면 새로고침할때마다 카운트가 증가합니다.
이유를 설명드리면 그누보드에서는 한번 본 게시물은 쿠키를 생성하여 해당쿠기가 이미 존재하면 카운트를
증가 시키게 되어 있는데 위에서 보시는바와 같이 쿠키 생성과 쿠키를 체크하는 부분을 주석처리 해줌으로써
쿠키 존재여부를 떠나서 카운트가 증가되게 됩니다.
comet님의 글 대로 하니 게시판 카운터는 새로고침을 할 때마다 증가를 합니다.
그런데, 첨부파일 다운로드가 안되더라구요.
게시판 카운터 증가나 첨부파일 다운로드를 문제 없이 할 수 있는 방법이 없을까요?
둘 중 하나는 포기를 해야하는 것인지. ㅠ.ㅠ
comet님의 글 내용입니다.
그누보드 bbs 폴더안에 board.php 파일을 여셔셔
119번째 라인에서
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
{
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else
{
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1) {
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
set_session($ss_name, TRUE);
}
위처럼 되어져 있는부분을-------------------------------------------------------------------------------
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
//$ss_name = "ss_view_{$bo_table}_{$wr_id}";
//if (!get_session($ss_name))
//{
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else
{
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1) {
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
}
}
//set_session($ss_name, TRUE);
//}
이렇게 고쳐주시면 새로고침할때마다 카운트가 증가합니다.
이유를 설명드리면 그누보드에서는 한번 본 게시물은 쿠키를 생성하여 해당쿠기가 이미 존재하면 카운트를
증가 시키게 되어 있는데 위에서 보시는바와 같이 쿠키 생성과 쿠키를 체크하는 부분을 주석처리 해줌으로써
쿠키 존재여부를 떠나서 카운트가 증가되게 됩니다.
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 4개
-. root님의 팁 적용시 언급된 어려움을 겪게 되어 복구하고자 할 때
http://www.sir.co.kr/bbs/board.php?bo_table=g3_qa&wr_id=24971
관심가져주셔서 고맙습니다.
ㅠ.ㅠ
죄송합니다. (ㅜ.x;)
-. /bbs/board.php의 원본 소스를 변경하시는 방법을 택하셨다면,
마찬가지로 /bbs/download.php도 원본 소스를 변경하시는 방법을 적용하시면 됩니다.
그런데 동일 세션에서의 처리를 현재 배포되고 있는 그누보드 원본소스처럼 처리한다는 것은,
보안상의 이유일 듯 합니다.
(이를테면 포인트 제도를 통해 쓰기/읽기/다운로드 등이 수행되고 있다고 가정한다면...)
-. /bbs/download.php의 52라인 정도
(원본)
// 다운로드 카운트 증가
$sql = " update $g4[board_file_table] set bf_download = bf_download + 1 where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$no' ";
sql_query($sql);
set_session($ss_name, TRUE);
}
(수정)
// 다운로드 카운트 증가
$sql = " update $g4[board_file_table] set bf_download = bf_download + 1 where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$no' ";
sql_query($sql);
//set_session($ss_name, TRUE);//즉, 최하단에서 동일 세션에 대한 처리 구문을 주석처리 하십시오.
}
-. 참조사항
이 외에도 원본 경로 및 소스파일(/bbs/*.php)의 변경을 꾀하지 않고,
조건분기(if ~ else, if ~ else if ~ else)에 따라서 각 게시판 스킨마다,
개별적으로 적용하는 방식을 생각해 볼 수도 있습니다.
즉, 첨부파일 다운로드시 액션이 /bbs/download.php를 통해 이루어지지만,
거의 동일한 소스코드를 갖는 download.php를 해당 게시판 스킨 경로에 복사해 두고,
download.skin.php나 view.skin.php에서 첨부파일의 액션 경로를,
$board_skin_path/download.php 와 같은 형태로 되돌리고,
직전에 수정된 소스코드에 기재한 set_session($ss_name, TRUE);이라는 구문을,
주석으로 처리하는 방식도 생각할 수 있습니다.
중요한 것은 사용자의 수정 및 운용 형태에 따라 선택방향이 달라지겠지요.
업그레이드의 편의성 때문에 개인적으로는 본 코멘트의 하단에서 언급한 방식을 선호합니다.
현재 게시판 카운터만 새로고침할 때 증가를 하고 싶습니다. 그런데, comet님 처럼 해보니 게시판 카운터는 증가를 하지만, 첨부파일이 다운로드가 되지 않는 현상이 발상합니다.
그래서 새로고침할 때 게시판 카운터도 올리면서 첨부파일 다운로드도 잘 되는 방법을 질문한것입니다.
제가 질문을 오해가 있게 했나보네요. 아니면 답변에 대해 제가 이해를 못하고 있을 수도 있네요.
^^