웹마스터 팁
triggerAfterInsertDocument에서 첨부파일 불러지지 않는 문제 해결 방법
2015.09.04 14:33
안드로이드 푸시 앱 연동 모듈을 개발하면서 몇가지 직면한 문제들을 해결한 팁을 공개하고자 합니다.
제가 잘 몰라서 우회적으로 해결한 경우인데,
문제는 function triggerAfterInsertDocument(&$obj) 안에서
$oDocumentModel = getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl);
이렇게 해서 현재 document 핸들러를 가져온 뒤, 이것으로 작업을 할 때 아래와 같은 첨부파일과 관련된 메소드가 전혀 작동하지 않는다는 것입니다.
$file_list = $oDocument->getUploadedFiles();
이런 경우 저는 이렇게 해결했습니다. 바로 triggerBeforeInsertDocument(&$obj) 글이 등록되기 전 트리거를 가져와서 거기서 첨부파일을 받아놓고 그 다음에 triggerAfterInsertDocument(&$obj)으로 첨부파일 관련 변수를 넘겨줌으로 해결했습니다.
function triggerBeforeInsertDocument(&$obj)
{
$document_srl = $obj->document_srl;
if($GLOBALS['__androidpushapp__'][$document_srl]) unset($GLOBALS['__androidpushapp__'][$document_srl]);
$sortIndex = 'file_srl';
$args = new stdClass();
$args->upload_target_srl = $document_srl;
$args->isvalid = "N";
$args->sort_index = $sortIndex;
$output = executeQueryArray("file.getFiles", $args);
$file_list = $output->data;
if($file_list && !is_array($file_list)) $file_list = array($file_list);
$file_count = count($file_list);
for($i=0;$i<$file_count;$i++)
{
$file = $file_list[$i];
$file->source_filename = stripslashes($file->source_filename);
$file->download_url = $this->getDownloadUrl($file->file_srl, $file->sid, $file->module_srl);
$file_list[$i] = $file;
}
$GLOBALS['__androidpushapp__'][$document_srl] = $file_list;
}
function triggerAfterInsertDocument(&$obj)
{
...
$arr_file=$GLOBALS['__androidpushapp__'][$document_srl];
...
}
저처럼 트리거에서 첨부파일을 가져올 수 없어서 애먹는 분이 계실까봐 도움이 되었으면 하는 바램으로 허접한 팁을 적었습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
로그아웃 페이지가 심심한듯 보여서 이미지를 넣어봤습니다. [9] | moonsoo | 2008.01.01 |
회원 아이디만 가지고 쪽지 보내는방법 [1] | sleep2 | 2008.01.01 |
내 홈페이지에 구글 검색용 애드센스 달기 | RulruRalra | 2008.01.01 |
홈페이지에 최근글 넣고 새창으로 띄우기 | happyblog | 2008.01.02 |
게시판 하단 검색 옵션 원하는 것만 넣기 (확장변수 포함) [10] | shtjdals | 2008.01.02 |
외부로그인-특정 페이지에 로그인창만 나타나게 하고 로그인하면 메인페이지로 이동하기 [11] | 레드맨 | 2008.01.02 |
나야나 웹호스팅에서 제로보드 XE 사용하시려면 [2] | John704 | 2008.01.02 |
주소 끝에 /zbxe 안 적어도 바로 /zbxe로 들어오는 법 [10] | 삵살개 | 2008.01.03 |
관리자 페이지 않나오게 하기 [1] | Diver | 2008.01.04 |
여러 서버에서 하나의 회원목록 관리&사용 [24] | 화니군 | 2008.01.04 |
.htaccess 세팅 (index.html 없이 리다이렉션 구현) [2] | :맥노턴 | 2008.01.04 |
회원가입시 추가 정보 입력한것이 안 보일때 [1] | 수지보더 | 2008.01.08 |
홈페이지 전반에서 오른쪽 클릭 금지하기 [12] | 팬더사촌 | 2008.01.08 |
숫자 아이디 사용법 [6] | Slick | 2008.01.10 |
zb4 게시판에 x, y를 사용하는 경우의 migration [1] | 녹슨기차 | 2008.01.10 |
아이프레임 리사이즈 모질라,익스플로러 사용가능하며 게시판 불러오기 [1] | moonsoo | 2008.01.11 |
계정 이전할때.. 알FTP쓰지 마세요... [11] | INT10002 | 2008.01.11 |
홈페이지에 간단하게 뮤직플레이어와 악세사리 설치하기 | 푸른커튼 | 2008.01.12 |
VirtualPC로 IE6.0, IE7.0을 동시에 사용해서 홈피테스트하기 [2] | D.kim | 2008.01.13 |
외부 이미지 링크 막기 (초간단) 2%부족 [5] | easy14 | 2008.01.14 |
좋은 모듈 감사드립니다.
그런데 triggerBefore에서 받아서 After로 넘겨줄 필요가 있나요?
비포에서도 $oDocument->getUploadedFiles()가 안먹혀서 직접처리 할거라면
에프터에서도 $obj->document_srl를 구할수 있으니
바로 쿼리 날리면 파일정보 받을 수 있습니다.
저도 얼마전에 똑같이는 아니지만 비슷하게 에프터트리거에서 처리했습니다.