포럼

작업 중인 게시판에 리스트를 동적으로 추가하는 기능이 필요해서 모듈 확장에 AJAX 호출에 사용되는 api도 포함시켰습니다.


insertModuleExtend로 api를 등록해주는 것이 핵심이 되겠습니다.


게시판의 기본 api는 출력에 문서 별로 정의된 확장 변수를 포함시키지 않습니다.


아래 예는 기본 api를 확장해 문서 별로 정의된 확장 변수를 추가시킨 것입니다.


[myboard.class.php]


class myboard extends ModuleObject {
	function checkUpdate() {
		$oModuleController = getController('module');

		if ( !$oModuleModel->getModuleExtend( 'board','view','' ) ) {
			$oModuleController->insertModuleExtend('board','myboard','view','');
		}

		if ( !$oModuleModel->getModuleExtend( 'board','api','' ) ) {
			$oModuleController->insertModuleExtend('board','myboard','api','');
		}
	}
}


[myboard.view.php]


require_once( _XE_PATH_.'/modules/board/board.class.php' );
require_once( _XE_PATH_.'/modules/board/board.view.php' );
 
 
class myboardView extends boardView { 
	function init() {
		$class_path = ModuleHandler::getModulePath('board');
		$this->setModulePath($class_path);
		parent::init();
	}




	function dispBoardContent() {
		$output = parent::dispBoardContent();
		if ($output && !$output->toBool()) return $output;    
	}
}


[myboard.api.php]


require_once( _XE_PATH_.'/modules/board/board.class.php' );
require_once( _XE_PATH_.'/modules/board/board.api.php' );


class myboardAPI extends boardAPI {
	// 나만의 확장변수
	const MY_EXTRA_VAR_IDX = 1;
	const MY_EXTRA_VAR_EID = 'myvar1';

	function arrangeDocumentList( $oModule ) {
		$document_list = Context::get('document_list');
		$arranged_document_list = $oModule->get('document_list');

		$i = 0;
		foreach( $document_list as $document ) {
			$val = $document->getExtraValue( myboardAPI::MY_EXTRA_VAR_IDX );
			$arranged_document_list[$i]->{myboardAPI::MY_EXTRA_VAR_EID} = $val;
			$i++;
		}	
	}

	function dispBoardContentList( &$oModule)  {
		parent::dispBoardContentList ( $oModule );

		$this->arrangeDocumentList( $oModule );
	}
}


[myboard_list.html]


...


jQuery(function($){	
	var totalPage = {$page_navigation->total_page};
	var curPage = {$page_navigation->cur_page};	


	$( '#나의버튼' ).click( function() {
		if ( curPage < totalPage ) {
			curPage++;


			var params = {	
				page : curPage
			};


			$.exec_json("myboard.dispBoardContentList", 
				params, 
				function( data ) {
					if 	( data.error == 0 ) {	
						for ( var i in data.document_list ) {
							var doc = data.document_list[i];
							// 확장변수 사용하기
							var myvar1 = doc.myvar1;
							...
						}
					}
				});
			});
		}	
	});
});


글쓴이 제목 최종 글
산하2 모듈 확장(Module Extend) - API 추가 [2] 2014.06.17 by 산하2
그누와엑스이 회사에서 소셜커머스를 제작하려고합니다. [9] 2014.06.17 by Canto
숭숭군 xe마켓은 이제 어떻게 되는건가요? [12] 2014.06.17 by HolyJohn
lililiillililiil 여러분은 서버 여러대로 Xe 연동할때 어떻게 하시나요? [8] 2014.06.17 by 누리안
졸라맨 웹폰트를 cdn에 넣고 돌리는게 좋을까요? [10] 2014.06.15 by 졸라맨
우냠냠냠 예전에 이온디님이 배포하신 복권개조버전 가지고 계신분 없나요? [4] 2014.06.15 by SeungXE
Double'U' 위젯페이지 수정시 _getContent method is not exists 에러 발생하는 경우 [8] 2014.06.14 by XEMANIA
누리안 XE Wiki를 사용하고 계신 분은 안계신가요? [27] 2014.06.14 by 누리안
sejin7940 목록에서 닉네임 클릭시 나오는 작성글보기 쪽에 문제가 좀 있군요. [3] 2014.06.13 by ひりゅう.
SeungXE 아직 개발중인 모듈 중 여러분이 가장 기다려지는 모듈은 무엇인가요? [16] 2014.06.13 by SeungXE
가을풍경 tinyMCE 최신버전 4.0.28 에디터를 XE 1.7.5.1 에 적용 중입니다. [7] file 2014.06.13 by mAKEkr
orangehome 중요한 문제, XE 보안의 너무 중요한 문제 [7] 2014.06.12 by orangehome
SeungXE 와... 2012년 이후로 다시 XE로 돌아왔는데, 많이 바뀌었네요. 감 잡으려 개인적인 레이아웃 제작중입니다ㅋㅋㅋ [6] file 2014.06.12 by Kenta
SeungXE XE 관련 검색을 하다가 1.6부터는 에디터가 TinyMCE라는 말을 봤는데, 여전히 네이버 에디터네요ㅋㅋ [4] 2014.06.12 by SeungXE
어나더블루밍트리 앱에 xe를 사용하시는 분들 많이 계신가요? [4] 2014.06.12 by 어나더블루밍트리
산하2 강력한 모듈 확장(Module Extend) [2] 2014.06.12 by 산하2
졸라맨 xe 1.7.5에 추가된 변수 (로그인 상태를 구분하는 변수) [3] 2014.06.12 by 졸라맨
파란하늘ii 제 홈페이지 테스트 쫌 해주실 분??ㅎㅎ [5] 2014.06.12 by nado0124
socialskyo 공홈 자료실 코멘트 기능이 좋아요! [3] 2014.06.11 by 큰돌♡
산하2 모듈 인스턴스 자체의 확장변수 [1] 2014.06.12 by 산하2