포럼

작업 중인 게시판에 리스트를 동적으로 추가하는 기능이 필요해서 모듈 확장에 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;
							...
						}
					}
				});
			});
		}	
	});
});


글쓴이 제목 최종 글
졸라맨 웹폰트를 cdn에 넣고 돌리는게 좋을까요? [10] 2014.06.15 by 졸라맨
lililiillililiil 여러분은 서버 여러대로 Xe 연동할때 어떻게 하시나요? [8] 2014.06.17 by 누리안
숭숭군 xe마켓은 이제 어떻게 되는건가요? [12] 2014.06.17 by HolyJohn
그누와엑스이 회사에서 소셜커머스를 제작하려고합니다. [9] 2014.06.17 by Canto
산하2 모듈 확장(Module Extend) - API 추가 [2] 2014.06.17 by 산하2
socialskyo 관리자 화면에서 언어를 영문으로 변경을 하면 [2] 2014.06.17 by SeungXE
누리안 해외 트래픽은 어떻게 관리하시나요? [17] 2014.06.17 by POSTZI
졸라맨 xe 에디터 VS 네이버 스마트 베이직 에디터 [1] 2014.06.18 by 라미아스튜디오
RedLan 단독형 시놀로지 호스팅은 어떨까요? ... [2] 2014.06.18 by Luatic™
zombiman 신디케이션에 변화가 있나 봅니다? [3] 2014.06.20 by 애니즌
잉카러부 오늘 오후부터 신디케이션 다 날아갔나요 [16] 2014.06.20 by 가브리엘조
obzmaks12 확실히 신디케이션 오류는 아닌듯 합니다. [11] 2014.06.20 by 가브리엘조
잉카러부 신디케이션은 먹통되게 해놓고 연동문서수는 확 늘리는 이유가 [4] 2014.06.20 by 가브리엘조
가브리엘조 웹문서 영역에 대한 이야기 [1] file 2014.06.20 by 잉카러부
큰돌♡ 쉬운 설치에서 패키지 의존성 제대로 동작하나요? [1] 2014.06.20 by zombiman
okiz [카운트 바로갱신] 추천,비추천 노출 애드온입니다. [6] file 2014.06.21 by SeungXE
Lansi 모바일 EX + XE 1.7.5 [3] 2014.06.21 by force99
zartin 워드프레스 신디케이션 플러그인이란게 뭐죠? [1] 2014.06.21 by 키스투엑스이
슈니슈니 네이버 웹문서 이제 어쩌죠... [5] 2014.06.21 by CONORY
obzmaks12 웹문서영역 관련하여 네이버메일 답변받았습니다. [26] file 2014.06.22 by Garon