Ejemplo n.º 1
0
 /**
  * Get a document list from the trash
  * @param object $obj
  * @return object
  */
 function getDocumentTrashList($obj)
 {
     // check a list and its order
     if (!in_array($obj->sort_index, array('list_order', 'delete_date', 'title'))) {
         $obj->sort_index = 'list_order';
     }
     if (!in_array($obj->order_type, array('desc', 'asc'))) {
         $obj->order_type = 'asc';
     }
     // get a module_srl if mid is returned instead of modul_srl
     if ($obj->mid) {
         $oModuleModel = getModel('module');
         $obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
         unset($obj->mid);
     }
     // check if the module_srl is an array
     $args = new stdClass();
     if (is_array($obj->module_srl)) {
         $args->module_srl = implode(',', $obj->module_srl);
     } else {
         $args->module_srl = $obj->module_srl;
     }
     // Variable check
     $args->sort_index = $obj->sort_index;
     $args->order_type = $obj->order_type;
     $args->page = $obj->page ? $obj->page : 1;
     $args->list_count = $obj->list_count ? $obj->list_count : 20;
     $args->page_count = $obj->page_count ? $obj->page_count : 10;
     $args->member_srl = $obj->member_srl;
     // Specify query_id
     $query_id = 'document.getTrashList';
     // Execute a query
     $output = executeQueryArray($query_id, $args);
     // Return if no result or an error occurs
     if (!$output->toBool() || !count($output->data)) {
         return $output;
     }
     $idx = 0;
     $data = $output->data;
     unset($output->data);
     $keys = array_keys($data);
     $virtual_number = $keys[0];
     foreach ($data as $key => $attribute) {
         $oDocument = null;
         $oDocument = new documentItem();
         $oDocument->setAttribute($attribute, false);
         if ($is_admin) {
             $oDocument->setGrant();
         }
         $output->data[$virtual_number] = $oDocument;
         $virtual_number--;
     }
     return $output;
 }
Ejemplo n.º 2
0
 /**
  * @brief 휴지통에 존재하는 문서 목록을 가져옴
  **/
 function getDocumentTrashList($obj)
 {
     // 정렬 대상과 순서 체크
     if (!in_array($obj->sort_index, array('list_order', 'delete_date', 'title'))) {
         $obj->sort_index = 'list_order';
     }
     if (!in_array($obj->order_type, array('desc', 'asc'))) {
         $obj->order_type = 'asc';
     }
     // module_srl 대신 mid가 넘어왔을 경우는 직접 module_srl을 구해줌
     if ($obj->mid) {
         $oModuleModel =& getModel('module');
         $obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
         unset($obj->mid);
     }
     // 넘어온 module_srl은 array일 수도 있기에 array인지를 체크
     if (is_array($obj->module_srl)) {
         $args->module_srl = implode(',', $obj->module_srl);
     } else {
         $args->module_srl = $obj->module_srl;
     }
     // 변수 체크
     $args->sort_index = $obj->sort_index;
     $args->order_type = $obj->order_type;
     $args->page = $obj->page ? $obj->page : 1;
     $args->list_count = $obj->list_count ? $obj->list_count : 20;
     $args->page_count = $obj->page_count ? $obj->page_count : 10;
     $args->member_srl = $obj->member_srl;
     // query_id 지정
     $query_id = 'document.getTrashList';
     // query 실행
     $output = executeQueryArray($query_id, $args);
     // 결과가 없거나 오류 발생시 그냥 return
     if (!$output->toBool() || !count($output->data)) {
         return $output;
     }
     $idx = 0;
     $data = $output->data;
     unset($output->data);
     $keys = array_keys($data);
     $virtual_number = $keys[0];
     foreach ($data as $key => $attribute) {
         $oDocument = null;
         $oDocument = new documentItem();
         $oDocument->setAttribute($attribute, false);
         if ($is_admin) {
             $oDocument->setGrant();
         }
         $output->data[$virtual_number] = $oDocument;
         $virtual_number--;
     }
     return $output;
 }
Ejemplo n.º 3
0
 /**
  * @brief 게시글 목록 반환
  * @description documentModel::getDocumentList 함수를 타임라인 모듈에 맞게 변환
  * @param object $obj
  * @param boolean $except_notice
  * @param boolean $load_extra_vars
  * @param array $column_list
  * @return object
  */
 function getDocumentList($obj, $except_notice = FALSE, $load_extra_vars = TRUE, $column_list = array())
 {
     $oDocumentModel = getModel('document');
     $sort_check = $oDocumentModel->_setSortIndex($obj, $load_extra_vars);
     $obj->sort_index = $sort_check->sort_index;
     $obj->isExtraVars = $sort_check->isExtraVars;
     $this->_setSearchOption($obj, $args, $query_id, $use_division);
     if ($sort_check->isExtraVars) {
         $output = executeQueryArray($query_id, $args);
     } else {
         $group_by_query = array('timeline.getDocumentListWithinComment', 'timeline.getDocumentListWithinTag', 'timeline.getDocumentListWithinExtraVars');
         if (in_array($query_id, $group_by_query)) {
             $group_args = clone $args;
             $group_args->sort_index = 'documents.' . $args->sort_index;
             $output = executeQueryArray($query_id, $group_args);
             if (!($output->toBool() && count($output->data))) {
                 return $output;
             }
             foreach ($output->data as $key => $val) {
                 if ($val->document_srl) {
                     $target_srls[] = $val->document_srl;
                 }
             }
             $page_navigation = $output->page_navigation;
             $keys = array_keys($output->data);
             $virtual_number = $keys[0];
             $target_args = new stdClass();
             $target_args->document_srls = implode(',', $target_srls);
             $target_args->list_order = $args->sort_index;
             $target_args->order_type = $args->order_type;
             $target_args->list_count = $args->list_count;
             $target_args->page = 1;
             $output = executeQueryArray('document.getDocuments', $target_args);
             $output->page_navigation = $page_navigation;
             $output->total_count = $page_navigation->total_count;
             $output->total_page = $page_navigation->total_page;
             $output->page = $page_navigation->cur_page;
         } else {
             $output = executeQueryArray($query_id, $args, $column_list);
         }
     }
     if (!($output->toBool() && count($output->data))) {
         return $output;
     }
     $idx = 0;
     $data = $output->data;
     unset($output->data);
     if (is_null($virtual_number)) {
         $keys = array_keys($data);
         $virtual_number = $keys[0];
     }
     if ($except_notice) {
         foreach ($data as $key => $attribute) {
             if ($attribute->is_notice == 'Y') {
                 $virtual_number--;
             }
         }
     }
     foreach ($data as $key => $attribute) {
         if ($except_notice && $attribute->is_notice == 'Y') {
             continue;
         }
         $document_srl = $attribute->document_srl;
         if (!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) {
             $oDocument = new documentItem();
             $oDocument->setAttribute($attribute, FALSE);
             if ($is_admin) {
                 $oDocument->setGrant();
             }
             $GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
         }
         $output->data[$virtual_number] = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
         $virtual_number--;
     }
     if ($load_extra_vars) {
         $oDocumentModel->setToAllDocumentExtraVars();
     }
     if (is_array($output->data) && count($output->data)) {
         foreach ($output->data as $number => $document) {
             $output->data[$number] = $GLOBALS['XE_DOCUMENT_LIST'][$document->document_srl];
         }
     } else {
         $output->data = array();
     }
     return $output;
 }
Ejemplo n.º 4
0
 /**
  * Module_srl value, bringing the list of documents
  * @param object $obj
  * @param bool $except_notice
  * @param bool $load_extra_vars
  * @param array $columnList
  * @return Object
  */
 function getDocumentList($obj, $except_notice = false, $load_extra_vars = true, $columnList = array())
 {
     $sort_check = $this->_setSortIndex($obj, $load_extra_vars);
     $obj->sort_index = $sort_check->sort_index;
     $obj->isExtraVars = $sort_check->isExtraVars;
     $this->_setSearchOption($obj, $args, $query_id, $use_division);
     if ($sort_check->isExtraVars && substr_count($obj->search_target, 'extra_vars')) {
         $query_id = 'document.getDocumentListWithinExtraVarsExtraSort';
         $args->sort_index = str_replace('documents.', '', $args->sort_index);
         $output = executeQueryArray($query_id, $args);
     } elseif ($sort_check->isExtraVars) {
         $output = executeQueryArray($query_id, $args);
     } else {
         // document.getDocumentList query execution
         // Query_id if you have a group by clause getDocumentListWithinTag getDocumentListWithinComment or used again to perform the query because
         $groupByQuery = array('document.getDocumentListWithinComment' => 1, 'document.getDocumentListWithinTag' => 1, 'document.getDocumentListWithinExtraVars' => 1);
         if (isset($groupByQuery[$query_id])) {
             $group_args = clone $args;
             $group_args->sort_index = 'documents.' . $args->sort_index;
             $output = executeQueryArray($query_id, $group_args);
             if (!$output->toBool() || !count($output->data)) {
                 return $output;
             }
             foreach ($output->data as $key => $val) {
                 if ($val->document_srl) {
                     $target_srls[] = $val->document_srl;
                 }
             }
             $page_navigation = $output->page_navigation;
             $keys = array_keys($output->data);
             $virtual_number = $keys[0];
             $target_args = new stdClass();
             $target_args->document_srls = implode(',', $target_srls);
             $target_args->list_order = $args->sort_index;
             $target_args->order_type = $args->order_type;
             $target_args->list_count = $args->list_count;
             $target_args->page = 1;
             $output = executeQueryArray('document.getDocuments', $target_args);
             $output->page_navigation = $page_navigation;
             $output->total_count = $page_navigation->total_count;
             $output->total_page = $page_navigation->total_page;
             $output->page = $page_navigation->cur_page;
         } else {
             $output = executeQueryArray($query_id, $args, $columnList);
         }
     }
     // Return if no result or an error occurs
     if (!$output->toBool() || !count($output->data)) {
         return $output;
     }
     $idx = 0;
     $data = $output->data;
     unset($output->data);
     if (!isset($virtual_number)) {
         $keys = array_keys($data);
         $virtual_number = $keys[0];
     }
     if ($except_notice) {
         foreach ($data as $key => $attribute) {
             if ($attribute->is_notice == 'Y') {
                 $virtual_number--;
             }
         }
     }
     foreach ($data as $key => $attribute) {
         if ($except_notice && $attribute->is_notice == 'Y') {
             continue;
         }
         $document_srl = $attribute->document_srl;
         if (!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) {
             $oDocument = null;
             $oDocument = new documentItem();
             $oDocument->setAttribute($attribute, false);
             if ($is_admin) {
                 $oDocument->setGrant();
             }
             $GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
         }
         $output->data[$virtual_number] = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
         $virtual_number--;
     }
     if ($load_extra_vars) {
         $this->setToAllDocumentExtraVars();
     }
     if (count($output->data)) {
         foreach ($output->data as $number => $document) {
             $output->data[$number] = $GLOBALS['XE_DOCUMENT_LIST'][$document->document_srl];
         }
     }
     return $output;
 }
 function dispTextylehubUpdated()
 {
     $oTextyleModel =& getModel('textyle');
     $oDocumentModel =& getModel('document');
     $page = (int) Context::get('page');
     if (!$page) {
         $page = 1;
     }
     Context::set('page', $page);
     $hub = $this->getTextyleSubContent();
     $args->page = $page;
     $args->page_count = 10;
     $args->list_count = $this->module_info->newest_textyles_count;
     $output = executeQueryArray('textylehub.getTextyles', $args);
     Context::set('page_navigation', $output->page_navigation);
     if (count($output->data)) {
         foreach ($output->data as $key => $val) {
             $val->photo_src = $oTextyleModel->getTextylePhotoSrc($val->member_srl);
             $hub->textyles[$val->module_srl] = $val;
         }
         $module_srls = array_keys($hub->textyles);
         if (count($module_srls)) {
             unset($args);
             $args->module_srls = implode(',', $module_srls);
             // 게시글 수 구하기
             $output = executeQueryArray('textylehub.getTextyleDocumentCount', $args);
             if ($output->data) {
                 foreach ($output->data as $key => $val) {
                     $hub->textyles[$val->module_srl]->document_count = $val->count;
                 }
             }
             // 댓글 수 구하기
             $output = executeQueryArray('textylehub.getTextyleCommentCount', $args);
             if ($output->data) {
                 foreach ($output->data as $key => $val) {
                     $hub->textyles[$val->module_srl]->comment_count = $val->count;
                 }
             }
             // 엮인글 수 구하기
             $output = executeQueryArray('textylehub.getTextyleTrackbackCount', $args);
             if ($output->data) {
                 foreach ($output->data as $key => $val) {
                     $hub->textyles[$val->module_srl]->trackback_count = $val->count;
                 }
             }
         }
     }
     // 최근글 구함
     unset($args);
     $args->list_count = $this->module_info->sub_newest_textyles_count;
     $output = executeQueryArray('textylehub.getNewestPost', $args);
     if ($output->data) {
         foreach ($output->data as $key => $attribute) {
             $document_srl = $attribute->document_srl;
             if (!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) {
                 $oDocument = null;
                 $oDocument = new documentItem();
                 $oDocument->setAttribute($attribute, false);
                 if ($is_admin) {
                     $oDocument->setGrant();
                 }
                 $GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
             }
             $output->data[$key] = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
         }
     }
     $oDocumentModel->setToAllDocumentExtraVars();
     $hub->newest_posts = $output->data;
     Context::set('hub', $hub);
     $this->setTemplateFile('textyle_list');
 }
Ejemplo n.º 6
0
 /**
  * @brief module_srl값을 가지는 문서의 목록을 가져옴
  **/
 function getDocumentList($obj, $except_notice = false)
 {
     // 정렬 대상과 순서 체크
     if (!in_array($obj->sort_index, array('list_order', 'regdate', 'last_update', 'update_order', 'readed_count', 'voted_count', 'comment_count', 'trackback_count', 'uploaded_count', 'title', 'category_srl'))) {
         $obj->sort_index = 'list_order';
     }
     if (!in_array($obj->order_type, array('desc', 'asc'))) {
         $obj->order_type = 'asc';
     }
     // module_srl 대신 mid가 넘어왔을 경우는 직접 module_srl을 구해줌
     if ($obj->mid) {
         $oModuleModel =& getModel('module');
         $obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
         unset($obj->mid);
     }
     // 넘어온 module_srl은 array일 수도 있기에 array인지를 체크
     if (is_array($obj->module_srl)) {
         $args->module_srl = implode(',', $obj->module_srl);
     } else {
         $args->module_srl = $obj->module_srl;
     }
     // 제외 module_srl에 대한 검사
     if (is_array($obj->exclude_module_srl)) {
         $args->exclude_module_srl = implode(',', $obj->exclude_module_srl);
     } else {
         $args->exclude_module_srl = $obj->exclude_module_srl;
     }
     // 변수 체크
     $args->category_srl = $obj->category_srl ? $obj->category_srl : null;
     $args->sort_index = $obj->sort_index;
     $args->order_type = $obj->order_type;
     $args->page = $obj->page ? $obj->page : 1;
     $args->list_count = $obj->list_count ? $obj->list_count : 20;
     $args->page_count = $obj->page_count ? $obj->page_count : 10;
     $args->start_date = $obj->start_date ? $obj->start_date : null;
     $args->end_date = $obj->end_date ? $obj->end_date : null;
     $args->member_srl = $obj->member_srl;
     // 카테고리가 선택되어 있으면 하부 카테고리까지 모두 조건에 추가
     if ($args->category_srl) {
         $category_list = $this->getCategoryList($args->module_srl);
         $category_info = $category_list[$args->category_srl];
         $category_info->childs[] = $args->category_srl;
         $args->category_srl = implode(',', $category_info->childs);
     }
     // 기본으로 사용할 query id 지정 (몇가지 검색 옵션에 따라 query id가 변경됨)
     $query_id = 'document.getDocumentList';
     // 내용검색일 경우 document division을 지정하여 검색하기 위한 처리
     $use_division = false;
     // 검색 옵션 정리
     $search_target = $obj->search_target;
     $search_keyword = $obj->search_keyword;
     if ($search_target && $search_keyword) {
         switch ($search_target) {
             case 'title':
             case 'content':
                 if ($search_keyword) {
                     $search_keyword = str_replace(' ', '%', $search_keyword);
                 }
                 $args->{"s_" . $search_target} = $search_keyword;
                 $use_division = true;
                 break;
             case 'title_content':
                 if ($search_keyword) {
                     $search_keyword = str_replace(' ', '%', $search_keyword);
                 }
                 $args->s_title = $search_keyword;
                 $args->s_content = $search_keyword;
                 $use_division = true;
                 break;
             case 'user_id':
                 if ($search_keyword) {
                     $search_keyword = str_replace(' ', '%', $search_keyword);
                 }
                 $args->s_user_id = $search_keyword;
                 $args->sort_index = 'documents.' . $args->sort_index;
                 break;
             case 'user_name':
             case 'nick_name':
             case 'email_address':
             case 'homepage':
                 if ($search_keyword) {
                     $search_keyword = str_replace(' ', '%', $search_keyword);
                 }
                 $args->{"s_" . $search_target} = $search_keyword;
                 break;
             case 'is_notice':
             case 'is_secret':
                 if ($search_keyword == 'N') {
                     $args->{"s_" . $search_target} = 'N';
                 } elseif ($search_keyword == 'Y') {
                     $args->{"s_" . $search_target} = 'Y';
                 } else {
                     $args->{"s_" . $search_target} = '';
                 }
                 break;
             case 'member_srl':
             case 'readed_count':
             case 'voted_count':
             case 'comment_count':
             case 'trackback_count':
             case 'uploaded_count':
                 $args->{"s_" . $search_target} = (int) $search_keyword;
                 break;
             case 'regdate':
             case 'last_update':
             case 'ipaddress':
                 $args->{"s_" . $search_target} = $search_keyword;
                 break;
             case 'comment':
                 $args->s_comment = $search_keyword;
                 $query_id = 'document.getDocumentListWithinComment';
                 $use_division = true;
                 break;
             case 'tag':
                 $args->s_tags = str_replace(' ', '%', $search_keyword);
                 $query_id = 'document.getDocumentListWithinTag';
                 break;
             default:
                 if (strpos($search_target, 'extra_vars') !== false) {
                     $args->var_idx = substr($search_target, strlen('extra_vars'));
                     $args->var_value = str_replace(' ', '%', $search_keyword);
                     $args->sort_index = 'documents.' . $args->sort_index;
                     $query_id = 'document.getDocumentListWithExtraVars';
                 }
                 break;
         }
     }
     /**
      * division은 list_order의 asc 정렬일때만 사용할 수 있음
      **/
     if ($args->sort_index != 'list_order' || $args->order_type != 'asc') {
         $use_division = false;
     }
     /**
      * 만약 use_division이 true일 경우 document division을 이용하도록 변경
      **/
     if ($use_division) {
         // 시작 division
         $division = (int) Context::get('division');
         // division값이 없다면 제일 상위
         if (!$division) {
             $division_args->module_srl = $args->module_srl;
             $division_args->exclude_module_srl = $args->exclude_module_srl;
             $division_args->list_count = 1;
             $division_args->sort_index = $args->sort_index;
             $division_args->order_type = $args->order_type;
             $output = executeQuery("document.getDocumentList", $division_args);
             if ($output->data) {
                 $item = array_pop($output->data);
                 $division = $item->list_order;
             }
             $division_args = null;
         }
         // 마지막 division
         $last_division = (int) Context::get('last_division');
         // 지정된 division에서부터 5000개 후의 division값을 구함
         if (!$last_division) {
             $last_division_args->module_srl = $args->module_srl;
             $last_division_args->exclude_module_srl = $args->exclude_module_srl;
             $last_division_args->list_count = 1;
             $last_division_args->sort_index = $args->sort_index;
             $last_division_args->order_type = $args->order_type;
             $last_division_args->list_order = $division;
             $last_division_args->page = 5001;
             $output = executeQuery("document.getDocumentDivision", $last_division_args);
             if ($output->data) {
                 $item = array_pop($output->data);
                 $last_division = $item->list_order;
             }
         }
         // last_division 이후로 글이 있는지 확인
         if ($last_division) {
             $last_division_args = null;
             $last_division_args->module_srl = $args->module_srl;
             $last_division_args->exclude_module_srl = $args->exclude_module_srl;
             $last_division_args->list_order = $last_division;
             $output = executeQuery("document.getDocumentDivisionCount", $last_division_args);
             if ($output->data->count < 1) {
                 $last_division = null;
             }
         }
         $args->division = $division;
         $args->last_division = $last_division;
         Context::set('division', $division);
         Context::set('last_division', $last_division);
     }
     // document.getDocumentList 쿼리 실행
     // 만약 query_id가 getDocumentListWithinComment 또는 getDocumentListWithinTag일 경우 group by 절 사용 때문에 쿼리를 한번더 수행
     if (in_array($query_id, array('document.getDocumentListWithinComment', 'document.getDocumentListWithinTag'))) {
         $group_args = clone $args;
         $group_args->sort_index = 'documents.' . $args->sort_index;
         $output = executeQueryArray($query_id, $group_args);
         if (!$output->toBool() || !count($output->data)) {
             return $output;
         }
         foreach ($output->data as $key => $val) {
             if ($val->document_srl) {
                 $target_srls[] = $val->document_srl;
             }
         }
         $page_navigation = $output->page_navigation;
         $keys = array_keys($output->data);
         $virtual_number = $keys[0];
         $target_args->document_srls = implode(',', $target_srls);
         $target_args->list_order = $args->sort_index;
         $target_args->order_type = $args->order_type;
         $target_args->list_count = $args->list_count;
         $target_args->page = 1;
         $output = executeQueryArray('document.getDocuments', $target_args);
         $output->page_navigation = $page_navigation;
         $output->total_count = $page_navigation->total_count;
         $output->total_page = $page_navigation->total_page;
         $output->page = $page_navigation->cur_page;
     } else {
         $output = executeQueryArray($query_id, $args);
     }
     // 결과가 없거나 오류 발생시 그냥 return
     if (!$output->toBool() || !count($output->data)) {
         return $output;
     }
     $idx = 0;
     $data = $output->data;
     unset($output->data);
     if (!isset($virtual_number)) {
         $keys = array_keys($data);
         $virtual_number = $keys[0];
     }
     if ($except_notice) {
         foreach ($data as $key => $attribute) {
             if ($attribute->is_notice == 'Y') {
                 $virtual_number--;
             }
         }
     }
     foreach ($data as $key => $attribute) {
         if ($except_notice && $attribute->is_notice == 'Y') {
             continue;
         }
         $document_srl = $attribute->document_srl;
         if (!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) {
             $oDocument = null;
             $oDocument = new documentItem();
             $oDocument->setAttribute($attribute, false);
             if ($is_admin) {
                 $oDocument->setGrant();
             }
             $GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
         }
         $output->data[$virtual_number] = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
         $virtual_number--;
     }
     $this->setToAllDocumentExtraVars();
     if (count($output->data)) {
         foreach ($output->data as $number => $document) {
             $output->data[$number] = $GLOBALS['XE_DOCUMENT_LIST'][$document->document_srl];
         }
     }
     return $output;
 }
Ejemplo n.º 7
0
 /**
  * Module_srl value, bringing the list of documents
  * @param object $obj
  * @param bool $except_notice
  * @param bool $load_extra_vars
  * @param array $columnList
  * @return Object
  */
 function getDocumentList($obj, $except_notice = false, $load_extra_vars = true, $columnList = array())
 {
     $sort_check = $this->_setSortIndex($obj, $load_extra_vars);
     $obj->sort_index = $sort_check->sort_index;
     // cache controll
     $oCacheHandler =& CacheHandler::getInstance('object');
     if ($oCacheHandler->isSupport()) {
         $object_key = 'object:' . $obj->module_srl . '_category_srl:' . $obj->category_srl . '_list_count:' . $obj->list_count . '_search_target:' . $obj->search_target . '_search_keyword:' . $obj->search_keyword . '_page' . $obj->page . '_sort_index:' . $obj->sort_index . '_order_type:' . $obj->order_type;
         $cache_key = $oCacheHandler->getGroupKey('documentList', $object_key);
         $output = $oCacheHandler->get($cache_key);
         if ($output) {
             return $output;
         }
     }
     $this->_setSearchOption($obj, $args, $query_id, $use_division);
     if ($sort_check->isExtraVars) {
         $output = executeQueryArray($query_id, $args);
     } else {
         // document.getDocumentList query execution
         // Query_id if you have a group by clause getDocumentListWithinTag getDocumentListWithinComment or used again to perform the query because
         $groupByQuery = array('document.getDocumentListWithinComment' => 1, 'document.getDocumentListWithinTag' => 1);
         if (isset($groupByQuery[$query_id])) {
             $group_args = clone $args;
             $group_args->sort_index = 'documents.' . $args->sort_index;
             $output = executeQueryArray($query_id, $group_args);
             if (!$output->toBool() || !count($output->data)) {
                 return $output;
             }
             foreach ($output->data as $key => $val) {
                 if ($val->document_srl) {
                     $target_srls[] = $val->document_srl;
                 }
             }
             $page_navigation = $output->page_navigation;
             $keys = array_keys($output->data);
             $virtual_number = $keys[0];
             $target_args->document_srls = implode(',', $target_srls);
             $target_args->list_order = $args->sort_index;
             $target_args->order_type = $args->order_type;
             $target_args->list_count = $args->list_count;
             $target_args->page = 1;
             $output = executeQueryArray('document.getDocuments', $target_args);
             $output->page_navigation = $page_navigation;
             $output->total_count = $page_navigation->total_count;
             $output->total_page = $page_navigation->total_page;
             $output->page = $page_navigation->cur_page;
         } else {
             $output = executeQueryArray($query_id, $args, $columnList);
         }
     }
     // Return if no result or an error occurs
     if (!$output->toBool() || !count($output->data)) {
         return $output;
     }
     $idx = 0;
     $data = $output->data;
     unset($output->data);
     if (!isset($virtual_number)) {
         $keys = array_keys($data);
         $virtual_number = $keys[0];
     }
     if ($except_notice) {
         foreach ($data as $key => $attribute) {
             if ($attribute->is_notice == 'Y') {
                 $virtual_number--;
             }
         }
     }
     foreach ($data as $key => $attribute) {
         if ($except_notice && $attribute->is_notice == 'Y') {
             continue;
         }
         $document_srl = $attribute->document_srl;
         if (!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) {
             $oDocument = null;
             $oDocument = new documentItem();
             $oDocument->setAttribute($attribute, false);
             if ($is_admin) {
                 $oDocument->setGrant();
             }
             $GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
         }
         $output->data[$virtual_number] = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
         $virtual_number--;
     }
     if ($load_extra_vars) {
         $this->setToAllDocumentExtraVars();
     }
     if (count($output->data)) {
         foreach ($output->data as $number => $document) {
             $output->data[$number] = $GLOBALS['XE_DOCUMENT_LIST'][$document->document_srl];
         }
     }
     //insert in cache
     if ($oCacheHandler->isSupport()) {
         $oCacheHandler->put($cache_key, $output);
     }
     return $output;
 }