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

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

증상 :
등록된 게시물 수정 화면에서 기존에 첨부된 파일을 하나 이상 삭제하고 저장하지 않고
새로고침하거나 다른 페이지로 이동하면 xe_document_extra_vars 테이블의 해당 문서와 연결된 모든 데이터가 삭제됩니다.


원인 :
updateUploaedCount 에서  updateDocument  함수로 넘어가는데
이 때  $obj->{'extra_vars'.$idx}  값들이 안 넘어갑니다
앞선 updateUploaedCount 에서,   $oldDocument->variables 에서 확장변수 값이 제대로 안 넘어가기 때문이죠


궁금한 점 :
단순히 파일을 삭제한건데.. 왜 굳이 updateDocument 함수로 넘어가게 했을까요?
이렇게 넘어가면 불필요하게 확장변수를 다 삭제하고 다시 저장하는 걸 비롯해 글자체의 update 과정을 전부 다시 거치게 되는데
last_update (최종 수정일) 을 갱신하기 위해서인가요?
트리거의 연결이라고 보기도 그렇고,  실제로도 꽤 비효율적인듯한데..

해결방법이 updateDocument 형태를 따를건지에 따라 조정될듯합니다.

 

해결방법 #1  과  해결방법 #2  를 모두 기재해두니

XE 개발진에서 검토해보시고 둘 중 하나의 형태로 수정하면 될듯합니다.

 

 

 

해결방법 #1 :

기존의 updateDocument 형태를 그대로 따르는 경우

document/document.controller.php 에서   updateDocument 함수에서

// Remove all extra variables 
바로 위에 아래문구 추가
if(Context::get('act')!='procFileDelete') {

// Update the category if the category_srl exists.
바로 위에  }  를 추가

 


해결방법 #2 :

updateDocument 로 가지 않고 그냥 바로 query 를 통해 uploaded_count 를 차감하는 방법

1) document/document.controller.php 에서
updateUploaedCount  를 통째로 교체

public function updateUploaedCount($documentSrlList)
{
 $oDocumentModel = getModel('document');
 $oFileModel = getModel('file');

 if(is_array($documentSrlList))
 {
  $documentSrlList = array_unique($documentSrlList);
  foreach($documentSrlList AS $key=>$documentSrl)
  {
   $fileCount = $oFileModel->getFilesCount($documentSrl);

   $args->document_srl = $documentSrl;
   $args->uploaded_count = $fileCount;
   $output = executeQuery('document.updateUploadedCount', $args);
  }
 }
}

 

2) document/queries/updateUploadedCount.xml  추가

<query id="updateUploadedCount" action="update">
    <tables>
        <table name="documents" />
    </tables>
    <columns>
        <column name="uploaded_count" var="uploaded_count"  />
    </columns>
    <conditions>
        <condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
    </conditions>
</query>

전체 9건
번호 카테고리 제목 출처 등록일 조회
공지 XE 기능개선 XE 1.11.18 이후 버전의 익명 수정 버그 수정법 xetown  2023.10.07 2756
공지 XE 기능개선 XE 1.11.14 보안패치 - 타인의 쪽지 내용을 확인할 수 있는 버그 패치방법 xetown  2023.10.03 2853
공지 XE 기능개선 XE 1.11.6 이후 보안배치 #4 file rhymix  2022.07.05 2936
공지 1.11.6 XE 1.11.6 이후 보안배치 #3 rhymix  2022.04.02 2927
공지 1.11.6 XE 1.11.6 이후 보안배치 #1 xetown  2021.06.22 3291
공지 1.11.6 XE 1.11.6 이하 에서 공개댓글을 비밀댓글로 변경시 생길 수 있는 오류 수정법 sejin7940  2021.01.10 3222
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 6001
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 5927
공지 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 8270
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 6694
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 25807
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 25626
9 1.7.5 닉네임 변경시 회원목록에서 검색시 없는 닉네임인데도 존재하는 닉네임이라고 하면서 변경처리가 안 되는 경우 sejin7940  2015.10.03 772
8 1.7.5 본문에 embed 안 되는 경우 - vimeo 가 추가 안 되는 현상 패치 / bgmstore 허용 방법 / 구글드라이브 허용 [1] sejin7940  2014.09.11 2672
7 1.7.5 인증메일 재전송시 메일수신자 이름이 기재되지 않는 버그 sejin7940  2014.09.10 1868
6 1.7.5 관리자메뉴설정 에서 삭제가 안 되는 현상 수정하는 방법 sejin7940  2014.08.11 2017
5 1.7.5 관리자 회원목록 페이지에서, 이메일이 이중으로 중복 출력되는 버그 수정 sejin7940  2014.08.09 1845
4 1.7.5 모바일(또는 textarea형)에서 댓글 수정시 줄바꿈 유지되도록 수정 sejin7940  2014.07.17 2299
3 1.7.5 관리자인 경우 에디터의 권한 설정을 무시하고 항상 작동하도록 수정 sejin7940  2014.07.11 1815
2 1.7.5 댓글 신고목록에서 신고취소 가 안 되는 버그 sejin7940  2014.06.13 2004
» 1.7.5 글수정시 첨부파일 삭제하면 확장변수가 무조건 삭제되는 버그 sejin7940  2014.05.16 1937
XE Login