여러가지 옵션으로 가져오는 다기능 최신글 lib (테마지원버전) > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

여러가지 옵션으로 가져오는 다기능 최신글 lib (테마지원버전) 정보

여러가지 옵션으로 가져오는 다기능 최신글 lib (테마지원버전)

첨부파일

latest_multi.lib.php (5.5K) 1226회 다운로드 2021-04-09 17:13:55
테스트한 버전5.3
호환 가능 버전5.3 이상

본문

최신글을 여러가지 옵션으로 가져오는 다기능 최신글 함수입니다.
그누테마 기능이 추가되어, 테마를 지원하도록 업데이트 된 버전입니다.
캐시갱신시간 옵션이 추가되었습니다.
 
## 목적
- 메인에서 사용하는 latest 함수를, 좀더 다양한 기능을 가진 함수로 대체한다.
 
## 설치
- latest_multi.lib.php  파일을 그누보드폴더 아래의 extend 안에 넣는다.
 
## 사용방법
- latest_multi(스킨, 게시판아이디, 출력라인, 글자수, 캐시갱신시간, 옵션들);
ex) echo latest_multi("basic", $row['bo_table'], 5, 25, 0, "notice_up");
 
## 옵션의 종류
- notice_only : 해당 게시판의 공지글만 가져온다.
- notice_up : 공지글이 상단에 위치하도록 가져온다.
- notice_exclude : 공지글은 빼고 가져온다. 
- reply_exclude : 답변글은 제외한 목록 글들만 가져온다. 
- file_exist : 첨부파일이 있는 글들만 가져온다. 
- random : 랜덤으로 가져온다. 
- datetime_asc : 날짜가 오래된 순으로 가져온다. 
- datetime_desc : 날짜가 최근 순으로 가져온다. 
- hit_asc : 조회수 낮은순으로 가져온다. 
- hit_desc : 조회수 높은순으로 가져온다. 
- last_asc : 최근글 이전것부터 가져온다. 
- last_desc : 최근글 최근것부터 가져온다. 
- comment_asc : 코멘트 달린 갯수 적은 순으로 가져온다. 
- comment_desc : 코멘트 달린 갯수 많은 순으로 가져온다. 
- good_asc : 추천수 적은 순으로 가져온다. 
- good_desc : 추천수 많은 순으로 가져온다. 
- subject_asc : 제목 순으로 가져온다.
- subject_desc : 제목 역순으로 가져온다.
- ca_name_asc : 분류 순으로 가져온다.
- ca_name_desc : 분류 역순으로 가져온다.
- wr_1_asc : wr_1 필드 순으로 가져온다.
- wr_1_desc : wr_1 필드 역순으로 가져온다.
 
## 옵션 참고
- 옵션을 지정하지 않으면, 기본 latest 함수와 같이 동작합니다.
- 옵션은 콤마(,)로 구분해서 여러개를 같이 사용할 수 있습니다. 논리적인 오류가 없는 선에서.. ^^
예) <?php echo latest_multi("basic","notice",5,25,0,"notice_up,last_desc");?> 
 
## 주의 : 
- 그누보드5 는 메인에서 캐시파일을 사용하기 때문에, 관리자 > 환경설정 > 캐시파일일괄삭제 를 해 주셔야 합니다.
 
## 기타
- 사용하시다 원하시는 리스트 옵션이 있으시면, 댓글 달아 주시면 추가하도록 하겠습니다. ^^
- 여러 게시판에서 최신글을 가져오는 기능은 아직 추가하지 못했습니다. 죄송합니다. ㅠㅠ
 
## 수정
2021-04-09  $bo_table 같을때 캐시파일 구분자 추가
 
## 미리보기 : https://www.baragi.net
 
추천
6

댓글 전체

감사합니다. 추천~^^

아 그리고 기능 한가지 부탁 드리자면..
최근(7일이나설정으로) 게시물 중 추천수가 많은 순으로 뽑아올 수 있으면 좋겠네요~^^
잘쓸게요~^^
위의 내용을 그누프레스에도 적용이 가능한가요?
[gnupress_latest subject_asc bo_table=IHASIA url=http://anoh.net/wordpress/index.php/ihasia_gnu/ rows=99]
이런식으로 봤는데요. 사용하고 싶은데 안되서요~ 어떻게 하면 방법이 있을까요?
제가 프로그램을 할 줄 몰라서 어떻게 구현할지 고민했었는데, 감사합니다.
근데 여기에 써 있는 예제로 안 돼서 이렇게 하니 되네요.

echo latest_multi('theme/basic', 'notice', 5, 28, 0, "notice_up");

공지게시판의 공지옵션 글을 상단으로 표시하는 기능으로 사용했습니다.
잘 된다니 다행입니다.

본문의 예제는 그누보드 기본 소스에 있는 코드를 표현한 것이라서 그렇습니다.

함수의 두번째 파라미터에 게시판아이디를 넣으시면 됩니다.

감사합니다.
먼저 감사합니다.
공지글을 위로 올리고 공지글이 더이상없으면 최신글 순서로 정렬을 하고 싶은데
notice_up, last_desc 이 두가지 옵션을 사용하면 되는거에요?
<li><?php echo latest_multi("basic", "notice",8,43,0,"notice_up","last_desc");?></li>
이렇게 넣었는데 notice_up과 같은 결과가 나오는데 어떻게 사용해야하나요?..
<?php echo latest_multi("basic", "notice",8,43,0,"notice_up,last_desc");?>
이렇게 옵션을 콤마(,) 구분해서 하나의 파라미터로 넣어 주세요.
원하는 리스트 옵션추가내용
게시판에 분류별 최신글을 불러오는 옵션이 필요합니다~~

아래 스킨과 합치면 뭔가 나올것 같은데 저는 내공이 부족해서.....
좋은 작품 기대해 봅니다
참고 : 분류게시판 최신글 랜덤 썸네일
http://sir.kr/g5_skin/2928
<?php echo latest_multi("basic", "sub0201", 5, 25, 0, "notice_up");  ?>
이렇게노출시켰는데 화면에

select * from where bo_table = 'sub0201'

1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where bo_table = 'sub0201'' at line 1

error file : /gnuboard4/index.php

이렇게뜨는건 왜그런건가요 ㅠㅠ?
파일 상단에 그누보드에서 기본적으로 인클루드 되는 것들을 include 시키셨는지요?

일반적으로 _common.php 등이 인클루드 되어야 합니다.
/extend/latest_multi.lib.php 넣었습니다.

그누보드 기본 테마에서 테스트 중입니다.

    <div style="float:left;<?php echo $lt_style ?>">
        <?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        echo latest('theme/basic', $row['bo_table'], 5, 25);
        echo latest_multi("basic", $row['bo_table'], 5, 25, 0, "datetime_desc");
        ?>
    </div>


기본 최신글은 wr_id순으로 나옵니다.
게시판특성에 따라, wr_datetime desc순으로 나오도록 하려는데 모듈이 있어서..사용하려합니다.

현재는 위 그림처럼 wr_id 순서대로 나오고 있습니다.
/theme/baisc/index.php 파일에
아래와 같이 기본값 latest(...)를 리마크하고 latest_mult(..... datetime_desc) 로 하여
초기 화면에 나오고 있습니다.

    <div style="float:left;<?php echo $lt_style ?>">
        <?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        //echo latest('theme/basic', $row['bo_table'], 5, 25);
        echo latest_multi("basic", $row['bo_table'], 5, 25, 0, "datetime_asc");
        ?>
    </div>
테스트를 좀 더 해봤는데요(http://w3.orangesam.com)

새글이 적용되어야만, option방식으로 정렬이 되는거 군요

기존에 등록되어있던 상태에서
하위 글이 wr_datetime만 바뀐다고 최신글 목록에서 변경되는것은 아니고..


아. 뭔지 대충 알겠습니다.

그누보드5 는 최신글에 캐시를 사용합니다.
그래서, 최신글 테스트 할 때는 관리자페이지에서 캐시를 삭제해 가면서 테스트를 하셔야 합니다.
하나의 글이 추가되기전...
기 등록된 글이 wr_datetime이 변경되어 게시글 순서에는 변화가 생시더라도

최신글에는 변경되지 않아서. 문의드렸는데요

글이 새로 한건 추가되면서 최신글의 정보가 새로 변경되네요
select * from g5_write_ where wr_is_comment = 0 order by wr_datetime desc, wr_num limit 0, 5
1146 : Table 'kiha804.g5_write_' doesn't exist
error file : /index2.php

이런 에러는 왜 날까요 ?
게시판아이디 값이 없거나 넘어가지 않는 것 같습니다.

'g5_write_' 뒤에 게시판아이디 값이 붙어야 됩니다. 'g5_write_xxxxxx' 처럼이요.
스킨 너무 잘 사용하고 있습니다. 혹시 다른분들 참고하라고 흔적 남깁니다

첫번째: 같은 스킨을 한 페이지에서 쓰면 작동이 안하네요.  이점만 주의하면 다른것은 완벽하게 잘 작동합니다.

두번째: 그냥 tip 입니다.  두개 차이점을 처음에 헷갈렸느데 2번이 활용도가 높네요~^^
  1.datetime_desc ,datetime_asc 단순한 게시글 순

  2.last_desc ,last_desc 게시물과 댓글 둘다 최신(활용도 높음.)

잘쓰겠습니다. 감사드립니다~~~
혹시 분류명을 기준으로도 정렬 가능한가요?? ca_name desc
if (stristr($options, "ca_name_desc")) $sql_order .= " wr_ca_name desc, ";
위처럼 파일에 추가하고.
<?php echo latest_multi("theme/jw_ga_la_01","allnan",50,20,0,"ca_name_desc");?>  이런식으로
적용해봤는데. 먹통이 되네요. 물론 캐쉬는 지우면서 해봤는데~
분류명 필드는 wr_ca_name 이 아니고, 그냥 ca_name 입니다.
ca_name 으로 한번 해 보시기 바랍니다.

저도 확인후에 해당 기능을 추가해 보겠습니다.
멋진 플러그인을 공개해주셔서 감사합니다.  제가 테스트용 서버에서 구동시켜볼 때는 잘 작동이 되었는데 본 서버에 데이타를 일괄로 복사해서 돌려보니 작동이 되지 않네요. 혹시 왜 이런 현상이 생기는 지 설명 좀 부탁드려도 될까요. 너무 궁금해서요.... 테스트 버서와 본 서버는 php , sql 버전이 좀 다르고 그누보드 세팅과 버전은 동일합니다
최신글은 기본적으로 캐시를 사용하므로, 관리자 페이지에서 캐시파일을 삭제하시고 테스트 해 보시기 바랍니다.
그래도 동작하지 않으면, 조금더 자세한 현상을 알려주시면 감사하겠습니다.
꼭 필요했던 플로그인인데 공개해 주셔서 감사합니다.
그누보드5에 적용했으며 게시판 글을 메인화면에 랜덤하게 보여주고 싶습니다.
위에 설명대로 세팅을 하였는데 작업후 관리자에서 캐시를 삭제후에는 랜덤하게 보여집니다.
그리고 이후 다른 컴퓨터 2대에서 각각 보면 랜덤하게 보여지지 않고 계속 같은 순서로 보여집니다. 관리자에서 캐시 삭제후와 새글 등록시 처음에는 랜덤하게 보여이고 이후에는 동일한 화면으로 게속 보여집니다. 각각 랜덤하게 보여지게 하려면 어떻게 해야 할까요?
2가지 정도의 방법이 있습니다.

1. (그누보드루트)/config.php 파일 안에 있는 아래 설정을 변경
define('G5_USE_CACHE',  true); // 최신글등에 cache 기능 사용 여부

2. latest_multi 함수의 파라미터에서 cache_time 을 변경
// $cache_time - 캐시 갱신시간, 단위는 시간이며, 0 이면 갱신하지 않습니다.

위 설정에서 1번이 우선이며, 1번이 false 이면 cache 자체를 사용하지 않습니다.
1번이 true 일 경우, 2번의 설정으로 최신글 캐시를 주기적으로 지우고 새로 생성할 수 있습니다.

참고로, cache 자체를 사용하지 않는 것은 서버에 부담을 줄 수 있습니다.
전체 게시판에서 공지글만 가져오게도 설정이 가능할까요?
게시판명에 ALL 적으면, 전체 게시판에서 가져오게 그런식으로. ㅎㅎ
안녕하세요.
혹시 이런 기능도 가능할까요?
최신글 불러올때 3개를 불러 올건데, 가장 최신 3개 말고, 그다음의 3개를 불러오고 싶습니다.

그러니깐 게시판에
10. 게시물 제목
9. 게시물 제목
8. 게시물 제목
7. 게시물 제목
6. 게시물 제목
5. 게시물 제목
4. 게시물 제목
3. 게시물 제목
2. 게시물 제목
1. 게시물 제목

이렇게 10개의 게시물이 있다면
최신글 3개 불러올때 기본적으로 10, 9, 8번이 불러와 지는데,
최신글에서 7,6,5번의 글을 불러오고 싶은거지요.
옵션에 이방법은 없는거 같아서요.
제가 빌더를 사용하지 않아서 확답을 드리지는 못하겠지만,
그누보드 원본 소스와 많이 다르지 않기 때문에, 사용가능할 것 같습니다.
우와ㅜ ㅜ 공지글만 따로 불러오는 방법 계속 찾고 있었어요 ㅜ ㅜ 제가 웹퍼블 초보라 진짜 제일 간단한 방법들만 이해할 수 있어서 다른 분들 도움이 너무 어려웠는데, 진짜 제가 찾던 딱 그 방법이라 너무 감사합니다!!!!+_+
한 페이지 안에서 두가지 경우를 모두 불러오고 싶은데, 상위에 적용된 기능을 아래에서도 그대로 받아오더라구요ㅜ 혹시 각각 다른 기능을 불러오고 싶은데 가능할까요?
'한 페이지 안에서 두가지 경우를 모두 불러오..' 가 어떤 상황인지 잘 모르겠습니다.
함수를 여러번 사용해도 문제없이 동작할 것으로 예상됩니다만,
좀 더 자세한 상황을 알 수 있을 까요?
넵넵 ㅜ
http://br00624.cafe24.com/
공지사항 부분에는 공지글만
문의사항 분에는 공지만 제외하고 불러오고 싶습니다.

그래서 공지사항 부분에는
<? echo latest_multi("basic", "free", 5, 25, 0, "notice_only"); ?>

그리고 문의사항 부분에는
<? echo latest_multi("basic", "free", 5, 25, 0, "notice_exclude"); ?>

이렇게 했는데,
둘다 notice_only 로 나오더라구요 ㅜ
죄송합니다.
$bo_table 이 같을때 잘 못 나오는 버그가 있었습니다.

수정하여 올려 놓았으니, 다시 받아서 사용해 보세요.
관리자페이지에서 캐시파일을 삭제해 주세요.
아니요아니요 ㅜ 죄송하긴요!!!
php 1도 모르는데, 이런 편리한 기능주셔서 진짜 너무너무 잘 사용하고 있습니다!!!!!
바로 수정도 해주시고 진짜진짜 감사합니다 ㅜ ㅜ !!!!!!
안녕하세요. 좋은 기능 공개 해주셔서 감사합니다.

적용을 해봤는데 작동이...음.
관리자에서 캐쉬 지우면 랜덤으로 됩니다.(랜덤으로 나오기 테스트중)

그런데 1번 랜덤 후 변동이 없습니다.
다시 관리자에서 캐쉬 지우면 랜덤으로 또 변합니다.

어떻게 수정 가능 할까요? 전 랜덤으로 나오게 하기만 되는데요 ^^

수고하세요.
그누보드는 기본적으로 최신글 등에서 캐시를 사용합니다.
이걸 캐시를 사용하지 않게 끌수도 있는데,
그누보드폴더에 있는 config.php 파일 안의 아래 설정에서 하실 수 있습니다.
```
define('G5_USE_CACHE',  true); // 최신글등에 cache 기능 사용 여부
```

캐시를 사용하지 않으면 접속자가 많을 때 부하를 증가시킬수 있기 때문에,
일반적으로 캐시를 사용하시기를 권장합니다.

차선책으로,
첨부파일의 소스에 보면 $cache_time 설정이 있는데, 이를 이용해서 캐시 갱신 시간을 조절할 수 있습니다.
```
// $cache_time 캐시 갱신시간, 단위는 시간이며, 0 이면 갱신하지 않는다.
```
안녕하세요. 친절한 답변 감사합니다.
왠만한면 원본 소스를 안건들려고요.
마침 스킨게시판에 랜덤관련 자료가 올라와서 그것을 현재 접목 해보고 있습니다. 기능은 마스터님께 막강한것 같은데. 옵션이 많아서.
제가 당장필요한건 랜덤이라서요.
좋은 하루 되세요.
안녕하세요 혹시 질문이 있습니다!
notice_up 옵션을 사용했을 때 공지글을 최대 4개까지만 불러오고 그 뒤에는 일반 글이 뜨게 할수는 없을까요???
어떻게 수정을 해야할지 감이 안잡혀서 도와주시면 정말 감사드리겠습니다.
전체 394
그누보드5 플러그인 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIR SOFT