포럼

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


글쓴이 제목 최종 글
잉카러부 신디케이션은 먹통되게 해놓고 연동문서수는 확 늘리는 이유가 [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
그누와엑스이 회사에서 소셜커머스를 제작하려고합니다. [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