안녕하세요.
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 파일에서 확인하실 수 있습니다.
고맙습니다.