코스모스팜 스레드

KBoard(케이보드) 액션 훅 질문 드립니다.

안녕하세요.

KBoard(케이보드) 게시판에 포인트 임의 지급을 위해 kboard_pre_content_execute, kboard_comments_pre_insert 두 개의 액션에 이벤트를 걸어 작업하고 있는데요.

(예전글 답변 참고해서 감사하게 잘 사용하고 있습니다 - https://www.cosmosfarm.com/threads/document/24625)

질문이 있습니다.

 

1. 포인트를 지급할 점수 말고 log(히스토리에 보이는)도 변경할 수 있나요?

글을 작성해서 임의이 포인트를 추가 지급받았을 때 글/댓글을 삭제하면 추가로 받은 포인트를 차감하고 싶은데 좋은 방법이 안떠오르네요.

혹시 좋은 의견 있으시다면 조언 부탁드리겠습니다.

 

2. 글 수정시에는 저 액션들이 호출이 안되는 것인지 궁금합니다.

 

감사합니다.

이 페이지의 내용이 유익하시나요? 혹은 더 많은 답변을 받길 원하시면 이 페이지를 공유 해보시는건 어떨까요?

내 홈페이지에 소셜 공유 버튼 추가하기

코스모스팜 회원관리
코스모스팜 회원관리
  • 안녕하세요~^^

    1. 말씀하신 log는 myCRED 플러그인의 log 페이지를 말씀하시는 건지요?

    사용자 쪽 Points History 페이지를 말씀하시는 건지요?

    어떻게 변경하고 싶으신지 알려주시면 간단하게 코드 수정으로 가능할지 확인해보겠습니다.

     

    KBoard 플러그인에서는 mycred_add 함수로 포인트 지급 및 차감을 하고 있습니다.

    글삭제 감소 포인트와 댓글삭제 감소 포인트를 설정하시면 삭제 시 포인트도 차감하도록 되어있습니다.

    아래의 코드를 활용하시면 임의로 추가하신 포인트를 게시글 삭제 시에 포인트 차감하실 수 있습니다.

    add_action('kboard_content_execute', 'my_kboard_pre_content_execute', 10, 2);
    function my_kboard_pre_content_execute($content, $board){
    	// 게시글 작성 시
    	if($board->id == '1'){
    		if($board->isAdmin()){
    			$board->meta->document_insert_up_point = 1000;
    			$content->option->my_point = 1000;
    		}
    		else{
    			$board->meta->document_insert_up_point = 50;
    			$content->option->my_point = 50;
    		}
    	}
    }
    
    add_action('kboard_pre_document_delete', 'my_kboard_pre_document_delete', 10, 4);
    function my_kboard_pre_document_delete($uid, $board_id, $content, $board){
    	if($board->id == '1'){
    		$board->meta->document_delete_down_point = $content->option->my_point;
    	}
    }

     

    2. KBoard 게시판 플러그인에서 kboard_pre_content_execute 액션은 글 수정 시에도 호출됩니다.

    kboard_comments_pre_insert 액션은 댓글 작성 시에만 호출되며

    kboard_comments_pre_update 액션은 댓글 수정 시에 호출됩니다.

    고맙습니다.

  • 확인이 늦었습니다^^;

    2번에 대해 추가 질문 드리겠습니다.

     

    1번에 대해 답변주신 내용을 보면 임의로 포인트를 지급한 경우 option의 my_point에 그 내용을 저장해놓고 글이 삭제될 때 이를 불러와서 반영하는 구조로 보이는데요.

    (제가 원한게 이런겁니다! 감사합니다)

     

    kboard_pre_content_execute 액션에 1번 내용을 걸게 되면 글 수정시에도 포인트가 중복해서 반영이 되는거 아닌가 해서요.

    댓글은 pre_insert라고 명확하게 작성시점에 포인트를 부여할 수 있는 것 같은데 게시글도 다시 한번 확인 부탁드립니다^^

  • 안녕하세요.

    게시글 등록 시에만 적용하시려면 kboard_pre_document_insert 액션을 사용해보시겠어요?

    게시글 등록 후에 적용하시려면 kboard_document_insert 액션을 사용하시면 됩니다.

    또, 게시글 수정 시에만 적용하시려면 kboard_pre_document_insert 액션을 사용하시면 됩니다.

    해당 함수들은 FTP로 접속해서 /wp-content/plugins/kboard/class/KBContent.class.php 파일에서 확인하실 수 있습니다.

    고맙습니다.

코스모스팜 회원관리