전체 게시판 최신글입니다.(사용자별 최근게시물) 그누보드 5.3 용 정보
최신글 전체 게시판 최신글입니다.(사용자별 최근게시물) 그누보드 5.3 용관련링크
첨부파일
본문
스킨이라고 보기보다는 라이브러리입니다.
라이브러리를 올리는 공간이 없는거 같아 여기에 올립니다.
위 그림과 같이 최근게시물이 게시판 전체를 뽑아 올수 있습니다.
회원별 최근 게시물을 전체 게시판에서 뽑아 올수도 있습니다.
게시물은 등록된 순으로 뽑아옵니다.
그누보드 5.3 용입니다.
파일을 다운 받으신후 lib 폴더에 업로드합니다.
테마를 쓰시는 분은 테마의 head.php 파일을 수정합니다.
베이직 테마 사용자 ) /teme/basic/head.php
테마사용 안하는 경우) 메인/head.php
대충 11라인 정도 됩니다.
include_once(G5_LIB_PATH.'/latest.lib.php');
include_once(G5_LIB_PATH.'/latest_all.lib.php'); // latest.lib.php 밑에 추가해주세요.
최신글을 뽑아올 화면에서 다음과 같이 코드를 추가합니다.
<? echo latest_all('theme/basic', '전체게시판', 10, 24 ,array('notice')); ?>
1 인자 : 최근게시물 스킨
2 인자 : 제목(특정게시판을 뽑아오는것이 아니므로 제목을 결정하세요)
3 인자 : 줄수
4 인자 : 게시물 제목 길이
5 인자 : 제외할 게시판 ex) 자유게시판, 공지사항 제거시 array('notice','free')
최근게시물은 캐시를 사용하여 글 등록이나 수정이 없으면 캐시에 저장된 내용을 가져옵니다.
DB 커넥션을 줄이기 위해서죠. 따라서 글 등록이나 수정시, 삭제 시 새롭게 게시물을 불러올 수 있게
다음과 같이 수정해주셔야 합니다.
bbs/write_update.php 안에 대충 699라인 정도 됩니다.
bbs/delete.php 안 135라인 정도 됩니다.
delete_cache_latest($bo_table);
delete_cache_latest('all'); // 게시물 등록 수정 삭제 전체 게시판 최근게시물 캐시 삭제
빨간 소스 코드를 추가해주세요.
다음은 사용자별 최근 게시물을 뽑아 오는 방법입니다.
echo latest_all("theme/basic", "{$member['mb_nick']}님의 최근게시물", 10, 24 ,"",1," mb_id='{$member['mb_id']}' and "); // 전체게시판에서 접속자의 최근 게시물
echo latest_all("theme/basic", "{$member['mb_nick']}님의 최근게시물", 10, 24 , array('notice') ,1," mb_id='{$member['mb_id']}' and "); // 공지사항을 제외하고 접속자 최근 게시물
echo latest_all("theme/basic", "최고관리자님의 최근 게시물", 10, 24 ,"",1," mb_id='admin' and "); // 회원 아이디가 amdin(최고관리자)인 전체게시판에서의 최근 게시물
다음과 같이도 활용할 수 있습니다.
theme/tail.php 파일에서
<div id="aside">
<?php
//공지사항
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('theme/notice', 'notice', 4, 13);
?>
<?php echo outlogin('theme/basic'); // 외부 로그인, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?>
<?
if($member['mb_id'] != ""){
?>
<div style="padding: 0 19px 0 19px;">
<?=latest_all("theme/basic", "{$member['mb_nick']}님의 최근 게시물", 5, 13 ,"",1," mb_id='{$member['mb_id']}' and ");?>
</div>
<?
}
?>
<?php echo poll('theme/basic'); // 설문조사, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?>
<?php echo visit('theme/basic'); // 접속자집계, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?>
</div>
과 같이 소스를 수정할 경우
회원별 최근 게시물을 뽑아 낼 수 있습니다.
17
댓글 전체
감사합니다.
뭐가 잘못됬는지 게시물이 안나오네요?
설정은 잘한것 같은데..
저는 echo도 쓰지않고 왜 화면에 안나오지 이러고 30분 삽질 했었네요 ㅜㅜ 한번 체크해보세요.
<? echo latest_all('theme/basic', '전체게시판', 10, 24 ,array('notice')); ?>
이 소스를 어디에 추가해야 메인에 뜨게되나요?
너무 고맙습니다.
"게시물이 없습니다"
delete_comment.php와 write_comment_update.php의
delete_cache_latest($bo_table); 아래에 똑같이
delete_cache_latest('all'); 구문을 추가하면 적용됩니다~
무슨 이유에서인지 if(!G5_USE_CACHE || $cache_fwrite) 이곳에 닿지를 않습니다.
로그를 찍어보면 G5_USE_CACHE 는 true를 $cache_fwrite는 false를 리턴합니다.. 찾지를 못하겠네요.
union all의 전제조건이 필드의 수와 데이터타입이 같아야 하는데 몇 몇 게시판에 여분 필드를 넣었더니 오류가 나서 게시물을 불러오질 못했네요 ...
혹시 저처럼 여분필드 사용하시는 분들은 해당 게시판을 제외하든가, 아님 다른 게시판에도 똑같은 여분필드를 적용시켜주셔야 합니다. ㅠ.ㅠ
본문에 해당 팁을 기재해주시면 도움이 될 거 같습니다!!
이 댓글 덕분에 저도 고쳤습니다 ㅠ tag 넣어서 필드수가 늘어나니까 안되서 2시간 삽질한거 같네요
$row['wr_subject'] = "[{$row['bo_subject']}] {$row['wr_subject']}";
를 주석 처리하시면 됩니다.
// $row['wr_subject'] = "[{$row['bo_subject']}] {$row['wr_subject']}";
정말 필요했던 자료입니다.
장인개발정신님이 찾으신 내용데로 아래 부분도 처리해보세요.
delete_comment.php와 write_comment_update.php의
delete_cache_latest($bo_table); 아래에 똑같이
delete_cache_latest('all'); 구문을 추가하면 적용됩니다~
잘안나오고 어느날은 잘 나오는 문제는 캐쉬 문제인듯한데요.
관리자에서 캐쉬 일괄 삭제도 해보세요.
안나오는 날은 아예 게시물이 안나오는 것인지요?
저는 이렇게 뽑아오는데 에러가 납니다..
good!
저는 메인페이지에 쓰려고 이렇게 수정했습니다.
<div style="float:left;margin-left:1%" class="lt_wr">
<?php echo latest_all('theme/basic', '전체게시판', 10, 24 ,array('notice')); ?>
</div>
제외 array 에 url 창에도 있는 bo_table=gallery 의 gallery 를 추가해도
전체 게시판중 gallery 를 불러오는데 혹시 이유를 아실지요?
-------------
그대로 넣으니 링크주소의 bo_table 이
맨위 첫줄 게시물을 따라가네요.
for ( 안쪽에 $bo_table 을
$list[$i]['bo_table'] 로 변경해주시면 됩니다~
썸네일 출력 코드에도 $bo_table 이 있었네요 ㅎ
$bo_table > $list[$i]['bo_table']
다운받았습니다 감사합니다
감사합니다. 꼭 필요한 기능이였습니다.