Ejemplo n.º 1
0
 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;
 }