게시판으로 구성된 메뉴 옆에 해당 게시판의 총 게시물 수를 표기하려고 합니다.

어떻게 하면 넣을 수 있을까요?

 

 

  • Lv4
    <li loop="$val2['list']=>$key3,$val3" ~~~~.... > //메뉴 루프 구간
    {@
    $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>

    나와있는 팁 참조해봤습니다. 더 나은 방법이 있는지는 모르겠네요.
  • Lv4 Lv5
    감사합니다 저는 팁을 못찾겠던데...^^;;; 좋은하루되세요~
  • Lv19

    윗 댓글의 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) 메뉴로 지정된 모듈이 게시판인 경우에만 게시글 카운트가 시도될 것 같습니다.

    다만, 페이지가 로드될 때마다 복수의 게시판들에서 게시글 카운트 쿼리가 시도되기 때문에 추천할 만한 방법인지는...
    가능하다면 별도 모듈을 제작해서 게시판별 카운트를 캐시해두고, 문서 등록/삭제 때 트리거로 캐시된 카운트를 업데이트하다가, 페이지 로드 때 캐시에 저장된 데이터를 불러오는 게 효율적일 것 같습니다.

  • Lv19 Lv5

    감사합니다. 좋은 의견도 감사드려요^^ 매번 변태적인 걸 많이 생각하다보니...ㅎ..... 식사 맛있게하세요~

  • Lv23
    위 두분의 내용으로 구현은 가능하겠지만.. 전체 갯수를 가져오는 쿼리는 해당 갯수만큼 모든 게시글의 쿼리르 하나씩 훑어 지나가는 형태가 되므로 사이트의 부하 또는 문제점이 생각보다 아주 "심각"상태를 들어갈 수 있을 정도록 느려질 각오 하시고 적용하시기 바랍니다.
  • Lv23 Lv5
    엄청 많은 양의 게시물을 담은 게시판이 아니라 괜찮것 같기도 합니다만... 겁이 나긴 하는군요 ㅎㅎ
  • Lv5 Lv23
    아마 해당 쿼리자체가 워낙 느린 형태로 인덱스도 재대로 못타고 갯수를 가져오는 방식일거라 자칫 잘못하면 성능이 아주 떨어질 수 있긴해요.. ㅎㅎ 제가 이런 류의 최적화를 좀 많이 작업을 하다보니 이런것들이 좀 ㅎㅎ 걱정 하게 되더라고요