/**
  * 올바른 글의 순서를 위해 등록글의 번호와 부모글의 리스팅 번호를 비교해 업데이트 해준다.
  * @param string $post_id, $parent
  */
 public function listChanger($board_id, $entry_id, $post_id, $parent)
 {
     global $wpdb;
     $table = $wpdb->prefix . 'kingkongboard_meta';
     $results = $wpdb->get_results("SELECT * FROM {$table} WHERE board_id = {$board_id} AND ID != {$post_id} ORDER BY date ASC");
     $lastRst = $wpdb->get_row("SELECT * FROM {$table} WHERE board_id = {$board_id} AND ID = {$post_id}");
     $kkberror = new kkbError();
     if ($lastRst) {
         if ($lastRst->depth > 1) {
             $pNumber = $this->getListnumber($lastRst->parent);
             $Upresults = $wpdb->get_results("SELECT * FROM {$table} WHERE board_id = {$board_id} AND list_number > {$pNumber}");
             if ($Upresults) {
                 foreach ($Upresults as $Upresult) {
                     $this->updateListnumber($Upresult->ID, $Upresult->list_number + 1);
                 }
             }
             $this->updateListnumber($lastRst->ID, $pNumber + 1);
             return $entry_id;
         } else {
             if ($results) {
                 foreach ($results as $result) {
                     $this->updateListnumber($result->ID, $result->list_number + 1);
                 }
             }
             return $entry_id;
         }
     } else {
         return $kkberror->Error(011);
     }
 }
Example #2
0
function kingkongboard_entry_password_check()
{
    global $current_user;
    $result = array();
    $entry_id = sanitize_text_field($_POST['entry_id']);
    $entry_pwd = sanitize_text_field($_POST['entry_pwd']);
    $entry_pwd = md5($entry_pwd);
    $board_id = get_kingkong_board_meta_value($entry_id, 'board_id');
    $added_user = get_kingkong_board_meta_value($entry_id, 'login_id');
    $entry_secret = get_post_meta($entry_id, 'kingkongboard_entry_password', true);
    $entry_password = get_post_meta($entry_id, 'kingkongboard_entry_password', true);
    $board_managers = get_post_meta($board_id, 'board_managers', true);
    if ($board_managers) {
        $board_managers = unserialize($board_managers);
    } else {
        $board_managers = array();
    }
    if (is_user_logged_in()) {
        $user_login = $current_user->user_login;
    } else {
        $user_login = null;
    }
    if (in_array($user_login, $board_managers) or current_user_can('manage_options') or $added_user == $current_user->ID and $added_user != 0) {
        $result['status'] = "success";
    } else {
        if ($entry_pwd == $entry_secret) {
            $result['status'] = "success";
        } else {
            $result['status'] = "failed";
            $error = new kkbError();
            if ($added_user != $current_user->ID && $added_user != 0) {
                $result['message'] = $error->getMessage(07);
            } else {
                $result['message'] = $error->getMessage(00);
            }
        }
    }
    header("Content-Type: application/json");
    echo json_encode($result);
    exit;
}
 /**
  * data, entry_id 값을 받아 포스트 메타 정보를 업데이트 한다.
  * @param string $data, $entry_id
  */
 public function writeMeta($board_id, $entry_id, $data)
 {
     $kkberror = new kkbError();
     if ($data && $entry_id) {
         if (isset($data['entry_attachment'])) {
             $entry_attachments = serialize($data['entry_attachment']);
             update_post_meta($entry_id, 'kingkongboard_attached', $entry_attachments);
         }
         if (isset($data['entry_password'])) {
             $entry_secret = $data['entry_password'];
             $entry_secret = md5($entry_secret);
             update_post_meta($entry_id, 'kingkongboard_entry_password', $entry_secret);
         }
         if (isset($data['entry_secret'])) {
             //update_post_meta($entry_id, 'kingkongboard_secret', 'on');
             $this->updateSecret($entry_id);
         }
         // 비밀글 답변글일때 기존 글 작성자가 비회원 이라면 기존글 비밀번호를 답변글에 적용한다.
         if (isset($data['write_type'])) {
             if ($data['write_type'] == 'reply') {
                 $parent_id = $this->getMeta($data['parent'], 'parent');
                 $parent_user = $this->getMeta($data['parent'], 'login_id');
                 $parent_secret = get_post_meta($parent_id, 'kingkongboard_secret', true);
                 if ($parent_user == 0 && !empty($parent_secret)) {
                     $entry_secret = get_post_meta($parent_id, 'kingkongboard_entry_password', true);
                     update_post_meta($entry_id, 'kingkongboard_entry_password', $entry_secret);
                 }
             }
         }
         $status = $this->writeTable($board_id, $entry_id, $data);
         if ($status == false) {
             return $kkberror->Error(010);
         } else {
             return $status;
         }
     } else {
         return $kkberror->Error(00);
     }
 }