한 페이지에 KBoard 두개를 보이게 커스터마이징 하기

현재 iframe으로 들 많이 하시는데.. 전 iframe 안좋아해서;; 디자인 맞추기도 힘들고..

 

일단 간략하게 통짜로만 설명드리고, 차후에 좀 상세하게 올릴께요.

필터같은게 없는 부분이라 클래스 직접 수정하셔야 하구요.

정리된게 아니라 그냥 사이트 한곳에서 쓸 날 코딩이라 보여드리긴 좀 ㅋ

 

1. 스킨의 리스트 부분에서 현재 보는 게시판 값을 같이 넘기도록 합니다. (add_query_arg 활용)

2. kboardclassKBoardBuilder.class.php 의 function create() 부분을 수정합니다.

 - 넘겨 받은 게시판 값을 확인해서, 값과 만드는 게시판이 같으면 해당 액션으로 가도록 - call_user_func(array($this, 'builder'.ucfirst($this->mod)));

 - 다르면 기본 리스트로 가도록 수정합니다. - call_user_func(array($this, 'builderList'));

 

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 정보 감사합니다.

    연구해보고 가능하다면 정식 버전에도 기능을 추가해보겠습니다^^

  • 짤막한 코드라 잘 이해가 안 가는군요^^;;

    상세하게 내용을 올려주시면 KBoard 정식 버전에 적용이 가능할지도 모르겠습니다.

    iframe 없이도 한 페이지에 다양한 게시판을 사용하게 할 수 있다면 아주 유용할겠습니다!

    좋은 정보 감사합니다 ㅎㅎ

  • 정식에 반영될 수 있다면 바로 올려야죠. ㅋ

    시간이 안나서 자세히는 못쓰는걸 죄송스럽게 생각합니다. 그냥 작동만 추가하기 위한거라 내부 클래스는 최소로 안건든 내용임을 유념해주시길..

    1. 리스트 등에서 액션 넘길 때, 보드 ID를 파라미터로 추가 

    파일 : kboard/skin/스킨명/list.php

    기존 : <?php echo __('New', 'kboard')?>

    수정 : <?php echo __('New', 'kboard')?>

    // Board_ID 같이 넘김

    2. 생성 부분 수정 - Board ID 일치 시에만 생성 작업 진행.

    파일 : kboard/class/KBoardBuilder.class.php

    함수 : public function create()

    수정 : 

    $board_id = $_GET['board_id'];
            if( !is_null($board_id)){
                if($this->board_id == $board_id){ // 넘겨받은 ID랑 현 ID 일치 시
                    if($this->meta->pass_autop == 'enable'){ call_user_func(array($this, 'builder'.ucfirst($this->mod))); return ''; }
                    else{ ob_start(); call_user_func(array($this, 'builder'.ucfirst($this->mod))); return ob_get_clean(); }
                }
                else{ // 그외의 게시판은 리스트로 고정
                    if($this->meta->pass_autop == 'enable'){ call_user_func(array($this, 'builderList')); return ''; }
                    else{ ob_start(); call_user_func(array($this, 'builderList')); return ob_get_clean(); }
                }
            }
            else { // 기존 코드. 보드 ID 없을 때
                if($this->meta->pass_autop == 'enable'){ call_user_func(array($this, 'builder'.ucfirst($this->mod))); return ''; }
                else{ ob_start(); call_user_func(array($this, 'builder'.ucfirst($this->mod))); return ob_get_clean(); }
            }

    이정도면 될까요?

  • 흠 붙여넣기 했더니..;;;

    테그가 적용이 되어 버렸네요..;

    있다가 수정해놓을께요.

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