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>
댓글 0
공지 | 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 | 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 | 3292 |
공지 | 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 | 5928 |
공지 | 유용정보 | php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 | XE Github | 2017.11.27 | 8270 |
공지 | XE 기능개선 | XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. | XE 1.8.31 | 2017.02.26 | 6695 |
공지 | 1.8.18 | XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) | xetown | 2016.04.03 | 25808 |
공지 | XE 기능개선 | XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] | XE | 2015.10.16 | 25627 |
|