메뉴 건너뛰기

프로그래밍


아래는 게시글과 파일 그리고 사용자 정의 변수 값을 XE에 게시물로 등록하기 위한 예제 코드 입니다.

세가지 항목 모두를 담아놓은 정보가 없어서 이렇게 정리해 봅니다^^


define('__XE__', true);

//xe 경로를 맞춰 주세요
require_once('../xe/config/config.inc.php');
require_once('../xe/modules/document/document.controller.php');
require_once('../xe/modules/file/file.controller.php');

$oContext = &Context::getInstance();
$oContext->init();

function writeToBoard($title, $content, $name, $tags, $extra_val_1, $extra_val_2, $member_email, $member_srl, $category, $module_srl) {																								
		$document_srl = getNextSequence();				
		$obj->document_srl = $document_srl;
		$obj->category_srl = $category;
		$obj->module_srl = $module_srl;
		$obj->title = $title;
		$obj->content = $content;
		$obj->tags = $tags;
		$obj->allow_comment = 'Y';
		$obj->allow_trackback = 'Y';
		$obj->user_id = "airpage";
		$obj->user_name = $name;
		$obj->nick_name = $name;
		$obj->member_srl = $member_srl;
		$obj->email_address = $member_email;
		$oDocumentController = &getController('document');
		$output = $oDocumentController->insertDocument($obj, true);
		
		if($output->error != 0) return -1;				
		
		$param['module_srl'] = $module_srl;
		$param['document_srl'] = $document_srl;

		$values	= array();						
		$values[0] = array(
				"index" => "1",
				"name" => "extra_a",
				"value" => $extra_val_1
			);
		$values[1] = array(
				"index" => "2",
				"name" => "extra_b",
				"value" => $extra_val_2
			);				

		$res = writeExtraVar($param, $values);		 				 				
		if($res != 0) return -1;
								
		$res = uploadFile($module_srl, $document_srl);
		if($res != 0) return -1;
		
		return 0;
}		
	
// 사용자 변수를 기록하는 방법입니다
function writeExtraVar($param, $values) {				
		$module_srl = $param['module_srl'];
		$document_srl = $param['document_srl'];
		$oDocumentController = &getController('document');
				
		for($values as $val) {
			$output = $oDocumentController->insertDocumentExtraVar($module_srl, $document_srl, $val['index'], $val['value'], $val['name']);
			if ($output->error != 0) {
				$res = array(
					"error" => $output->error,
					"desc" => "writeToExtra"
				);
										
				return $res;
			}
		}
								
				
		$res = array(
			"error" => 0,
			"desc" => "writeToExtra"
		);
								
		return $res;
}


// 파일을 업로드 하는 방법입니다
function uploadFile($module_srl, $document_srl) {
	$file_data = $_FILES["fileupload"];

	if($file_data["name"]){
		$target_srl = $document_srl;
												
		$oFileController = &getController('file');
		
		$count = 0;
		$manual = true;
		$res = $oFileController->insertFile($file_data, $module_srl, $target_srl, $count, $manual);
						
		$oDB = &DB::getInstance();
		$db_prefix = $oDB->prefix;
		
		$cnt = 1;
		$query_str = "update $db_prefix" . "documents set uploaded_count = $cnt where document_srl=$target_srl ";
		
		$query = $oDB->_query($query_str);
		$result = $oDB->_fetch($query);
		$query_str = " update $db_prefix" . "files set isvalid='Y' where upload_target_srl=$target_srl ";
		
		$query = $oDB->_query($query_str);
		$result = $oDB->_fetch($query);		
						
		if($result->error != 0) return -1;
	}	
		
	return 0;
}


건투를 빕니다~!^^


참고글:

https://selfdevelope.tistory.com/132




번호 제목 글쓴이 날짜 조회 수
공지 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [38] 파이팅건맨 2016.02.20 84836
공지 [TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) [3] 파이팅건맨 2016.04.16 12154
공지 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 10656
165 [TIP] vector<Point2f> 파라메터를 JNI에서 자바로 전달하기 (the way how to pass vector<Point2f> variable to JAVA code layer) 파이팅건맨 2020.06.27 45
» [TIP] 외부 (PHP)코드에서 XE에 게시물 등록하기 파이팅건맨 2020.05.30 63
163 [TIP] Node.js 에서 현재 기상정보 API 호출하기 파이팅건맨 2020.02.22 322
162 [TIP] gcc 빌드중에 /usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in ... 와 같은 오류를 만났을 때 파이팅건맨 2019.11.25 432
161 [TIP] Windows UWP에서 시리얼 포트가 열리지 않을때 파이팅건맨 2019.11.08 701
160 [TIP] 화면 스크롤시 HTML Element가 화면의 중간에 위치하면 감지하기 파이팅건맨 2019.10.03 659
159 [TIP] Visual Studio 2019 에서 (배포용)설치파일 만들기 파이팅건맨 2019.09.30 2647
158 [TIP] Android에서 MS의 Face Rest API사용하기 (How to use the MS Face API on Android) 파이팅건맨 2019.07.16 450
157 [TIP] Xcode에서 boost 사용하는 방법 파이팅건맨 2019.06.28 192
156 [TIP] 아두이노에서 두근두근 Open API 호출하기 파이팅건맨 2019.06.04 1305
155 [TIP] AWS Lambda, API Gateway 를 이용하여 S3에 파일 업로드 하기 파이팅건맨 2018.06.12 1739
154 [TIP] 파이선에서 AWS Lambda API 호출시 Cognito 사용자 토큰으로 권한 확인하기 파이팅건맨 2018.06.11 1198
153 [TIP] 파이선에서 AWS Cognito 에 Sign-up, Sign-in 하는 예제 파이팅건맨 2018.06.08 684
152 [TIP] Ajax에서 AWS Lambda Rest API CALL 하기 (How to call AWS Lambda API from Ajax) 파이팅건맨 2018.02.12 831
151 [TIP] 각종 OAuth 로그인 예제 [6] 파이팅건맨 2018.01.30 1108
150 [TIP] 파이선에서 AWS Lambda로 만든 Restful API 호출하기 (How to call AWS Lambda Restful API from Python) 파이팅건맨 2018.01.23 588
149 [TIP] 파이선에서 서브프로세스를 실행시키고 출력되는 내용을 얻어오기 파이팅건맨 2018.01.22 4677
148 [TIP] 아두이노에서 AWS Lambda로 제작한 Restful API 호출하기 (The way how to call AWS Lambda Restful API from Arduino) 파이팅건맨 2018.01.18 804
147 [TIP] 파이선에서 Redis 이벤트 받기 파이팅건맨 2017.10.12 781
146 [TIP] 파이선에서 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position ... 오류 해결 방법 파이팅건맨 2017.09.29 1728
위로