강원실 작성:글쓰기 버튼을 누르면 그림이 모두 삭제 됩니다. 새로 글을 쓸 경우는 새글쓰기 버튼을 클릭하지 마시고 관리자페이지 버튼으로 가서 글쓰기를 하면 삭제되지 않습니다.
;; 같은 경로인데 왜 다른 경로로 들어가면 삭제되는지 이유를 모르겠으나
일단 제 나름의 해법은 이것입니다 ;;
어제 오늘 소스 뜯어 보면서 찾아낸 것은 ms2007등으로 올린 글은 $parent 가 0으로 설정되며,
0으로 설정된 모든 DB와 그림정보는 삭제되는것을 확인하였습니다. 즉, 첨부자료 DB의 내용이
잘못된 정보가 올라감을 알 수 있습니다. 이것을 1로 세팅하면 자동으로 삭제가 되는 것을
방지 할 수 있으나 지우기 버튼으로 지우기가 안됩니다. ;
본래의 $parent를 찾아 올수 있는 방법이 있어야 합니다.
파일 blog.api.php
$attachment = api_addAttachment( getBlogId(), 0, $file )
=>
$attachment = api_addAttachment( getBlogId(), 1, $file )
$parent 가 0으로 한 이유는 다음과 같습니다. 위지윅 에디터로 작성할 경우, post가 먼저 생기고 그 글에 파일을 첨부해서 올리는 방법으로 동작합니다. 그러나 blogapi의 경우, 첨부파일을 올리면 그것에 해당하는 이미지의 경로를 에디터로 보내주고, 에디터는 적당히 html코드를 넣어 마지막으로 post를 올리게 됩니다.
따라서, 첨부파일이 올라가는 시점에 $parent에 해당하는 post id를 알 수 있는 방법이 없게 되는 문제가 발생합니다. 이것을 해결하기 위해, parent 를 잠시 0으로 두고, 실제 post가 올라오는 시점에 0으로되어 있는 첨부파일들을 모두 연결시키는 방법으로 구현됩니다.
그런데, 1.5.x의 SQL 문에 오류가 있었음을 발견하였습니다. :-(
post가 올라올 때, parent가 0인 첨부파일을 찾아내는 SQL 문에 blogid로 비교하지 않고 이전 방식인 owner 비교가 존재하더군요. 1.6.x에서 수정하였습니다.
http://dev.textcube.org/ticket/821
http://dev.textcube.org/changeset/5204
1.5.x에서도 위와같이 수정을 하면 동작하리라 보여집니다.
감사합니다.