코스모스팜 스레드

페이지별로 등록된 Kboard 고유번호 생성

현재 kboard로 게시판을 만들고 Number의 출력을 $content->uid 로 해놨더니 게시판별로 고유번호가 부여되는게 아니라 모든 게시판 통틀어서 번호가 생성되더라고요...

 

이걸 게시판별로 고유번호 생성될수있게 변경이 가능한 부분인가요?

 

예를들면 A 게시판에 게시물이 1번부터 5번까지 생성되어 있으면 B 게시판에서 게시물 생성시에 6번부터 생성이됩니다.

B게시판에서도 1번부터 생성하고 싶습니다.

 

만약 kboard-list-uid를 이용하여 $list->index() 출력하게되면 정렬같은걸 할시에 게시물의 번호가 바껴서 사용못하고 있습니다.

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

    KBoard 플러그인에서 게시글은 kboard_board_content 테이블에 모두 저장됩니다.

    게시글 작성 시 게시글 uid값은 게시판에 상관없이 1씩 증가하도록 설정되어 있습니다.

    저희도 좋은 방법이 있을지 연구해보겠습니다.

    고맙습니다.

  • 그럼 내부적으로 이부분 관리하려고 DB 테이블에 컬럼하나 추가하여 관리하려고합니다.

     

    혹시 소스코드는 어느부분을 고쳐야 게시물 작성시 데이터 입력할 수 있을까요?

  • input 타입이 hidden인 입력 필드를 활용하시면 될 듯합니다.

    1. 입력 필드 설정 기능을 지원하는 버전 및 스킨을 사용 중이시라면

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 설정 -> 입력필드 설정 페이지에서

    텍스트/숨김 필드를 추가해주세요.

    메타키는 count로 입력해주시고 숨김 체크박스를 체크해주세요.

     

    입력 필드 설정 기능을 지원하지 않는 버전 및 스킨을 사용 중이시라면

    FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/editor.php 파일에

    아래의 코드를 추가해보세요.

    <input type="hidden" name="kboard_option_count" value="<?php echo $content->option->count?>">

     

    2. 워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_action('kboard_pre_document_insert', 'my_kboard_pre_document_insert', 10, 4);
    function my_kboard_pre_document_insert($content_uid, $board_id, $content, $board){
    	global $wpdb;
    	
    	$select = "`content`.`uid`";
    	$from = "`{$wpdb->prefix}kboard_board_content` AS `content` LEFT JOIN `{$wpdb->prefix}kboard_board_option` AS `option` ON `content`.`uid`=`option`.`content_uid`";
    	$where = "`content`.`board_id`='{$board_id}' AND (`option`.`option_key`='count')";
    	$orderby = "`content`.`date` DESC";
    	
    	$result = $wpdb->get_var("SELECT COUNT(*) FROM {$from} WHERE {$where} ORDER BY {$orderby}");
    	if(isset($_POST['kboard_option_count'])){
    		$_POST['kboard_option_count'] = $result + 1;
    	}
    }

     

    3. 아래의 코드를 표시하시고 싶은 위치에 추가해보세요.

    <?php echo $content->option->count?>

    고맙습니다.

  • 자동으로하는 방법을 찾고있는데 알려주신 방법은 수동으로 매번 입력해야하는거네요.

     

    답변 감사합니다.

  • 안내해드린 코드는 수동으로 매번 입력하는 코드는 아닙니다.

    텍스트/숨김 필드 설정에서 숨김 체크박스를 체크하시면

    게시글 작성 페이지에서 표시되지 않습니다.

     

    코드를 간략하게 설명을 드리자면

    게시글 작성 페이지에 게시판마다 고유 번호를 등록하기 위한 필드를 추가합니다.

    그리고 게시글을 작성할 때 추가한 입력 필드에 값이 있는 게시글의 수를 체크한 후

    해당 입력 필드에 등록된 게시글의 수 + 1 만큼 저장됩니다.

     

    이전 댓글에 안내해드린 코드 조금 수정해두었으니 확인해보시겠어요? (결과는 같습니다.)

    고맙습니다.

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
코스모스팜 회원관리