게시판이 아닌 다른 서드파티에서 문서와 다르게 새글표시를 별도로 해주기 위해 새글표시모듈에서 처리되고 있는 새글,새댓글 상태인지 확인이 필요한데요.
/**
* @brief new 적용. 모듈 실행 여부만 확인한 후 _procNew() 함수를 실행한다.
* @param[out] $menu_list 새글 표시를 적용할 메뉴 정보
**/
function procNew(&$menu_list) {
if (Context::getResponseMethod() != 'HTML' || Context::get('module') == 'admin') return;
$oMenuNewModel = getModel('zzz_menu_new');
$config = $oMenuNewModel->getConfig();
$site_info = Context::get('site_module_info');
if ($config->use_menu_new != 'Y') return;
$this->_procNew($menu_list, $config, $site_info->site_srl);
}
/**
* @brief new 적용 (재귀)
* @param[out] $menu_list 새글 표시를 적용할 메뉴 정보
* @param[in] $config 환경설정 정보
* @param[in] $site_srl 현재 메뉴가 속한 가상 사이트 번호
*
* 메뉴 정보를 재귀적으로 돌면서 새글 표시를 적용한다.
* 새 글/댓글 여부는 캐시 파일을 이용하여 확인하는데 메뉴 링크에서 mid를 추출하여
* 해당하는 캐시 파일을 include하여 마지막 글/댓글의 시간을 알아낸다.
**/
function _procNew(&$menu_list, &$config, &$site_srl) {
if (!count($menu_list)) return;
$is_new = false;
foreach($menu_list as $menu_srl => $menu_item)
{
$regdate = 0;
$regdate_com = 0;
$game = '0';
// 하위 메뉴가 있으면 먼저 처리
$is_sub_new = false;
if(count($menu_item['list']))
{
$is_sub_new = $this->_procNew($menu_list[$menu_srl]['list'], $config, $site_srl);
}
// mid, category_srl 구하기
$oMenuNewModel = getModel('zzz_menu_new');
$mid = $oMenuNewModel->getMid($menu_item['url']);
$category_srl = $oMenuNewModel->getCategorySrl($menu_item['url']);
// 해당 mid에 새글 표시 사용인지 확인
$is_use = in_array($mid, $config->mid_list2);
if ($config->select_module_mode == 'out') $is_use = !$is_use;
if (!count($config->mid_list2)) $is_use = true;
if (!empty($mid) && $is_use) {
// 현재 메뉴의 마지막 글 시간
// 카테고리 메뉴이면 카테고리를 이용한다.
if ($category_srl) {
$cache = sprintf("%s/category_doc.%d.php", $this->menu_new_cache_path, $category_srl);
@include $cache;
}else{
$cache = sprintf("%s/%d.%s_doc.php", $this->menu_new_cache_path, $site_srl, $mid);
@include $cache;
// 현재 메뉴의 마지막 댓글 시간
if ($config->use_comment == 'Y') {
$cache = sprintf("%s/%d.%s_com.php", $this->menu_new_cache_path, $site_srl, $mid);
@include $cache;
}
}
}
// 설정된 시간 이내 새글이 있으면 new 이미지 추가
if (($config->up_new == 'Y' && $is_sub_new == MENU_NEW_DOCUMENT) || intVal($config->time_check) < intVal($regdate) ) {
if (!empty($menu_item['link'])) $menu_list[$menu_srl]['link'] .= $config->new_image_tag;
if ($config->text_new == 'Y' && !empty($menu_item['text'])) $menu_list[$menu_srl]['text'] .= $config->new_image_tag;
$is_new = MENU_NEW_DOCUMENT;
}
// 설정된 시간 이내 새 댓글이 있으면 new 이미지 추가
else if (($config->up_new == 'Y' && $is_sub_new == MENU_NEW_COMMENT) || intVal($config->time_check) < intVal($regdate_com)) {
if (!empty($menu_item['link'])) $menu_list[$menu_srl]['link'] .= $config->new_comment_image_tag;
if ($config->text_new == 'Y' && !empty($menu_item['text'])) $menu_list[$menu_srl]['text'] .= $config->new_comment_image_tag;
// 메뉴 중 하나라도 새글이 없을 때만 새댓글 표시한다.
if ($is_new != MENU_NEW_DOCUMENT){
$is_new = MENU_NEW_COMMENT;
}
}
}
return $is_new;
}
아마 위 부분이 가장 관련 높은 부분 같습니다.
제가 원하는 특정메뉴가 저 값을 가지고 있는지 여부를 확인하고 싶습니다.
$is_new 가 없다면 혹은 있다면 으로 확인하면 될까요??
레이아웃에서 활용하려면
{@ $oZzz_menu_newController = getController('zzz_menu_newController');}
이렇게 불러와야 하나요??
메뉴를 반복문으로 출력하는 부분에 조건을 걸려고 합니다.
<!--@if(!$is_new)-->별도의 새글 표시 코드<!--@end-->
메뉴 출력하는 곳 array 값을 확인해보니
$val['node_srl'] 이 값이 메뉴의 번호일 것 같습니다. 이 특정한 메뉴가 새글,새댓글 값을 가지고 있는지 확인하면 될 것 같기도 한데요.
본문에 제가 필요한 조건을 걸 수 있으면 좋겠습니다.