Extra Form
PHP PHP 7.2
CMS XpressEngine

일반적으로 사용시

 

1
2
3
4
5
{@
    $oDB = &DB::getInstance();
    $output = $oDB->_fetch($oDB->_query("SELECT * FROM 테이블명 WHERE module_srl = '".$module_info->module_srl."' ");
    $output = $oDB->_fetch($result);
}


스킨폴더에서 사용자 함수파일을 만든후 사용할때

1
2
3
4
5
function extraKeysExists($module_srl) {
    $oDB = &DB::getInstance();
    $output = $oDB->_fetch($oDB->_query("SELECT * FROM 테이블명 WHERE module_srl = '".$module_srl."' "));
    return $output;
}

 

 

XML쿼리문을 사용하기

skin 디렉토리에 queries라는 디렉토리를 추가후에 내가만든XML쿼리로 작성된 파일이름.xml 쿼리문 작성

// 내가만든XML쿼리로 작성된 파일이름이 getChongmoa.xml 이라 가정했을때
$output = executeQueryArray($query_path.'.getChongmoa', $obj);    // 쿼리문

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{@
    $obj = new stdClass;
    $obj->module_srl = $module_info->module_srl;
    $obj->eid = 'eid값';
    $query_path = $module_info->module."/skins/".$module_info->skin; // 쿼리경로
    // 내가만든XML쿼리로 작성된 파일이름이 getChongmoa.xml 이라 가정했을때
    $output = executeQueryArray($query_path.'.getChongmoa', $obj); // 쿼리문
}
 
<!--@if(count($output->data))-->
    <!--@foreach($output->data as $key => $val)-->
        ~~~~~~ 어쩌구 저쩌구 ~~~~~~~~~~~~
    <!--@end-->
<!--@end-->

 

xe 기본적인 쿼리 사용방법

1
2
3
4
5
6
7
8
모듈에서 XML Query를 실행하고자 하는 경우 - 모듈이름.쿼리ID
$output = executeQuery('모듈명.getModules',$args);
 
위젯에서 XML Query를 실행하고자 하는 경우 - widgets.위젯이름.쿼리ID
$output = executeQueryArray('widgets.content.getWidgets', $args);
 
애드온에서 XML Query를 실행하고자 하는 경우 - addons.애드온이름.쿼리ID
$output = executeQueryArray('addons.common_css.getAddons', $args);

>> 스킨폴더에서 사용자 함수파일을 만든후 사용할때

이 부분은 사용자 함수파일을 어떻게 만들라는 건가요??

module.class.php 파일에 추가하는 방법 외에 스킨 파일 쪽에서 할 방법은 없나요?

>> 없는 거 같네요. ^^;

 

스킨에서 쿼리문을 실행시키는 것을 해볼려고 하는데,

쿼리문을 만들어도 클릭했을 때 실행시키는걸 하려니, 

function으로 만들고, onclick 함수 써서.

doCallModuleAction

이런 XE기본(아마?) 모듈액션 함수를 이용해서

<a href="javascript:();" onclick="doCallModuleAction('document','procDocumentVoteCancel','{$oDocument->document_srl}');return false;"|cond="$is_logged">
   {$oDocument->get('voted_count')} / 추천취소
</a>

이런 식으로 한 뒤에

document 모듈의 컨트롤러 파일에서 procDocumentVoteCancel 함수를 만들고,

(보다 보니깐 deleteDocumentVotedLog.xml 파일도 보이던..)

 

ㅜㅜ