웹마스터 팁

※ 아래 소스를 몇가지 수정합니다.

일반 게시판 스킨(xe_board)에서 글 작성 중 임시 저장과 불러오기의 기능이

방명록 스킨(xe_guestbook)에서는 이용되지 않는 오류가 있습니다.(1.0.4 버전까지 확인)

이번 팁은 방명록 스킨에서도 임시 저장 기능과 불러오기를 가능하게 하는 법을 적어볼까 합니다.


아마 방명록 스킨으로 방명록을 사용하시는 분이 있으시다면 지금 임시 저장을 누른 후 불러오기가 되는지 확인해보시기 바랍니다.


우선 방명록은 기본 게시판 스킨과 다르게 dispBoardWrite 액션이 선언되지 않은 기본 상태에서도 write_form.html이 불러와집니다.

허나 이부분에서 document_srl 값을 얻어오지 못하게 되고 title 내용도 없어서 DB 저장에 실패 하게 되더군요.

임시 저장하기를 사용하기 위해 아래의 1개의 파일을 수정해 주세요. (기존 write_form.html 수정필요없음)
        /**
         * @brief 게시글 저장
         **/
        function procMemberSaveDocument() {
            // 로그인 정보 체크
            if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');

            $logged_info = Context::get('logged_info');

            // form 정보를 모두 받음
            $obj = Context::getRequestVars();
            // 글의 대상 모듈을 회원 정보로 변경
            $obj->module_srl = $logged_info->member_srl;

            /*--- 이부분 부터 추가해주세요 ---*/
            if(!$obj->document_srl) {
                $obj->document_srl = getNextSequence();
                $obj->title = cut_str(strip_tags($obj->content),20,'...'+
 '+
 ');
            }

            중략...

불러오기 후 선택 시 화면에 출력 되기 위해 아래의 1개의 파일을 수정해 주세요.
/* 저장된 게시글의 선택 */
function doDocumentSelect(document_srl) {
    if(!opener || !opener.objForSavedDoc) {
        window.close();
        return;
    }

    // 게시글을 가져와서 등록하기
    opener.location.href = opener.current_url.setQuery('document_srl', document_srl).setQuery('act', 'dispBoardWrite');
    window.close();
}


주의! 임시 저장이 게시판 스킨과 다르게 동작 합니다.
글 작성 중 중복으로 임시 저장을 할 시에 여러개 리스트로 등록 됩니다.

(게시판 스킨에서는 이미 document_srl번호가 중복이면 수정을 해버리지요)



모듈 소스를 수정하지 않아도 되긴 하는데 스킨에다가 getNextSequence() 함수를 걸어버리면 조회 할때마다
document_srl 값을 낭비하게 되기 때문에 올바르지 않다고 판단했습니다.

다음버전에서는 개선되길 기대해 봅니다.