웹마스터 팁

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

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

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

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

                        // 게시글 확장변수 키 등록
                        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++;
                            }
                        }

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

                        // 게시글 확장변수 키 등록
                        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 디렉토리를 백업하는 습관을 가지면, 업그레이드를 진행하면서 문제가 발생했을 때 복구할 수 있는 확률이 높아집니다. 물론 이런 일이 없도록 해야함이 최선이겠지만요.


제목 글쓴이 날짜
확장변수 다중선택에서 체크박스의 선택개수를 제한하기 [5] file 우야꼬 2008.05.30
링크 사이트 제작을 위한 어드바이스 - Fade In MouseOver - [3] file Hammer 2008.06.06
링크 사이트 제작을 위한 어드바이스 - MouseOver Preview - [6] file Hammer 2008.06.10
[1원짜리팁] 큰 이미지 썸네일 못생성& 확장변수 원하는 곳에 배치하기 ^^ [2] 파파민 2008.06.23
초보 헤메다가 팁//인쇄영역 확장변수 포함 [8] file 리히토 2008.07.14
게시판 목록을 확장 변수로 정렬하기 [5] 대암지기 2008.10.10
확장변수 별로 작성 및 열람 권한 설정하기 [7] 대암지기 2008.10.11
통합검색에서 확장변수 검색하기 [5] StyleD 2008.10.12
제로보드XE XML파일 표준화 [2] BlueGATE 2008.11.13
전화번호 형식의 확장변수를 목록에 출력하고 싶을 때 serendip 2009.01.06
첨부파일 보이기 숨기기 옵션추가 [18] ☜ TeRy ☞ 2009.02.10
게시판에서 사이트 관리자만 볼수있는 항목 만들기 [1] ☜ TeRy ☞ 2009.02.13
플래너 최근문서(위젯)에 카테고리색 적용, Dday 적용, 지난 일정 출력 여부 조절 [7] file 주상태 2009.02.21
확장변수전용 권한설정 게시판스킨 미권한자에게 출력 (''깜박''오류?) 보고 file 0su 2009.02.25
Faceoff 버젼에서 확장변수 마음대로 배치하기 ^^ 파파민 2009.03.13
확장변수 출력 방법 초 심플하게 적어봅니다. [15] 라르게덴 2009.03.16
특정그룹 멤버 표시 위젯에서 이름 순 정렬하기 [2] file 이재한744 2009.03.30
주민등록 입력 폼 1.2.0 [55] file 개돌 2009.04.10
게시판에서 확장 변수를 쓰는 경우 1.2.0 이상 버전으로 업그레이드하기 전에 패치하시기 바랍니다. [5] file mooo 2009.04.14
BNU님의 Planner XE 1.2 버젼(일정관리) [9] file 개돌 2009.04.21