executeQuery()사용사 query id를 module에 국한하지 않고 addon/widget에서도 사용할 수 있도록 수정.

queryid가 a.b 일 경우 a모듈의 b쿼리를, a.b.c일 경우 a를 modules/addons/widgets로 구분하고 각 구성요소의 b/queries/c 쿼리를 실행하도록 변경.
./widgets/newest_documents/queries/getNewestDocuments.xml 참조


git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2375 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-08-22 08:37:49 +00:00
parent 7b25690362
commit 59b2878587
2 changed files with 26 additions and 6 deletions

View file

@ -185,10 +185,20 @@
function executeQuery($query_id, $args = NULL) {
if(!$query_id) return new Object(-1, 'msg_invalid_queryid');
list($module, $id) = explode('.',$query_id);
if(!$module || !$id) return new Object(-1, 'msg_invalid_queryid');
$id_args = explode('.', $query_id);
if(count($id_args)==2) {
$target = 'modules';
$module = $id_args[0];
$id = $id_args[1];
} elseif(count($id_args)==3) {
$target = $id_args[0];
if(!in_array($target, array('addons','widgets'))) return;
$module = $id_args[1];
$id = $id_args[2];
}
if(!$target || !$module || !$id) return new Object(-1, 'msg_invalid_queryid');
$xml_file = sprintf('./modules/%s/queries/%s.xml', $module, $id);
$xml_file = sprintf('./%s/%s/queries/%s.xml', $target, $module, $id);
if(!file_exists($xml_file)) return new Object(-1, 'msg_invalid_queryid');
// 일단 cache 파일을 찾아본다