그누커뮨 GNUboard COMmUNities
트위터아이디로 로그인하기트위터ID로 로그인
내 커뮤니티는 내가 수정할 수 있기 때문에 의미있다!
그누보드를 다루기 위해 알아야할 알짜배기 정보들을 적어봅니다.
 
작성일 : 09-10-27 20:15

새글 있으면 new 표시

 글쓴이 : 말러83
조회 : 8,817  

키워드 : 그누보드, new아이콘, 뉴icon, 새글, 최신글, 메뉴에 표시

오토스크랩 : 일괄 스크랩 오토스크랩 설정 네이버 블로그로 스크랩 다음 블로그로 스크랩 이글루스로 스크랩 티스토리로 스크랩 텍스트큐브로 스크랩 트위터로 보내기
새 글이 있으면 게시판 이름 옆에 new 이미지를 띄우는 코드를 만들어봅시다.
1. $bo_table이 주어지면
2. 일단 몇시간 동안 새 글을 표시할지 $bo_table[bo_new] 설정을 가져오고,
3. 기준 시간을 설정합니다.
4. 그 게시판 DB에서 코멘트가 아닌 게시물들 중에, 기준 시간 이후에 올라온 글이 있다면 (예: 24시간 전 시점 이후에 새 글이 올라왔다면)
5. new 아이콘 출력

1. $bo_table이 주어지면
일단 함수를 만들되 $bo_table 이라는 변수를 받아오는 형식을 만들어봅시다.
function new_icon($bo_table) {
  // 어쩌고저쩌고
}
이렇게 만들면 되겠죠.

2. 일단 몇시간 동안 새 글을 표시할지 $bo_table[bo_new] 설정을 가져오고,
각 보드의 설정은 $g4[board_table]에 저장되어있으니 거기서 bo_table 값이 $bo_table과 일치하는 곳에서 "new 표시 시간" 설정을 불러와봅시다.
$temp = sql_fetch("select bo_new from `$g4[board_table]` where bo_table = '$bo_table'");


3. 기준 시간을 설정합니다.
현재로부터 new 표시 시간을 초로 환산한 시간만큼 빼고, 그것을 다시 날짜+시간 형식으로 바꿔봅시다.
$timefrom = date("Y-m-d H:i:s", time() - $temp[bo_new] * 60 * 60);


4. 그 게시판 DB에서 코멘트가 아닌 게시물들 중에, 기준 시간 이후에 올라온 글이 있다면 (예: 24시간 전 시점 이후에 새 글이 올라왔다면)
그 게시판 DB: $g4[write_prefix]$bo_table
코멘트가 아닌: !wr_is_comment
기준시간 이후: wr_datetime > $timefrom
자 이걸 쿼리로 적어봅시다.
"select wr_datetime from `$g4[write_prefix]$bo_table` where !wr_is_comment AND wr_datetime > '$timefrom'"


5. 만약 이런게 있으면 new 아이콘 출력
sql_fetch($sql)는 그누보드 내장 함수로 mysql_fetch_array(mysql_query($sql))을 줄여놓은 것입니다. 안에 쿼리문만 넣으면 그 결과를 배열로 반환해주는 정말 편한 함수죠.
여기서 기준 시간 이후에 올라온 글이 있다면 그 녀석의 시간을 받아오고, 그런 글이 있다면 if()문이 참이 되어 뉴 아이콘을 출력하게 됩니다.
if(sql_fetch("select wr_datetime from `$g4[write_prefix]$bo_table` where !wr_is_comment AND wr_datetime > '$timefrom'")) echo " <img src=\"$g4[path]/skin/board/basic/img/icon_new.gif\" />";


이걸 하나로 정리해봅시다.
function new_icon($bo_table) {
  global $g4;
  $temp = sql_fetch("select bo_new from `$g4[board_table]` where bo_table = '$bo_table'");
  $timefrom = date("Y-m-d H:i:s", time() - $temp[bo_new] * 60 * 60);
  if(sql_fetch("select wr_datetime from `$g4[write_prefix]$bo_table` where !wr_is_comment AND wr_datetime > '$timefrom'")) echo " <img src=\"$g4[path]/skin/board/basic/img/icon_new.gif\" />";
}


사용하는 방법은 원하는 위치에 <?new_icon("mahler83geniusboard")?> 이런식으로 써주시면 됩니다.

게시물의 저작권은 별도 표시가 없는 한 작성자에게 있습니다.
게시물 주소 : http://gnucomun.net/sp/study.14
7.8 (19명)
평가해주세요. 비회원 가능!
피우스 09-10-27 20:18
 
깔끔하게 하나로 정리가 되는군요!
피우스 09-10-30 08:14
 
아주 좋아요~
민호 09-11-21 19:33
 
너무 좋습니다. 적용해보니 잘됩니다.^^

그런데 그룹에 적용시키려면 어떻게 해야하나요?

이것도 감사한데 염치없이 질문드립니다^^

수고하세요
     
말러83 09-11-22 13:42
 
그 그룹에 있는 게시판 목록을 뽑아와서 각 게시판별로 위의 함수를 적용하면 될 것 같네요.
직접 해보시고 안되면 어떤식으로 코드를 짜보셨는지 알려주시면 첨삭해드릴게요.^^
김실장 09-12-06 15:31
 
예전에 제가 쓰던 팁보다 훨씬 간결해서좋네요.^^

감사합니다 !
이브 10-06-30 16:11
 
이해가 좀 안되는데여..새글이 있으면 알려주는것이
그누커뮨의 좌측에 있는 메뉴...아래와 같이..

• 최신 웹 동향
• 잡담하기
• 아이디어
• 커뮨 운영 노하우 N
• 커뮨 품평회
• 커뮨용 모듈
• 그누보드 공부방 N
• 그누커뮨 설문
• 그누트윗
• 트윗그누
• 아이폰 관련 트윗
• 그누커뮨 개발일지
• 출석부

여기에 뉴아이콘이 뜨는것을 말하는건가여?
만약 그럴경우에 예를 들면..소스상

최신 웹 동향 <?new_icon("webboard")?>
잡담하기 <?new_icon("freeboard")?>

위처럼 넣어줘야 하는게 맞는지여?
프로그램 잘 몰라서... 그러니 자세히 좀 알려주세요~ 꾸벅(__)
     
말러83 10-06-30 16:29
 
네 맞습니다~:)
 
 

Total 31
번호 제   목 글쓴이 평점 날짜 조회
31 자동 글쓰기 문의드립니다.. 조인성 10.00 10-08 4067
30 [질문] 음악파일 연속재쟁 (1) 회색지대 1.00 03-26 3738
29 말러캐쉬 적용후 공격관련 (3) 스누파이 10.00 11-21 3637
28 그누트윗 관련 문의드려요. (1) 서준파파 10.00 01-22 5702
27 alert 팝업창을.. 상단에 레이어로 나오게 하고싶은데.. 좀 가르쳐주세요. (1) 익명 10.00 10-17 6663
26 자꾸 질문을 해서 죄송하네요 ㅠㅠ (1) 무적홀맨 10.00 03-01 6465
25 오토스크랩 설치시 문제점.. (3) 무적홀맨 0.00 02-27 6073
24 그누트윗 ? 질문드려도 될까요 ? (3) 태마니 8.00 02-15 5055
23 head.sub.php 전역변수 숨기기 (javascript) (2) 유아원 8.67 01-23 9209
22 php 파일로 그누보드 글쓰기 (16) 말러83 7.74 12-21 40744
21 팝업창 한글 깨짐 해결하기 (1) 유아원 3.50 12-20 8302
20 메타태그 (keywords, description) 적용하기 (9) 유아원 9.50 12-11 7426
19 .htaccess로 외부 불펌 막기 (4) 말러83 9.00 12-06 6959
18 IE6에서 롤오버 이미지를 계속해서 재 읽는 버그 (2) 유아원 6.00 12-05 4648
17 검색결과 내용부분 태그 없애기 (1) 유아원 10.00 12-04 28708
 1  2  3  

Copyright ⓒ그누커뮨(http://gnucomun.net) All rights reserved.