테스트 : 현재 이 게시판은 게시물에 댓글을 작성하거나 추천을 해야 첨부파일을 다운로드 할 수 있도록 적용 중입니다.
XE가 1.2.0 버전으로 올라오면서 게시물의 확장 변수 값에 대한 DB 저장 방식이 바뀌었습니다.
그래서, 1.1.6 이하 버전에서 1.2.0 이상 버전으로 업그레이드할 때 게시물의 확장 변수값들을 새로운 DB 형태로 저장하게 되는데, 이 과정에서 일부 값만 이동되고 나머지 값들은 소실되는 문제점이 있습니다.
현재 이 문제는 수정한 상태입니다만, 다음 배포본에나 추가될 예정입니다.
따라서, 다음 배포본이 나오기 이전에 1.1.6 이하 버전에서 업그레이드를 하실 분들은 아래 패치를 적용하신 후에 업그레이드를 하시기 바랍니다.
수정해줘야할 파일은 modules/module/module.class.php 파일입니다.
1.2.1 버전을 기준으로 위 파일에서 183번째 줄에
그래서, 1.1.6 이하 버전에서 1.2.0 이상 버전으로 업그레이드할 때 게시물의 확장 변수값들을 새로운 DB 형태로 저장하게 되는데, 이 과정에서 일부 값만 이동되고 나머지 값들은 소실되는 문제점이 있습니다.
현재 이 문제는 수정한 상태입니다만, 다음 배포본에나 추가될 예정입니다.
따라서, 다음 배포본이 나오기 이전에 1.1.6 이하 버전에서 업그레이드를 하실 분들은 아래 패치를 적용하신 후에 업그레이드를 하시기 바랍니다.
수정해줘야할 파일은 modules/module/module.class.php 파일입니다.
1.2.1 버전을 기준으로 위 파일에서 183번째 줄에
와 같은 내용이 있습니다. 이 부분을 아래와 같이 수정합니다.modules/module/module.class.php수정 전183.
// 게시글 확장변수 키 등록
184.
if
(
count
(
$document_extra_keys
)) {
185.
foreach
(
$document_extra_keys
as
$var_idx
=>
$val
) {
186.
$oDocumentController
->insertDocumentExtraKey(
$module_srl
,
$var_idx
,
$val
->name,
$val
->type,
$val
->is_required,
$val
->search,
$val
->
default
,
$val
->desc,
'extra_vars'
.
$var_idx
);
187.
}
188.
189.
$oDocumentModel
= &getModel(
'document'
);
190.
$total_count
=
$oDocumentModel
->getDocumentCount(
$module_srl
);
191.
192.
if
(
$total_count
> 0) {
193.
$per_page
= 100;
194.
$total_pages
= (int) ((
$total_count
- 1) /
$per_page
) + 1;
195.
196.
// 확장변수가 존재하면 확장변수 가져오기
197.
$doc_args
= null;
198.
$doc_args
->module_srl =
$module_srl
;
199.
$doc_args
->list_count =
$per_page
;
200.
$doc_args
->sort_index =
'list_order'
;
201.
$doc_args
->order_type =
'asc'
;
202.
203.
for
(
$doc_args
->page = 1;
$doc_args
->page <=
$total_pages
;
$doc_args
->page++) {
204.
$output
= executeQueryArray(
'document.getDocumentList'
,
$doc_args
);
205.
206.
if
(
$output
->toBool() &&
$output
->data &&
count
(
$output
->data)) {
207.
foreach
(
$output
->data
as
$document
) {
208.
if
(!
$document
)
continue
;
209.
foreach
(
$document
as
$key
=>
$var
) {
210.
if
(
strpos
(
$key
,
'extra_vars'
) !== 0 || !trim(
$var
) ||
$var
==
'N;'
)
continue
;
211.
$var_idx
=
str_replace
(
'extra_vars'
,
''
,
$key
);
212.
$oDocumentController
->insertDocumentExtraVar(
$module_srl
,
$document
->document_srl,
$var_idx
,
$var
,
'extra_vars'
.
$var_idx
,
$lang_code
);
213.
}
214.
}
215.
}
216.
}
// for total_pages
217.
}
// if count
218.
}
modules/module/module.class.php수정 후183.
// 게시글 확장변수 키 등록
184.
if
(
count
(
$document_extra_keys
)) {
185.
foreach
(
$document_extra_keys
as
$var_idx
=>
$val
) {
186.
$oDocumentController
->insertDocumentExtraKey(
$module_srl
,
$var_idx
,
$val
->name,
$val
->type,
$val
->is_required,
$val
->search,
$val
->
default
,
$val
->desc,
'extra_vars'
.
$var_idx
);
187.
}
188.
189.
$oDocumentModel
= &getModel(
'document'
);
190.
$total_count
=
$oDocumentModel
->getDocumentCount(
$module_srl
);
191.
192.
if
(
$total_count
> 0) {
193.
$per_page
= 100;
194.
$total_pages
= (int) ((
$total_count
- 1) /
$per_page
) + 1;
195.
196.
// 확장변수가 존재하면 확장변수 가져오기
197.
$doc_args
= null;
198.
$doc_args
->module_srl =
$module_srl
;
199.
$doc_args
->list_count =
$per_page
;
200.
$doc_args
->sort_index =
'list_order'
;
201.
$doc_args
->order_type =
'asc'
;
202.
203.
for
(
$doc_args
->page = 1;
$doc_args
->page <=
$total_pages
;
$doc_args
->page++) {
204.
$output
= executeQueryArray(
'document.getDocumentList'
,
$doc_args
);
205.
206.
if
(
$output
->toBool() &&
$output
->data &&
count
(
$output
->data)) {
207.
foreach
(
$output
->data
as
$document
) {
208.
if
(!
$document
)
continue
;
209.
foreach
(
$document
as
$key
=>
$var
) {
210.
if
(
strpos
(
$key
,
'extra_vars'
) !== 0 || !trim(
$var
) ||
$var
==
'N;'
)
continue
;
211.
$var_idx
=
str_replace
(
'extra_vars'
,
''
,
$key
);
212.
$oDocumentController
->insertDocumentExtraVar(
$module_srl
,
$document
->document_srl,
$var_idx
,
$var
,
'extra_vars'
.
$var_idx
,
$lang_code
);
213.
}
214.
}
215.
}
216.
}
// for total_pages
217.
}
// if count
218.
}
수정된 modules/module/module.class.php 파일을 첨부합니다.
우선 1.2.1 버전으로 파일들을
업그레이드한 후에 관리자 페이지에서 각 모듈 별로 설치/업그레이드를 하기 이전에 이 파일을
modules/module/module.class.php 로 덮어쓰시기 바랍니다.
업그레이드한 후 관리자 페이지에서
설치/업그레이드를 한 경우에는 소실된 정보를 복구할 수 없습니다.
업그레이드하기 이전에는 항상 DB와 files 디렉토리를
백업하는 습관을 가지면, 업그레이드를 진행하면서 문제가 발생했을 때 복구할 수 있는 확률이 높아집니다. 물론 이런 일이 없도록 해야함이
배포자 mooo
최선이겠지만요.

여기에서 행복한 시간 되십시오.