웹마스터 팁
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];
...
}
저처럼 트리거에서 첨부파일을 가져올 수 없어서 애먹는 분이 계실까봐 도움이 되었으면 하는 바램으로 허접한 팁을 적었습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
XE 템플릿 문법 : 조건부 class 작성하기 | AJKJ | 2015.05.23 |
레이어형 로그인 사용시에 SSL 적용방법 (선택적 사용시) [1] | 불금 | 2015.05.20 |
확장 컴포넌트 밖으로 뺀 후 완전한 버튼화 [1] | 키스미베이베 | 2015.05.20 |
플렛모바일 네이버로 로그인하기 버튼 | LI-NA | 2015.05.17 |
저같은 초보분들이 궁금해 하실것같아서요 [3] | 착한동구 | 2015.05.08 |
모바일 이미지축소모드 | kdp | 2015.05.07 |
모바일 이미지 제거모드 | kdp | 2015.05.07 |
오늘 작성된 게시글수 [2] | kdp | 2015.05.07 |
게시판의 MP3파일 갯수 표시하기 | kdp | 2015.05.07 |
인기글 [1] | kdp | 2015.05.07 |
[서버운영] 웹 재요청 방지 및 트래픽 감소를 위한 방법 | 마루디자인 | 2015.05.06 |
member 모듈 업데이트가 계속 나오는 경우 | 고니고니 | 2015.05.06 |
속도관련 나노팁. [5] | 1052 | 2015.05.04 |
CKEditor 이용시 몇가지 유용한 설정 [11] | prologos | 2015.05.02 |
xe설치시 퍼미션 문제나 DB엑세스 문제 해결하기 | 길가던분 | 2015.05.01 |
리스트에 스크랩 버튼을 뺴는 코드입니다. [3] | 착한악마 | 2015.04.30 |
PC에서 모바일화면 보는방법 [2] | 빅스타 | 2015.04.29 |
폰갭과 웹앱 그리고 XE... [6] | onTrust | 2015.04.23 |
간편 css 압축 | Ansi™ | 2015.04.21 |
XE 1.8 대응 apache 2.2 / php 5.5 / MariaDB 10 설치 [11] | 간장게장같은남자 | 2015.04.19 |
좋은 모듈 감사드립니다.
그런데 triggerBefore에서 받아서 After로 넘겨줄 필요가 있나요?
비포에서도 $oDocument->getUploadedFiles()가 안먹혀서 직접처리 할거라면
에프터에서도 $obj->document_srl를 구할수 있으니
바로 쿼리 날리면 파일정보 받을 수 있습니다.
저도 얼마전에 똑같이는 아니지만 비슷하게 에프터트리거에서 처리했습니다.