모듈 인스턴스 가져오기 

getModule($module_name, $type = 'view', $kind = '')


 getController($module_name)

 getModule($module_name, 'controller')

 getAdminController($module_name)

 getModule($module_name, 'controller', 'admin')

 getView($module_name)

 getModule($module_name, 'view') 

 &getMobile($module_name)

 getModule($module_name, 'mobile') 

 getAdminView($module_name)

 getModule($module_name, 'view', 'admin') 

 getModel($module_name)

 getModule($module_name, 'model') 

 getAdminModel($module_name)

 getModule($module_name, 'model', 'admin') 

 getAPI($module_name)

 getModule($module_name, 'api') 

 getWAP($module_name)

 getModule($module_name, 'wap') 

 getClass($module_name)

 getModule($module_name, 'class') 



쿼리관련

@param string $query_id (module name.query XML file)

@param object $args values of args object

@param string[] $arg_columns Column list

@return object Query result data


executeQuery($query_id, $args = NULL, $arg_columns = NULL)

executeQueryArray($query_id, $args = NULL, $arg_columns = NULL)



시퀀스 관련

XE는 각 테이블별로 ID를 관리하지 않고 전체 테이블을 대상으로 ID를 관리합니다.

그러하기에 각 테이블의 모든 레코드(Row)는 전부 고유의 키값(ID)를 가지고 있습니다.


 getNextSequence()

 새로운 시퀀스를 생성하여 세션에 등록

 setUserSequence($seq)

 지정한 시퀀스를 세션에 등록

 checkUserSequence($seq)

 지정한 시퀀스가 세션에 존재하는지 확인



URL 가져오기

Context::getUrl($num_args = 0, $args_list = array(), $domain = null, $encode = TRUE, $autoEncode = FALSE)


 getUrl('param1', 'value1', 'param2','value2', ...)

 /xe/index.php?mid=index&param1=value1&param2=value2

 getNotEncodedUrl('param1', 'value1', 'param2','value2', ...)

 /xe/index.php?mid=index&param1=value1&param2=value2

 getAutoEncodedUrl('param1', 'value1', 'param2','value2', ...)

 /xe/index.php?mid=index&param1=value1&param2=value2

 getFullUrl('param1', 'value1', 'param2','value2', ...)

 http://localhost/xe/index.php?mid=index&param1=value1&param2=value2

 getNotEncodedFullUrl('param1', 'value1', 'param2','value2', ...)

 http://localhost/xe/index.php?mid=index&param1=value1&param2=value2

 getSiteUrl('param1', 'value1', 'param2','value2', ...)

 /xe/index.php?mid=index&value1=param2&vid=param1

 getNotEncodedSiteUrl('param1', 'value1', 'param2','value2', ...)

 /xe/index.php?mid=index&value1=param2&vid=param1

 getFullSiteUrl('param1', 'value1', 'param2','value2', ...)

 http://localhost/xe/index.php?mid=index&value1=param2&vid=param1

 getCurrentPageUrl()

 http://localhost/xe/index.php?mid=index

 getScriptPath()

 /xe/



HTML 출력

 htmlHeader()

 Html 기본 Header 출력

 htmlFooter()

 Html 기본 Footer 출력

 alertScript($msg)

 alert 함수 스크립트 출력

 closePopupScript()

 window 닫기 스크립트 출력

 reload($isOpener = FALSE)

 document 다시 로드 스크립트 출력



사용 후 확인할 것들

isSiteID($domain)

cut_str($string, $cut_size = 0, $tail = '...')

zgap()

ztime($str)

getTimeGap($date, $format = 'Y.m.d')

getMonthName($month, $short = TRUE)

zdate($str, $format = 'Y-m-d H:i:s', $conversion = TRUE)

getEncodeEmailAddress($email)

debugPrint($debug_output = NULL, $display_option = TRUE, $file = '_debug_message.php')

writeSlowlog($type, $elapsed_time, $obj)

flushSlowlog()

getMicroTime()

delObjectVars($target_obj, $del_obj)

getDestroyXeVars(&$vars)

handleError($errno, $errstr, $file, $line)

getNumberingPath($no, $size = 3)

url_decode($str)

purifierHtml(&$content)

removeHackTag($content)

blockWidgetCode($content)

checkUploadedFile($file)

checkXmpTag($content)

removeSrcHack($match)

mysql_pre4_hash_password($password)

getRequestUriByServerEnviroment()

utf8RawUrlDecode($source)

_code2utf($num)

detectUTF8($string, $return_convert = FALSE, $urldecode = TRUE)

json_encode2($data)



기타 (알 필요가 있을까?)

isCrawler($agent = NULL)

stripEmbedTagForAdmin(&$content, $writer_member_srl)

requirePear()

checkCSRF()

recurciveExposureCheck(&$menu)

changeValueInUrl($key, $requestKey, $dbKey, $urlName = 'success_return_url')



XE의 경우 XML을 사용하여 쿼리를 만듭니다.

 

여기저기 소스를 참고하여 INSERT 쿼리를 하나 만들어서 실행을 해 보았더니, 제대로 INSERT가 되지 않아서 추적해 본 결과 이런 에러를 찾아냈네요.

No data supplied for parameters in prepared statement.

 

이유는 다음과 같습니다.

queries폴더 내의 XML쿼리에서 사용되는 컬럼은 반드시 schemas폴더 내의 테이블 스키마에 정의가 되어 있어야 한다는 것!

 

테스트 중이어서 부분부분 복사하여 만들었더니 이런 걸 몰랐네...구글 검색으로 XE포럼에서 찾아 다행입니다. (진작에 할껄.)

 

 

'XE 1.11.x' 카테고리의 다른 글

xe-module-shop 설치 후 에러 해결  (0) 2018.05.12
XE 함수 (config/func.inc.php)  (0) 2017.03.09
XE url 요청 프로세스  (0) 2017.02.28
CafeXE 모듈 수정해 보기  (0) 2017.02.22
XE 디버깅 설정  (0) 2017.02.17

참고사이트 - 여기저기 인터넷 글들을 읽고...


XE는 index.php 파일을 통해서 모든 요청을 처리합니다. 

index.php 파일을 호출한 적이 없으시다고요? index.php는 기본 호출 페이지이기 때문에 대부분 / 기호로만 호출이 됩니다.


XE는 module와 act로 명명된 파라미터에 데이터를 전달함으로써 요청을 인식하고 처리를 하게 됩니다.

요청 방식은 GET/POST 방식 다 유효한 것으로 짐작됩니다.


GET방식 예시

/index.php?module=모듈명&act=모듈내의처리함수


POST방식 예시

<form action="/index.php" method="POST">

    <input type="hidden" name="module" value="모듈명" />

    <input type="hidden" name="act" value="모듈내의처리함수" />

</form>


AJAX방식 예시

$.ajax({

    method: "POST",

    url: "/index.php",

    data: { module: "모듈명", act: "모듈내의처리함수" }

})

.done(function(result) {

    

});


요청 프로세스만 준수한다면, 위의 방식 외에 다른 방법을 써도 무방하리라 생각합니다. (쓸 수 있다면...)

기존적으로 위의 방법으로 처리가 가능하나 유효 데이터 검증을 위해 filter와 ruleset(1.5.x 이상) 기능을 사용해야 합니다.


'XE 1.11.x' 카테고리의 다른 글

XE 함수 (config/func.inc.php)  (0) 2017.03.09
XML쿼리 사용할 때 유의할 점  (0) 2017.02.28
CafeXE 모듈 수정해 보기  (0) 2017.02.22
XE 디버깅 설정  (0) 2017.02.17
XE 기본 모듈 제작  (0) 2017.02.10

+ Recent posts