게시판으로 구성된 메뉴 옆에 해당 게시판의 총 게시물 수를 표기하려고 합니다.
어떻게 하면 넣을 수 있을까요?
PHP | PHP 7.4 |
---|---|
CMS | Rhymix 2.1 |
게시판으로 구성된 메뉴 옆에 해당 게시판의 총 게시물 수를 표기하려고 합니다.
어떻게 하면 넣을 수 있을까요?
윗 댓글의 li 태그 안을 이렇게 해도 될 것 같아요.
{@
$menu_item_document_count = null;
$menu_item_module_info = ModuleModel::getModuleInfoByMid($val3['url']); //$val3['url'] 부분은 해당 메뉴 depth에 따라 다릅니다.
if ( $menu_item_module_info->module === 'board' ):
$menu_item_document_count = DocumentModel::getDocumentCount($menu_item_module_info->module_srl);
endif;
}
<a href="{$val3['href']}"~~~~~..... >{$val3['link']}<!--@if(isset($menu_item_document_count))-->({$menu_item_document_count})<!--@end--></a>
이렇게 하면 1) 캐시를 이용해 모듈 정보를 가져올 수 있고, 2) 메뉴로 지정된 모듈이 게시판인 경우에만 게시글 카운트가 시도될 것 같습니다.
다만, 페이지가 로드될 때마다 복수의 게시판들에서 게시글 카운트 쿼리가 시도되기 때문에 추천할 만한 방법인지는...
가능하다면 별도 모듈을 제작해서 게시판별 카운트를 캐시해두고, 문서 등록/삭제 때 트리거로 캐시된 카운트를 업데이트하다가, 페이지 로드 때 캐시에 저장된 데이터를 불러오는 게 효율적일 것 같습니다.
{@
$args = new stdClass();
$args->mid = $val3['url']; //$val3['url'] 부분은 해당 메뉴 depth에 따라 다릅니다.
$output1 = executeQuery('module.getModuleSrlByMid', $args);
$args->module_srl = $output1->data->module_srl;
$output2 = executeQuery('document.getDocumentCount', $args);
}
<a href="{$val3['href']}"~~~~~..... >{$val3['link']}({$output2->data->count})</a>
</li>
나와있는 팁 참조해봤습니다. 더 나은 방법이 있는지는 모르겠네요.