포럼

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초보라서 모르는게 많네요.. ;;

글쓴이 제목 최종 글
doogle XE에서 DataTables 사용하기 [10] 2013.10.01 by doogle
행복한고니 어떤 템플릿 문법을 좋아하세요? [14] 2013.10.01 by 행복한고니
도라미 xe 1.7.3.5 관리자패널에서 회원추가관련 오류 [15] 2013.09.30 by 도라미
XE러버 xe 1.7.3.5 적용 이후 관리자패널 회원수정시 [1] 2013.09.30 by 도라미
이시태 한국인터넷진흥원에서 사이트를 너무 많이 들락날락 거립니다 [5] file 2013.09.27 by 컴토피아
컴토피아 [해결] Windows 8 사용자 분 계시나요? [23] 2013.09.26 by 컴토피아
딸꾹질 위젯 캐시와 권한 문제 [4] 2013.09.26 by 딸꾹질
백성찬 xe 1.4.4.4 버전이 변경 되지 않았습니다. [1] 2013.09.25 by 위즈버
Gunmania xe_session 테이블 어떻게 하시나요? [3] 2013.09.23 by Lansi
씨엠에스개발자 windows 8.1 쓰는데 크롬에서 .. [9] file 2013.09.23 by 마야^
스비라 SteamXE! 모듈을 만들었습니다. [10] file 2013.09.20 by 윈컴이
별님왕자 제로보드에서 프랑스 구현에 문제가 있어요. [8] 2013.09.17 by 별님왕자
궁금궁금궁금이 사용하다가 DB의 특정테이블 이상?? [6] file 2013.09.17 by 소스랜드
뮤르시엘라고 홈페이지 방문수가 조회수처럼 여러번 올라가게 하는법이 있을까요? [1] 2013.09.17 by 컴매냐
라조 맴캐시(memcache)를 100% 활용하려면..  
_writer 올해 5월엔 무슨일이 있었나?  
은혜물가 홈피가 안 떠요. [6] 2013.09.16 by 은혜물가
스비라 소셜XE 같은 모듈을 만들고 있습니다. [2] file 2013.09.16 by 스비라
misol 'XE Core 마음대로 바꿔보기'(가칭) 첫 모임 일정입니다. [30] 2020.03.14 by 비나무
리크스 카카오톡에서 DB를 MySQL에서 MariaDB로 마이그레이션 하였네요. [3] 2013.09.16 by 리크스