포럼

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


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