게시판 게시물 상단고정(우선 배치) 한줄 간편 소스, 강제 끌어올림, 끌올 > 그누보드5 팁자료실

그누보드5 팁자료실

게시판 게시물 상단고정(우선 배치) 한줄 간편 소스, 강제 끌어올림, 끌올 정보

게시판 게시물 상단고정(우선 배치) 한줄 간편 소스, 강제 끌어올림, 끌올

본문

특정 게시판에서 특정 게시물을 '공지' 를 활용하지 않고 최상단에 배치하고 싶을 때 mysql 의 order by 쿼리문을 통해 정렬 순서를 조정하는 방법입니다. 예를 통해 설명하겠습니다.


예시.

자유게시판(free)에서 '그누보드'라는 키워드가 제목(wr_subject)에 포함된 게시물을 우선 뿌려지도록 하기.

 

1. extend 파일 생성
/extend/dings_bbs_lift.php 처럼 extend 디렉토리에 php 파일 생성.

 

2. 생성한 파일 내용 작성


if ($bo_table === 'free') $board['bo_sort_field'] = 'wr_subject LIKE "%그누보드%" desc, '.$board['bo_sort_field'];

 

3. 끝

 

--------------------------------------------------------------------------------------------------

 

작동 원리.

게시판 설정 페이지 보면 정렬 방법을 어떻게 할지 설정하는 부분이 있습니다.

그 게시판 설정값을 common.php 에서 읽어 들이고, 게시판 목록에서 사용할 때 bbs/list.php 에서

$sst 변수에 담게 되는데요. $sst 변수에 담기 전, 설정된 값을 중간에서 가로채 정렬 방법을 변경하는 원리입니다.

 

common.php 를 보면

448 라인 쯤, 게시판의 설정을 불러들이는 $board 변수를 읽어온 후에
59 라인 정도에서 extend 파일을 읽어옵니다.

따라서 나중에 읽는 extend 파일을 통해 $board의 정렬 관련 변수의 내용 $board['bo_sort_field'] 를

변경해주는 것입니다.

 


if ($bo_table === 'free') $board['bo_sort_field'] = 'wr_subject LIKE "%그누보드%" desc, '.$board['bo_sort_field'];

 

"만약 자유게시판이라면 제목에 그누보드가 포함된 내용을 정렬한 다음 게시판 설정 정렬값으로 정렬해라." 라는 의미에요.

 


'wr_subject LIKE "%그누보드%" desc, '


이 부분에서 먼저 정렬되기를 원하는 규칙을 넣어주시면 됩니다. 우선순위가 단계별로 여러가지가 있을 땐 '규칙1, 규칙2, ' 이렇게 넣어도 되겠죠.

더 좋은 방법이 있을지도 모르겠지만 급하게 사용하기 좋은 것 같아 공유드립니다~!


ps. 이 원리를 이용하면 여분필드를 이용해 게시글 끌어올림 같은것도 구현하기 좋을 것 같네요.

추천
4

댓글 6개

전체 4 |RSS

회원로그인

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