웹마스터 팁

XE가 1.2.0 버전으로 올라오면서 게시물의 확장 변수 값에 대한 DB 저장 방식이 바뀌었습니다.
그래서, 1.1.6 이하 버전에서 1.2.0 이상 버전으로 업그레이드할 때 게시물의 확장 변수값들을 새로운 DB 형태로 저장하게 되는데, 이 과정에서 일부 값만 이동되고 나머지 값들은 소실되는 문제점이 있습니다.

현재 이 문제는 수정한 상태입니다만, 다음 배포본에나 추가될 예정입니다.
따라서, 다음 배포본이 나오기 이전에 1.1.6 이하 버전에서 업그레이드를 하실 분들은 아래 패치를 적용하신 후에 업그레이드를 하시기 바랍니다.

수정해줘야할 파일은 modules/module/module.class.php 파일입니다.

1.2.1 버전을 기준으로 위 파일에서 183번째 줄에

183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
// 게시글 확장변수 키 등록
if(count($document_extra_keys)) {
    foreach($document_extra_keys as $var_idx => $val) {
        $oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $val->name, $val->type, $val->is_required, $val->search, $val->default, $val->desc, 'extra_vars'.$var_idx);
    }
 
    // 확장변수가 존재하면 확장변수 가져오기
    $doc_args = null;
    $doc_args->module_srl = $module_srl;
    $doc_args->list_count = 100;
    $doc_args->sort_index = 'list_order';
    $doc_args->order_type = 'asc';
    $doc_args->page = 1;
    $output = executeQueryArray('document.getDocumentList', $doc_args);
    if($output->toBool() && $output->data && count($output->data)) {
        foreach($output->data as $document) {
            if(!$document) continue;
            foreach($document as $key => $var) {
                if(strpos($key,'extra_vars')!==0 || !trim($var) || $var== 'N;') continue;
                $var_idx = str_replace('extra_vars','',$key);
                $oDocumentController->insertDocumentExtraVar($module_srl, $document->document_srl, $var_idx, $var, 'extra_vars'.$var_idx, $lang_code);
            }
        }
        $doc_args->page++;
    }
}

와 같은 내용이 있습니다. 이 부분을 아래와 같이 수정합니다.

183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
// 게시글 확장변수 키 등록
if(count($document_extra_keys)) {
    foreach($document_extra_keys as $var_idx => $val) {
        $oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $val->name, $val->type, $val->is_required, $val->search, $val->default, $val->desc, 'extra_vars'.$var_idx);
    }
 
    $oDocumentModel = &getModel('document');
    $total_count = $oDocumentModel->getDocumentCount($module_srl);
 
    if ($total_count > 0) {
        $per_page = 100;
        $total_pages = (int) (($total_count - 1) / $per_page) + 1;
 
        // 확장변수가 존재하면 확장변수 가져오기
        $doc_args = null;
        $doc_args->module_srl = $module_srl;
        $doc_args->list_count = $per_page;
        $doc_args->sort_index = 'list_order';
        $doc_args->order_type = 'asc';
 
        for ($doc_args->page = 1; $doc_args->page <= $total_pages; $doc_args->page++) {
            $output = executeQueryArray('document.getDocumentList', $doc_args);
 
            if ($output->toBool() && $output->data && count($output->data)) {
                foreach ($output->data as $document) {
                    if (!$document) continue;
                    foreach ($document as $key => $var) {
                        if (strpos($key, 'extra_vars') !== 0 || !trim($var) || $var == 'N;') continue;
                        $var_idx = str_replace('extra_vars','',$key);
                        $oDocumentController->insertDocumentExtraVar($module_srl, $document->document_srl, $var_idx, $var, 'extra_vars'.$var_idx, $lang_code);
                    }
                }
            }
        } // for total_pages
    } // if count
}


수정된 modules/module/module.class.php 파일을 첨부합니다.

우선 1.2.1 버전으로 파일들을 업그레이드한 후에 관리자 페이지에서 모듈 설치/업그레이드를 하기 이전에 이 파일을 modules/module/module.class.php 로 덮어쓰시기 바랍니다.

패치하기 이전에 관리자 페이지에서 모듈 설치/업그레이드를 한 경우에는 소실된 정보를 복구할 수 없습니다.

업그레이드하기 이전에는 항상 DB와 files 디렉토리를 백업하는 습관을 가지면, 업그레이드를 진행하면서 문제가 발생했을 때 복구할 수 있는 확률이 높아집니다. 물론 이런 일이 없도록 해야함이 최선이겠지만요.


제목 글쓴이 날짜
최근 이미지 출력 위젯에서 글 제목 출력을 선택항목으로 바꾸기 [6] 必得力 2007.10.17
묻고 답하기용 게시판 [1] yunesb 2009.01.24
음악판매 [5] 물푸레646 2008.12.27
서브 메뉴 배경색 바꾸기 [4] file Chang-Jo(창조) 2007.08.17
BGM 가로스크롤바 없애는 방법.. 청개굴이 2009.06.03
글쓴이 이메일 정보 감추기 [2] 대암지기 2007.11.22
BGM 쓰시는분 게시판 에서 첨부파일 다운받을때 끊어지시죠?ㅎㅎ [4] 우리아기 2009.05.23
스프링노트 연동문제 [2] nonoboy 2009.05.21
별도 페이지 로그인방법 cornet 2009.05.21
까페 아이디 삭제후 동일 아이디로 생성하는 방법 키스메리 2009.05.15
winxp IE7 rwapm에서 한글이름파일 업로드 [12] 공수래 2007.09.17
페이지 및 게시판 메뉴 경로 [2] file 자반튀김 2009.04.15
1.2.2 업데이트 이후 위젯이 출력안되시는 분들 [1] [1] 반도체맨 2009.05.01
BNU님의 Planner XE 1.2 버젼(일정관리) [9] file 개돌 2009.04.21
[질문]회원가입시 음력생일입력 가능 한가요? [1] 신정 2009.04.27
주민등록번호 입력 폼 추가 (1.1.5 기준) [39] 개돌 2009.02.16
XE 위키에 최근 접속 페이지 정보 출력 file 개돌 2009.04.27
초보 xe1.1.5에대한질문 [3] 울프 2009.04.26
졸졸이 스토커 가두어보기 2탄(보드우측에 포함된 것처럼) [1] file 갯가 2008.04.26
게시판에서 확장 변수를 쓰는 경우 1.2.0 이상 버전으로 업그레이드하기 전에 패치하시기 바랍니다. [5] file mooo 2009.04.14