[20170425]사용자가 설정한 포인트가 있어야 내용 확인이 가능한 게시판 > 그누보드5 스킨

그누보드5 스킨

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

[20170425]사용자가 설정한 포인트가 있어야 내용 확인이 가능한 게시판 정보

게시판 [20170425]사용자가 설정한 포인트가 있어야 내용 확인이 가능한 게시판

첨부파일

point_20170425.zip (20.1K) 36회 다운로드 2017-04-25 13:06:47 포인트 차감50

본문

point.zip 파일을 다운로드 받으셔서 압축을 푸시면 create_table.php 파일이 있습니다.

이 파일을 자신의 계정 상에서 루트 경로에 ftp로 업로드 한 후에 실행하세요.

그러면 테이블이 생성됩니다.

 

CREATE TABLE `g5_used_point` (`idx` int(11) NOT NULL AUTO_INCREMENT, `bo_table` varchar(50) NOT NULL, `wr_id` int(11) NOT NULL, `use_point` int(11) NOT NULL, `user_id` varchar(50) NOT NULL, `reg_date` datetime NOT NULL, PRIMARY KEY (`idx`));

위 파일을 실행하기 싫다 하시는 분은 phpmyadmin 열어서 위 쿼리문을 그대로 넣으시면 됩니다.

참고로 테이블명(g5_used_point)은 바꾸셔도 되는데 안 바꾸시는 게 덜 귀찮으실 겁니다.


압축을 푼 파일은 스킨 디렉토리에 업로드를 하세요.

그리고 실행을 해 보시면 됩니다.

  1. 관리자($is_admin == "super")의 경우는 포인트와 상관이 전혀 없습니다. 아예 체크를 하지 않습니다.
  2. 포인트는 사용자가 직접 자신의 글에 설정할 수가 있습니다. wr_10 칼럼을 사용하니 혹시라도 이미 wr_10 칼럼을 사용 중이시라면 수정을 하시기 바랍니다.
  3. 포인트에는 잘 아시겠지만 오로지 숫자만 입력하셔야 합니다. 간혹 1,000 입력을 하겠다고 고집을 부리는 사람(제가 다니는 회사의 클라이언트 중에 한 분이신 부동산 사장님)이 있을 수 있으니 미리 말합니다.
  4. 포인트 설정은 해도 되고 안 해도 됩니다.
    • 포인트를 설정한 게시물은 포인트가 있어야 열람이 가능합니다. 부족할 경우는 경고창이 뜨면서 볼 수가 없습니다. 물론 목록단에서 js로 경고창을 띄우고 주소창을 직접 치고 들어가셔도 막혀 있으니 주소창 번거롭게 치지 마세요.
    • 포인트를 써서 한 번이라도 본 게시물이라면 추후에는 다시 포인트를 요구하지 않습니다.
    • 포인트를 설정하지 않은 게시물의 경우는 누구나 볼 수 있습니다.

 

디자인은 지구 평화를 위해서 절대 손도 대지 말라던 친구놈의 간청에 디자인은 아예 못합니다.

그래서 컨텐츠몰엔 올릴 생각은 꿈도 못 꿉니다.

대신에 포인트를 설정하였습니다.

50포인트는 금방 얻으실 수 있으니 뭐라고 안 하셨으면 합니다.

20,000점 모아서 가위바위보 하러 갈 겁니다.

 

20170425 추가

사용자가 설정한 포인트를 관리자가 갖고 간다는 게 좀 이상해서 작업하려다가 아무도 언급을 안 하셔서 그냥 뒀는데 오늘 말씀하시네요.

이 부분 수정했습니다.

기존에는 포인트가 그냥 마이너스가 되던 걸 글을 쓴 사람에게 포인트가 들어가게 수정했습니다.

그리고 자신이 쓴 글도 읽을 때 포인트가 빠지게 되는 부분 수정했습니다.

 

포인트 관련 에러 메시지, 세션 변수 관련해서 몇 가지 수정했습니다. 

추천
4

댓글 전체

인지는 하고 있었는데 아무도 뭐라고 말씀을 안 하셔서 그냥 뒀습니다. 허허허
지금 수정했으니 새로 파일 다운로드 받으시면 됩니다.
근데 이거 새로 다운로드 받으면 기존에 받으셨던 분들 포인트 또 차감되나요?
글을 좀 애매하게 남겼네요.
제가 작업한 거 말고 그누 여기에서요.
지금 이 스킨 다운로드 비용(?)으로 50포인트를 설정했는데 혹시나 또 받으면...
설마 그렇게 허술하게 그누에게 작업했을 리가 없겠지요.
그냥 노파심이었습니다.
alert($view['wr_10']." 포인트보다 적어서 열람이 불가능합니다. 작성자에게 문의하세요.");

이렇게 알림메세지 주는거 추천합니다. 포인트얼마이상인지 알아야 유저들입장에서 열심히 포인트모으겠죠?^^
ss_mb_id 인가? 이걸 인식 못하는거같아요...
$ss_mb_id 이건 그누보드에서 사용하는 세션 변수라서 안 먹힐 리가 없을 텐데요?
view.skin.php 파일 열어서 print_r2($_SESSION); 이렇게 찍어 보세요.
뭐라고 나오는지.
혹시나 해서 지금 테스트했는데 정상적으로 user_id에 값이 들어갑니다.
// 포인트 관련 https://sir.kr/g5_skin/13793

if ($ss_mb_id=="")
{
$ss_mb_id = $_SESSION['ss_mb_id'];
}

// 포인트 관련
if(($view['mb_id'] != $_SESSION['ss_mb_id']) && $is_admin != "super") {
$read = sql_fetch("SELECT idx FROM g5_used_point WHERE bo_table = '".$bo_table."' AND wr_id = ".$wr_id." AND user_id = '".$_SESSION['ss_mb_id']."'");
if(!$read['idx']) {
if($member['mb_point'] >= $view['wr_10']) {
$point = (int)$view['wr_10'] * -1;
$r_content = $board['bo_subject']."(".$wr_id.") 열람";
insert_point($_SESSION['ss_mb_id'], $point, $r_content, $rel_table='', $rel_id='', $rel_action='', $expire=0); // 열람한 사람 포인트 차감
sql_query("INSERT INTO g5_used_point SET bo_table = '".$bo_table."', wr_id = ".$wr_id.", use_point = ".$view['wr_10'].", user_id = '".$_SESSION['ss_mb_id']."', reg_date = now()");

$point = (int)$view['wr_10'];
$r_content .= "(".$_SESSION['ss_mb_id'].")";
insert_point($view['mb_id'], $point, $r_content, $rel_table='', $rel_id='', $rel_action='', $expire=0); // 글쓴이한테 포인트 부여
} else {
alert($view['wr_10']." 포인트보다 적어서 열람이 불가능합니다. 작성자에게 문의하세요.");
}
}
}

저는 세션으로 하니깐 잘되네요. 서버 문제 일수도 잇는데 혹시나 해서 fix 한거 코드 공유합니다.
view.php 수정하면 됩니다.
register_globals 설정을 생각 못했네요.
common.php 파일 같은 데에 $ss_mb_id라는 변수에 설정이 되어 있을 거란 짧은 생각을 한 온전히 제 실수네요. ㅎㅎ
말씀하신 $_SESSION 변수나  $member(그누 한정) 이 변수들 사용하시면 됩니다.
$_SESSION['mb_id'];
$member['mb_id'];
저기에 나아가 받는 사람은 포인트 90프로만 받게 설정하는것고 좋은것같습니다. 수수료개념으로... 저는 적용하였는데..
그리고 가짜 계정만들어서 포인트주고 받는 게시판으로 악용할 수도 있다고 생각도 되네요. 200점이상 주고받지 못하게 만들어놨습니다. 다른분들도 참고하세요.

['wr_10'] > 200 일때 point 를 200으로 고정하면 200점이상 못주게 막을수 있습니다.

왕계란님께서 다음 업데이트때 추가해주셨으면 하는 부분은
비추 누르면 포인트 차감하는 기능과 이 글을 본사람들 나열되면 좋겠습니다...

제가 먼저 손본다면 코드 공유하겠습니다.^^ 감사합니다.
관리자 계정이 맞나요?
단순히 10레벨은 관리자 계정이 아닙니다.
제 계정에서 테스트를 했는데 관리자는 아무런 체크도 안 합니다.
최고관리자 접속인데  "보유하신 포인트가 부족하여 내용 확인이 불가능합니다." 나옵니다.
테이블 성공했고 skin -> board에 point 폴더 복사한 후 test 해 보았는데 그렇게 나오네요 ㅜㅜ;
포인트는 2,147,483,647 점
if($is_admin != "super") {
} else {
  echo "A";
}
이런 조건문이 있습니다.
쉽게 말해 관리자일 경우엔 무조건 A가 찍히게 되어 있다는 의미지요.
list.skin.php 파일 상단에서 echo $is_admin; 이렇게 찍어 보세요. 뭐라고 나오는지.
if(ret == "A") {
} else {
if(ret == "Y") {
} else {
alert("보유하신 포인트가 부족하여 내용 확인이 불가능합니다.");
return false;
}
}
A가 찍히면 저기에서 가장 상단을 타야 하는데 말씀하신 보유하신 포인트 부분의 if로 갈 수가 없습니다.
echo $is_admin;  넣었더니
super 나옵니다.
게시물 작성시 포인트 넣지 않은것은 잘 되는데 포인트 1 준것은 보유하신...." 메세지만 나옵니다. 혹시 몰라 아이디 새로 만든 후 권한 및 포인트 적용후 다시 해 보았지만 똑같은 메시지. ㅜㅜ; 꼭 사용하고 싶은데...
그누보드5도 맞고, g5_used_point 테이블도 생성되어 있고, $is_admin을 찍어 보면 super가 나오고..
모든 게 통과되는 조건을 갖췄는데 왜 '보유하신...' 관련 경고창이 뜬다는 건지 이해가 안 되네요.
그누보드 최신버전 깔고 테이블 생성되어 있고 super 나오고 혹시 몰라 크롬에서 익스에서 테스트 해 보았고 test유저로도 접근해 보았지만 보유하신.." 경고창이 뜹니다. 어찌된것인지... ?? ㅜㅜ;
list.skin.php 파일에 보시면 success : function(ret) { 이런 게 있습니다.
이거 바로 밑에
success : function(ret) {
  alert(ret);
이거 입력하고 값이 뭐라고 나오는지 확인해 보세요.
success : function(ret) { }
밑에
success : function(ret) {
  alert(ret);
}
넣었더니 바로 해당글 잘 읽어지네요 ^^*
다른 레벨회원으로 테스트해 본 결과 차감도 잘 되네요
헌데 차감된다는 메시지는 안뜨네요 ㅜㅜ; 하나 해결되니 하나가 문제네요 ㅎ 어디가 문제일까요?
저건 경고창으로 ret라는 매개변수에 어떤 값이 전달되는지 확인하려는 의도일 뿐 절대 해결책이 아닙니다.
지금 말씀하시는 것을 보니 게시판 자체에 오류가 있어 보입니다.
그래요? 게시판 자체라면 ??? 최신버전으로 설치했으며 테마도 최신버전으로 설치했는데 ??
차감이 원래 최고관리자에게 포인트만큼 + 되는것이 맞나요?
참! 늦은 시간까지 빠른 답변 정말 머리숙여 감사드립니다. 꾸벅
이건 스킨이라 테마랑은 별 상관이 없습니다.
위에 스샷을 보니 빌더 같네요.
아무래도 빌더 때문일 수 있단 생각이 듭니다.

처음엔 포인트가 그냥 빠졌는데 후에 수정한 건 글을 쓴 사람에게 포인트가 가게 바뀌었습니다.
전체 2,436 |RSS
그누보드5 스킨 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT