묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
왼쪽 3차 트리메뉴에..
2009.06.17 19:18
왼쪽 3차 트리메뉴에 새글이 올라오면 메뉴명 옆에 new 표시가 뜨게 하려면
어떻게 해야할까요.....
어떤 작업을 해야할까요.. 고수분들 알려주세요 ㅠㅠ
일반적으로는 안되고 DB 호출해서 결과 받아서 판단하는 내용을 만드셔야 합니다.
메뉴는 아니지만 과거 카테고리에 출력해주는 걸 만든 적이 있는데요.
가능하시다면 아래 함수를 보시고 참고해보시기 바랍니다.
function category_newest($category_num,$time_interval = 43200){
$mo_document = &getModel('document');
$category_list = $mo_document->getCategoryList(Context::get('module_srl'));
$category_info = $category_list[$category_num];
$category_info->childs[] = $category_num;
$category_srl = implode(',',$category_info->childs);
$obj1->sort_index = 'list_order';
$obj1->order_type = 'asc';
$obj1->list_count = 1;
$obj1->category_srl = $category_srl;
$output1 = executeQueryArray('widgets.category.getCategoryDocuments', $obj1);
// 오류가 생기면 그냥 무시
if(!$output1->toBool()) return;
if(!$output1->data[0]->document_srl) return;
$obj2 = $obj1;
$obj2->sort_index = 'update_order';
$output2 = executeQueryArray('widgets.category.getCategoryDocuments', $obj2);
// 오류가 생기면 그냥 무시
if(!$output2->toBool()) return;
if(!$output2->data[0]->document_srl) return;
$list_order = $output1->data[0]->list_order;
$update_order = $output2->data[0]->update_order;
if($list_order > $update_order) {
$value = 'update';
$time = $output2->data[0]->last_update;
} else {
$value = 'new';
$time = $output1->data[0]->regdate;
}
// 최신 시간 설정
$time_check = date("YmdHis", time()-$time_interval);
// 새글 체크
if($time<$time_check) return;
// 아이콘 디렉토리 구함
$path = sprintf('%s%s',getUrl(), 'modules/document/tpl/icons/');
$buff = sprintf('<img src="%s%s.gif" alt="%s" title="%s" style="vertical-align:middle;"/>', $path, $value, $value, $value);
return $buff;
}