포럼

XE1.7.3.4 + Bootstrap + DataTables (server-side/JSON)


요새 페이지를 새로 호출하지않고 JSON방식으로 많이 사용하는데요.

대표적으로 많이쓰이는(?) DataTables 를 제가 애용하는 편입니다.

부트스트랩붙여서 사용하면 목록출력작업은 이쁘고 정말 간편해지지요. 필드정렬 다되고~

검색(필터링)은 느려져서 좀 문제가 있지만..


아무튼 이전에 순수 php상에서나 코드이그나이터등에서는 손쉽게 작업이 가능한데요.

XE에서도 해보려고 찾아보니 아래처럼 쓰더군요.


function dispXXX() {

 Context::setRequestMethod('JSON'); 

 $this->set('key', 'value');

}


결과물은:

{'message':'', 'error':'', 'key': 'value'}


이런식으로 message와 error값이 반드시 포함되서 인코딩되서 출력되더라구요. ㅜㅜ

물론 XE에서 필요로 하는 기능이라 이런고정된 형태를 취하는거 같은데..

문제는 이런식이되버리면 DataTables가 원하는 JSON형식이 나오지 않아 정상적으로 동작하지 않는다는 겁니다. 



제가 찾은 방법은 두가지가 있는데요.

1. 별도의 Addon으로 출력값을 decoding해서 해당 값을 제거하고 재인코딩해서 출력. 

2. 코어소스 수정 : 

classes/display/JSONDisplayHandler.php  에서 toDoc()메소드 시작부분에 아래 코드 추가.

if( isset($oModule->customVariables) ) {

return( $oModule->customVariables );

}

else if( isset($oModule->customJSONVariables) ) {

return( json_encode($oModule->customJSONVariables) );

}


그리고 모듈 액션코드에서는 

function dispXXX() {

 Context::setRequestMethod('JSON'); 

 $this->customJSONVariables= $YYYY; // 출력할 값

}


1번은 코어수정을 하지 않긴하지만 너무돌아가는거 같고..
결국 2번방법으로 처리하고 있습니다.
처음에는 requestMethod 타입을 제가 맘대로 추가해서 DisplayHandler를 별도로 추가해봤습니다만 다른 Addon코드들하고 호환이 안될것같아서 JSON쪽 핸들러에 추가해주었습니다..

음.. 혹시 코어수정하지 않으면서 2번 방식보다 더 좋은 방법도 있나요?
아직 XE초보라서 모르는게 많네요.. ;;

글쓴이 제목 최종 글
socialskyo 클리앙에 보니 요런게 개발 되었더군요.. [9] 2013.10.09 by socialskyo
socialskyo 스케치북 게시판 1.7 대응 버전 - 개발자 요청 사항 [1] 2013.10.09 by nado0124
컴매냐 XE 이용을 위하여  
라르게덴 XE는 기술개발 이외에도 UI, 디자인 개발도 논의 되어야... [6] 2013.10.15 by 휘즈
푸시아 웹 개발자라면 호주로, 웹 사업자라면 필리핀으로  
sejin7940 예전에 썼던 글인데 요즘은 논란이 될 수 있어 자삭합니다 ^^; [33] 2013.10.07 by 컴매냐
socialskyo 개발자분들 포트폴리오에 대해서... [1] 2013.10.06 by 푸시아
컴매냐 PHP 5.4에서 XE 사용 [3] 2020.03.14 by Gunmania
Goos 오늘 XE쪽 CDN 파일이 이상한가요?  
식군 지금 쉬운설치가 정상적으로 작동하나요? [4] 2013.10.03 by 식군
socialskyo 네이버 포토 에디터 컴포넌트 대단하네요. [5] 2013.10.03 by socialskyo
Xiso 몇가지 프로젝트를 진행해보고싶습니다. [14] 2013.10.02 by 2donggalbi
ForHanbi 미솔님 행복한 고니님 출현하셨을때 슬쩍 밑밥이라도... [1] 2013.10.02 by misol
orangehome [버그] 사이트 메뉴 편집 >>권한 설정에서 [10] 2013.10.02 by 알락할미새
엠™ 1.7.3.0 업데이트하니까 상단에 계속 어드민이 뜨네요. [15] file 2013.10.02 by 비밀얌
쿡래빗 개발자 포럼에 xe강의 게시판은 왜 없나요? [2] 2013.10.02 by 식쵸
비밀얌 하루만에 6000 명이나 가입 했네요 ㅋㅋ [12] file 2013.10.02 by 비밀얌
doogle XE에서 DataTables 사용하기 [10] 2013.10.01 by doogle
행복한고니 어떤 템플릿 문법을 좋아하세요? [14] 2013.10.01 by 행복한고니
도라미 xe 1.7.3.5 관리자패널에서 회원추가관련 오류 [15] 2013.09.30 by 도라미