function _getDocumentItems($args) { // document 모듈의 model 객체를 받아서 결과를 객체화 시킴 $oDocumentModel =& getModel('document'); // 분류 구함 $obj->module_srl = $args->module_srl; $output = executeQueryArray('widgets.cameronSlider.getCategories', $obj); if ($output->toBool() && $output->data) { foreach ($output->data as $key => $val) { // 최상위 여부 파악 if ($args->category_range == 'first' && $val->parent_srl) { continue; } // 특정 분류만 출력 여부 파악 if ($args->specific_category && !in_array($val->category_srl, $args->specific_category_srl_list)) { continue; } $category_lists[$val->module_srl][$val->category_srl] = $val; } } // 글 목록을 구함 (+권한 확인) $obj->module_srl = $args->module_srl; $obj->sort_index = $args->order_target; $obj->order_type = $args->order_type == "desc" ? "asc" : "desc"; $obj->list_count = 100; // 한번에 가져올 글 목록 개수 if ($args->category_srl) { $obj->category_srl = $args->category_srl; } $pagecount = 0; $needcount = $args->list_count; // 가져와야 하는 글 개수 $obj->statusList = array('PUBLIC', 'SECRET'); $getcount = 0; // 가져온 글 개수 $content_items = array(); $first_thumbnail_idx = -1; while (true) { $pagecount = $pagecount + 1; $obj->page = $pagecount; $output = executeQueryArray('widgets.cameronSlider.getNewestDocuments', $obj); // 더이상 결과가 없으면 break if (!$output->toBool() || !$output->data || !count($output->data)) { break; } // 권한 확인해서 문서 목록 생성하기 foreach ($output->data as $key => $attribute) { $oDocument = new documentItem(); $oDocument->setAttribute($attribute, false); if ($getcount >= $needcount) { break; } // 해당 문서가 비밀글일 경우 권한이 있는지 확인, 없으면 continue if ($args->view_secret_document == 'use_permission' && $oDocument->isSecret() && !$oDocument->isGranted()) { continue; } else { if ($args->view_secret_document == 'not_show' && $oDocument->isSecret()) { continue; } } // 권한이 있다면 객체화 준비 $GLOBALS['XE_DOCUMENT_LIST'][$oDocument->document_srl] = $oDocument; $document_srls[] = $oDocument->document_srl; $getcount = $getcount + 1; if ($getcount >= $needcount) { break; } } if ($getcount >= $needcount) { break; } if ($pagecount >= $output->total_page) { break; } } // 결과가 있으면 각 문서 객체화를 시킴 if ($getcount > 0) { $oDocumentModel->setToAllDocumentExtraVars(); for ($i = 0, $c = count($document_srls); $i < $c; $i++) { $oDocument = $GLOBALS['XE_DOCUMENT_LIST'][$document_srls[$i]]; $document_srl = $oDocument->document_srl; $module_srl = $oDocument->get('module_srl'); $category_srl = $oDocument->get('category_srl'); $thumbnail = $oDocument->getThumbnail($args->thumbnail_width, $args->thumbnail_height, $args->thumbnail_type); $content_item = new cameronSliderItem($args->module_srls_info[$module_srl]->browser_title); $content_item->adds($oDocument->getObjectVars()); $content_item->setTitle($oDocument->getTitle()); $content_item->setNickName($oDocument->get('nick_name')); $content_item->setCategory($category_lists[$module_srl][$category_srl]->title); $content_item->setDomain($args->module_srls_info[$module_srl]->domain); $content_item->setContent($oDocument->getSummary($args->content_cut_size)); // 링크 방식 변경 if ($args->hyperlink == 'N') { $content_item->setLink("#"); } else { if ($args->hyperlink_src == 'article') { $content_item->setLink(getSiteUrl($domain, '', 'document_srl', $document_srl)); } else { if ($args->hyperlink_src == 'extravar') { $content_item->setLink($oDocument->getExtraEidValue($args->hyperlink_extravar)); } else { $content_item->setLink(getSiteUrl($domain, '', 'document_srl', $document_srl)); } } } $content_item->setThumbnail($thumbnail); if ($args->extravar_name) { $content_item->setExtraVar($oDocument->getExtraEidValueHTML($args->extravar_name)); } $content_item->add('mid', $args->mid_lists[$module_srl]); if ($first_thumbnail_idx == -1 && $thumbnail) { $first_thumbnail_idx = $i; } $content_items[] = $content_item; } $content_items[0]->setFirstThumbnailIdx($first_thumbnail_idx); } return $content_items; }