RX/XE 팁
XE FAQ 는 제가 XE공홈 '묻고 답하기'에 답변한 내용들 중 일부를 정리한 내용입니다. (대부분이 제가 한 답변이죠)
XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠

제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 sejin7940 

사용자정의를 사용하면서 첨부파일이 등록된 글에서..
해당 글을 수정 버튼을 누른 후  첨부파일을 삭제한 후.. 

이 때 저장을 누르면 사용자정의값이 그대로 유지되지만..
저장을 누르지 않고 뒤로 돌아가거나 목록을 누른 경우..

해당 글의 첨부파일은 삭제되어있지만,  사용자정의값들도 전부 다 사라져버린다.

물론 대부분은 파일 삭제 후 글을 재저장할테니 문제가 없을 수도 있지만

글 수정에서 파일삭제 후 저장하지 않은 경우나,
관리자페이지-> 파일 관리에서 파일을 지우는 경우라든지
다른 모듈 기반에서,  deleteFile 함수를 직접적으로 이용할 경우

해당글의 사용자정의가 무조건 삭제되어버린다

 


원인은...

$oFileController->deleteFile($val->file_srl); 가 실행되서 기존폴더의 파일을 삭제하게 되는데..

file.controller.php 에서 deleteFile 함수 끝부분에 보면 $oDocumentController->updateUploaedCount 함수 실행된다.
(사실 글이동시에는 논리적으로는 이 부분이 실행될 필요가 없다.)

어쨋든 updateUploaedCount 함수 실행되면서, 그 내부의 updateDocument 가 실행된다.

그런데 이 updateDocument 내부에서는
확장변수가 있는 구조라면, 무조건 확장변수 전체를 지우고, $obj->extra_vars1 같은 형태로 확장변수 값을 받아서 다시 저장된다.

글 수정시에는 확장변수 값이 전부 전달이 되기에 $obj->extra_vars1 형태에서는 문제가 없는데..
파일삭제를 통할 경우에는,  updateDocument($oldDocument, $newDocumentObject);    형태로
$newDocumentObject 값이 전달되는데  이 값은 DB 칼럼 값을 기반으로 넘기는데,
extra_vars1 등은 칼럼의 변수 값들이 아니여서 (예전 1.4 때에서는 변수였지만. 1.7 에서는 별도 DB를 쓰기에)
결국 빈 값이 전달된다.

 

따라서 이를 해결하기 위해서는
updateUploadedCount 함수에서, 사용자정의값을 미리 구해서 $newDocumentObject 에 값을 넣어 직접 전달을 해야만한다

 

수정방법은
document.controller.php 에서
function updateUploaedCount  함수에서


$newDocumentObject = (object) $newDocumentArray; 

아래에다가 추가


$output = $oDocumentModel->getDocumentExtraVarsFromDB(array($documentSrl));
if($output->toBool() && $output->data)
{
 foreach($output->data as $key => $val)
 {
  if(!isset($val->value)) continue;

  $newDocumentObject->{'extra_vars'.$val->var_idx} = trim($val->value);
 }
}

 


 

전체 6건
번호 카테고리 제목 출처 등록일 조회
공지 XE 기능개선 XE 1.11.18 이후 버전의 익명 수정 버그 수정법 xetown  2023.10.07 2752
공지 XE 기능개선 XE 1.11.14 보안패치 - 타인의 쪽지 내용을 확인할 수 있는 버그 패치방법 xetown  2023.10.03 2851
공지 XE 기능개선 XE 1.11.6 이후 보안배치 #4 file rhymix  2022.07.05 2933
공지 1.11.6 XE 1.11.6 이후 보안배치 #3 rhymix  2022.04.02 2922
공지 1.11.6 XE 1.11.6 이후 보안배치 #1 xetown  2021.06.22 3289
공지 1.11.6 XE 1.11.6 이하 에서 공개댓글을 비밀댓글로 변경시 생길 수 있는 오류 수정법 sejin7940  2021.01.10 3220
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 5998
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 5923
공지 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 8256
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 6692
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 25799
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 25620
6 1.7.7 에디터에서 '문서 폰트' 지정해도 제대로 안 되는 버그 / 기본폰트 수정 sejin7940  2014.10.26 1592
5 1.7.7 관리자 메뉴 설정에서, 기본 URL 설정에 따른 등록 오류 현상 수정 sejin7940  2014.11.12 1590
4 1.7.7 '이메일 주소로 계정 찾기' 인증 후 문구 오류 수정 sejin7940  2014.11.15 1634
3 1.7.7 파일첨부 된 글을 게시글 이동시, 사용자정의 값이 전부 삭제되는 버그 패치 sejin7940  2014.11.20 1464
2 1.7.7 글 개수 추출하는 함수의 제한들 해제 및 query 버그 수정법 sejin7940  2014.11.30 1145
» 1.7.7 글 수정시 파일첨부 삭제하면 확장변수 무조건 삭제되는 버그 해결법 sejin7940  2014.12.10 1151
XE Login