개별 포인트 다운 게시판 v1.4 + 포인트 적립 > 그누4 스킨

그누4 스킨

스킨의 저작권은 해당 스킨 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
스킨 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y
그누보드와 관련이 있지만 스킨과 빌더가 아니면 플러그인 게시판에 올려주세요.

개별 포인트 다운 게시판 v1.4 + 포인트 적립 정보

게시판 개별 포인트 다운 게시판 v1.4 + 포인트 적립

첨부파일

board1.4.zip (85.8K) 487회 다운로드 2007-11-27 21:20:56

본문

아래 개별 포인트 다운 게시판과 동일하며, 다운로드가 발생되었을 때 일정 포인트를 글쓴이에게 적립시켜주는 기능이 포함되었습니다.

게시판에 들어가는 계급장, 경험치 파일을 같이 압축해 놓아서, 따로 추가로 소스추가나 수정이 필요없이 사용하시면 됩니다. (구글 광고 삭제)

게시판 내용은 스크린샷을 참조하시면 되겠습니다.

사용방법 : 각 폴더를 자신의 계정으로 올린뒤, 관리자 화면 게시판 관리에서 스킨을 수정합니다.
※ 포인트가 중복으로 차감될 수 있으므로 각 게시판에 있는 다운 포인트는 0으로 맞춰 주세요.
※ 여분 필드 1번에 1~100 적립될 포인트를 입력하세요. 이 단위는 %단위입니다.

예) 게시물에 300포인트를 걸었고, 여분필드1에 10이라고 적어놓았으면, 글쓴이는 다운로드 사용자가 발생할때마다 +30포인트를 얻습니다.

급히 수정해서 올렸지만, 테스트 결과 이상은 없네요.
오류나 이상이 생기면 댓글을...

요청이 많아서 올립니다.
추천
19

댓글 전체

코멘트 쓸려고 클릭하니까 이미지가 뜨지 뭡니까... -_-;;;;;

작성자에게 포인트 나눠주는 기능을 넣으시다니.. 후후~ 역시

닉콘의 의미를 알았습니다.

엑스... 없다... 불가능은 없다... 후후후~~

수고하셨습니다.

추천 받으시고~ 엑박 주세요... -_-
bbs/download.php 파일을 수정해보세요.

현재 사용중인 소스는

<?
include_once("./_common.php");

@include_once("$board_skin_path/download.head.skin.php");

// 쿠키에 저장된 ID값과 넘어온 ID값을 비교하여 같지 않을 경우 오류 발생
// 다른곳에서 링크 거는것을 방지하기 위한 코드
if (!get_session("ss_view_{$bo_table}_{$wr_id}"))
    alert("잘못된 접근입니다."); 

$sql = " select bf_source, bf_file from $g4[board_file_table]
          where bo_table = '$bo_table'
            and wr_id = '$wr_id'
            and bf_no = '$no' ";
$file = sql_fetch($sql);
if (!$file[bf_file])
    alert_close("파일 정보가 존재하지 않습니다.");

if ($member[mb_level] < $board[bo_download_level]) {
    $alert_msg = "다운로드 권한이 없습니다.";
    if ($member[mb_id])
        alert($alert_msg);
    else
        alert($alert_msg . "\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id&$qstr&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}

// 사용자 코드 실행
@include_once("$board_skin_path/download.skin.php");

// 이미 다운로드 받은 파일인지를 검사한 후 게시물당 한번만 포인트를 차감하도록 수정
$ss_name = "ss_down_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
{
    // 자신의 글이라면 통과
    // 관리자인 경우 통과
    if (($write[mb_id] && $write[mb_id] == $member[mb_id]) || $is_admin)
        ;
    else if ($board[bo_download_level] > 1) // 회원이상 다운로드가 가능하다면
    {
        // 다운로드 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
        if ($member[mb_point] + $board[bo_download_point] < 0)
            alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 다운로드(".number_format($board[bo_download_point]).")가 불가합니다.\\n\\n포인트를 적립하신 후 다시 다운로드 해 주십시오.");

        // 게시물당 한번만 차감하도록 수정
        insert_point($member[mb_id], $board[bo_download_point], "$board[bo_subject] $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");
    }

    // 다운로드 카운트 증가
    $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);
}

$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . conv_subject($write[wr_subject], 255) . " > 다운로드";

$filepath = "$g4[path]/data/file/$bo_table/$file[bf_file]";
$filepath = addslashes($filepath);
if (preg_match("/^utf/i", $g4[charset]))
    $original = urlencode($file[bf_source]);
else
    $original = $file[bf_source];

@include_once("$board_skin_path/download.tail.skin.php");

if (file_exists($filepath)) {
    if(eregi("msie", $_SERVER[HTTP_USER_AGENT]) && eregi("5\.5", $_SERVER[HTTP_USER_AGENT])) {
        header("content-type: doesn/matter");
        header("content-length: ".filesize("$filepath"));
        header("content-disposition: attachment; filename=\"$original\"");
        header("content-transfer-encoding: binary");
    } else {
        header("content-type: file/unknown");
        header("content-length: ".filesize("$filepath"));
        header("content-disposition: attachment; filename=\"$original\"");
        header("content-description: php generated data");
    }
    header("pragma: no-cache");
    header("expires: 0");
    flush();

    if (is_file("$filepath")) {
        $fp = fopen("$filepath", "rb");

        // 4.00 대체
        // 서버부하를 줄이려면 print 나 echo 또는 while 문을 이용한 방법보다는 이방법이...
        //if (!fpassthru($fp)) {
        //    fclose($fp);
        //}

        while(!feof($fp)) {
            echo fread($fp, 100*1024);
            flush();
        }
        fclose ($fp);
        flush();
    } else {
        alert("해당 파일이나 경로가 존재하지 않습니다.");
    }

} else {
    alert("파일을 찾을 수 없습니다.");
}
?>
다른분들은 내용아래 전체리스트 나오시는지요??

제가 멀 잘못한건지 ㅎ.ㅎ;;

전 전체목록보이기 사용 채크해서 공간만 생길뿐 게시판이 보이지 않아염... ㅜ.ㅜ
다운로드가 발생할때마다 다운로드 받은사람 포인트는 차감되고 등록자에게 적립이 되어야 하는데..

등록자에게 최초 1회만 적립이 되고 그이후에 다운로드를 다른 회원들이 받아가도 등록자에게 적립이 되지 않습니다. 다운로드받아간 사람은 차감이 되기는 한데 차감된게 등록자에게 안들어갑니다.

어떤이유에서 그런지 ㅠㅜ 100명이 다운받아도 최초 1회만 등록자에게 포인트지급이 되고 안됩니다.

제가 뭘 잘못한건지 ㅠㅜ
전체 5,850 |RSS
그누4 스킨 내용 검색

회원로그인

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