포인트 자동 연계 관련

안녕하세요. 저희 사이트 LMS 포인트 시스템과 KBoard와 연동해서 글을 쓰면 포인트가 올라가고 삭제하면 내려가는 시스템을 운영하고 있었는데요.

이번에 KBoard 업데이트를 하고나서는 동작하지 않아서 다시 작업 중입니다. 작업 후에 댓글 부분 포인트 연동은 문제 없이 이루어지는데요.

게시글 부분에서는 글을 쓰면 포인트가 올라가는데 '삭제'시에는 포인트가 제거되지 않네요.

저희 LMS 담당 개발자가 KBoard 쪽에 아래와 같이 문의를 해보라고 메모를 주었는데요.


add_action( 'kboard_comments_delete', 'justalk_point_cdelete' ,10,2);
add_action( 'kboard_document_delete', 'justalk_point_delete' ,10,2);

윗줄은 작동이 되는데 아랫줄은 작동이 안되네요.
기존에는 잘 작동 되었었는데, kboard_document_delete 부분이 업데이트 되면서 문제가 있는거 같은데요.

확인 부탁드립니다. 감사합니다.


이와 관련해서 어떤 의견을 주실 수 있을지요?

항상 감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 네, 감사합니다. 확인해보겠습니다. 

  • 계속 말씀드리지만, 최신버전으로 업데이트를 하시면 다른 코드를 수정하실 필요 없이 해결이 가능할 듯합니다.

    최신버전은 게시판 5.3.2 버전, 댓글 4.4.1 버전입니다.

    http://www.cosmosfarm.com/products/kboard

     

    $url이 경고창으로 뜨는 코드는 아래 코드밖에 없군요.

    echo ('<script>alert("{$url}");</script>');

    역시나 말씀드린대로 따옴표 문제입니다.

     

    큰따옴표와 작은따옴표를 서로 바꿨습니다.

    echo ("<script>alert('{$url}');</script>");

  • True에서 false로 바꾸고 $url이라는 경고창이 뜨며 포인트가 차감되지 않는데(게시물은 바로 삭제됨), 이것은 저희 LMS 담당자가 포인트 관련해서 넣은 소스랑 충돌이 있어서 생긴 문제 때문인 것 같습니다.

    혹시 여유가 되시면 어떤 부분이 문제여서 경고창이 뜨는지와 포인트 삭제부분이 안 먹히는지 한번 봐주시면 감사하겠습니다.(포인트 입력은 게시글 혹은 댓글 모두 가능한 상태이며 댓글은 포인트 삭제 가능하나 '게시글'만 포인트가 삭제되지 않는 상태입니다.)

    <?
    /*
    저스톡 포인트 입력 
    */
    function justalk_point_insert( $content_uid,$board_id) {
        global $wpdb;
        
        $sql = "select member_uid from wp_kboard_board_content where uid='$content_uid' ";
        $r = $wpdb->get_col($sql);
        $member_uid = $r[0];
        
        $sql = "select user_login from wp_users where ID='$member_uid' ";
        $r = $wpdb->get_col($sql);
        $user_id = $r[0];
    
        $url = "http://knpedu.kr/wp_add_point.php?user_id=$user_id&board_id=$board_id&mode=add_write";
    
        require_once "Snoopy.class.php";
    
        $snoopy = new Snoopy();
        $snoopy->httpmethod = "GET";
        $snoopy->submit($url);
        $rlt = $snoopy->results;
        if($rlt=="limit point") echo ('<script>alert("해당게시판의 하루제한 포인트를 초과하여 포인트는 적립되지 않았습니다.");</script>');
            
        return; 
    }
    /*
    저스톡 포인트 입력 
    */
    function justalk_point_cinsert( $comment_uid,$content_uid) {
        global $wpdb;
        
        $sql = "select user_uid from wp_kboard_comments where uid='$comment_uid' ";
        $r = $wpdb->get_col($sql);
        $member_uid = $r[0];
    
        $sql = "select board_id from wp_kboard_board_content where uid='$content_uid' "; 
        $r = $wpdb->get_col($sql);
        $board_id = $r[0];
    
        
        $sql = "select user_login from wp_users where ID='$member_uid' ";
        $r = $wpdb->get_col($sql);
        $user_id = $r[0];
    
        $url = "http://knpedu.kr/wp_add_point.php?user_id=$user_id&board_id=$board_id&mode=add_comment";
        
        require_once "Snoopy.class.php";
    
        $snoopy = new Snoopy();
        $snoopy->httpmethod = "GET";
        $snoopy->submit($url);
        $rlt = $snoopy->results;
        if($rlt=="limit point") echo ('<script>alert("해당게시판의 하루제한 포인트를 초과하여 포인트는 적립되지 않았습니다.");</script>');
    
            
        return; 
    }
    
    /*
    저스톡 포인트 삭제 
    */
    function justalk_point_delete( $content_uid,$board_id) {
        global $wpdb;
        
        $sql = "select member_uid from wp_kboard_board_content where uid='$content_uid' ";
        $r = $wpdb->get_col($sql);
        $member_uid = $r[0];
        
        $sql = "select user_login from wp_users where ID='$member_uid' ";
        $r = $wpdb->get_col($sql);
        $user_id = $r[0];
    
        $url = "http://knpedu.kr/wp_add_point.php?user_id=$user_id&board_id=$board_id&mode=remove_write";
        
        require_once "Snoopy.class.php";
    
        $snoopy = new Snoopy();
        $snoopy->httpmethod = "GET";
        $snoopy->submit($url);
        $rlt = $snoopy->results;
         echo ('<script>alert("{$url}");</script>');
        
        if($rlt=="minus point") echo ('<script>alert("포인트가 마이너스(-) 입니다..");</script>');
            
        return; 
    }
    
    
    /*
    저스톡 포인트 삭제 
    */
    function justalk_point_cdelete( $comment_uid,$content_uid) {
        global $wpdb;
        
        $sql = "select user_uid from wp_kboard_comments where uid='$comment_uid' ";
        $r = $wpdb->get_col($sql);
        $member_uid = $r[0];
    
        $sql = "select board_id from wp_kboard_board_content where uid='$content_uid' "; 
        $r = $wpdb->get_col($sql);
        $board_id = $r[0];
    
        
        $sql = "select user_login from wp_users where ID='$member_uid' ";
        $r = $wpdb->get_col($sql);
        $user_id = $r[0];
    
        $url = "http://knpedu.kr/wp_add_point.php?user_id=$user_id&board_id=$board_id&mode=remove_comment";
        
        require_once "Snoopy.class.php";
    
        $snoopy = new Snoopy();
        $snoopy->httpmethod = "GET";
        $snoopy->submit($url);
        $rlt = $snoopy->results;
        if($rlt=="minus point") echo ('<script>alert("포인트가 마이너스(-) 입니다..");</script>');
            
        return; 
    }
    
    
    add_action( 'kboard_document_insert', 'justalk_point_insert' ,10,2);
    add_action( 'kboard_document_delete', 'justalk_point_delete' ,10,2);
    add_action( 'kboard_comments_insert', 'justalk_point_cinsert' ,10,2);
    add_action( 'kboard_comments_delete', 'justalk_point_cdelete' ,10,2);
    
    
    
    ?>
    
  • 아네, 일단 설치된 게시판 플러그인 버전은 5.3입니다. 

  • COOLMAN님

    $move_to_trash =  true; 이 코드가 있다면, 최신버전이 아닙니다^^

    그리고 이미지 처럼 뜨는 이유는 잘 모르겠군요.

    코드 수정이 잘못된건지, 혹은 본래 큰따옴표(")로 되어있던 코드를 작은따옴표(')로 변경해서 생기는 문제일 수 있습니다.

    KBoard 버전이 어떻게 되시는지요?

    게시글 바로 삭제 기능은 워드프레스 버전과는 관련이 없습니다.

  • 1. 버전 업데이트 : 이틀 전에 최신 버전으로 업데이트 했는데 대시보드에 삭제기능이 보이지 않습니다. (워드프레스 버전이 최신이 아닌데 이게 영향이 있을지요?)

    2. 코드 수정 (true -> false) 변경 후에, 

    - 게시글 삭제 시 아래와 같은 팝업이 뜨는데요 어떤 부분 때문에 그럴까요?

    - 이미지 확인 : https://drive.google.com/file/d/0B-GLsQyfa8YRMEtrWVNuWlpGZnc/view?usp=sharing 

    감사합니다.

  • 워드프레스 관리자 -> KBoard -> 대시보드 페이지에 게시글 바로 삭제 기능이 보이지 않으시면, 버전을 업데이트 해주세요.

    아래 페이지에서 최신 버전의 KBoard 게시판과 댓글 플러그인을 받아서

    FTP로 접속 후 최신 파일로 덮어쓰기 해주시면 됩니다.

    http://www.cosmosfarm.com/products/kboard

     

    만약 업데이트가 어려우시면,

    /wp-content/plugins/kboard/class/KBoardBuilder.class.php 파일의 builderRemove 메소드 부분을 확인해주세요.

    $move_to_trash =  true; // 이 부분을 false로 바꿔주시면 됩니다.

    if($move_to_trash){
        $content->status = 'trash';
        $content->updateContent();
    }
    else{
        $content->remove();
    }

  • 아 이게, 삭제 시 휴지통으로 가는 기능이 생기면서 적용이 안되는 것 같습니다.

    이전 글을 참고하니 대시보드에서 '게시글 바로 삭제'하는 기능을 확인하라고 하셨는데 저희 사이트 대시보드에는 그런 옵션이 안보이네요.

    혹시 코드로 휴지통으로 보내는 기능을 없앨 수 있나요?

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기