XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | sejin7940 |
---|
XE 기반에서 files 테이블의 upload_target_type 칼럼 값이 업데이트 안 되던 현상 수정
새로 패치된 라이믹스 2.1.20 로 넘어가면
기존 XE 기반에서 작성했던 모든 글의 파일목록이 안 나오는 문제가 발생한다
추후 라이믹스로 이전을 생각하고 있는 XE 유저면.
일단 당장 upload_target_type 가 기록되지 않는 버그는 아래 방법으로 수정할 수 있다.
modules/file/queries/updateFileValid.xml 에 추가
<column name="upload_target_type" var="upload_target_type" />
file.controller.php 에서
setFilesValid($upload_target_srl)
함수를 맞교체
function setFilesValid($upload_target_srl,$upload_target_type='')
{
$args = new stdClass();
$args->upload_target_srl = $upload_target_srl;
$args->upload_target_type = $upload_target_type;
return executeQuery('file.updateFileValid', $args);
}
triggerAttachFiles 함수에서
$output = $this->setFilesValid($document_srl);
를 아래처럼 수정
$output = $this->setFilesValid($document_srl,'doc');
triggerCommentAttachFiles 함수에서
$output = $this->setFilesValid($comment_srl);
를 아래처럼 수정
$output = $this->setFilesValid($comment_srl,'com');
그런데 사실 이 패치를 해도 새로등록되는 글/댓글에 대해서만 적용이 되고
기존 모든 글들에 대해 이 upload_target_type 을 갱신해주는 기능이 필요하다
일괄적으로 전부 doc 으로 갱신해줘도 되긴하지만
이렇게 하면 댓글기반 파일도 com 이 아니라 doc 으로 저장될테고
다행히 현재 라이믹스 2.1.20 에서도 댓글목록 조회시는 com 을 검토 안 하고 upload_target_srl 로만 검토하니 문제없지만
혹시나 추후 댓글목록도 com 만 뽑는 상황이 발생하면, 일괄 doc 처리도 결국 문제가 된다
결국 files 테이블에서 isavlid=Y 이면서 upload_target_type 이 NULL 인걸 불러와
게시글인지 댓글기반인지를 검토하여, upload_target_type 값을 doc 이나 com 으로 갱신해주는 프로그램을 하나 만들어야한다
( 실제 의뢰받아 해당 프로그램을 만들어돌려봤는데, 글이 많은 사이트에서는 몇시간이 걸린다.
부하가 안 걸리는 숫자만큼 잘라서 처리해야하고, 새로고침 없이 자동으로 되게 구현은 해서 한번 작동해두면 오래걸려도 다 제대로 갱신은 된다 )
다행히 라이믹스 개발자와 얘길해서..
추후 라이믹스에서, 게시글 접근시 글별로 이 정보가 null 인걸 업데이트 해주는 기능을 패치해주기로 했지만
당분간은 최신 라이믹스에서는 이 이슈가 생길 수 있는 상황이긴하다.