통합검색 결과 개수 지정하기 - 코어 수정 없이 스킨에서 해결 방법

본문 바로가기

그누보드 통합검색 결과 개수 지정하기 - 코어 수정 없이 스킨에서 해결 방법

페이지 정보

작성자 키스세븐 댓글 0건 조회 3,543회 작성일 18-09-19 01:30

본문

[통합검색 결과 개수 지정하기 - 코어 수정 없이 스킨에서 해결 방법]



스킨에서 통합 검색 결과의 개수를 지정하려는 이유


통합검색을 하다보면 쓸데없이 너무 많은 검색 결과를 표시했다는 생각이 들 때가 있습니다. 그래서 통합 검색 결과 개수를 지정하고 싶을 때가 있습니다. 


예를 들어, 다른 포털 사이트처럼 웹사이트 검색 몇 개, 블로그 검색 몇 개... 이런 식으로 몇 개씩만 나타내면 좋을 경우입니다. 첫 페이지에서 각 게시판의 검색 결과 개수를 조절하고, 대신 표시될 게시판이 많이지면 방문자는 한 페이지에서 좀 더 여러 게시판의 내용을 탐색할 수 있습니다. 

국내의 다른 포털 사이트의 검색 첫 페이지처럼 각 게시판 당 5개씩만 표시하는 것을 해보려고 합니다. 


그런데 문제는 통합 검색 결과 개수 조정을 bbs 디렉토리의 search.php에서 해야 합니다. 이것은 문제가 좀 있습니다. 그누보드는 편리한 홈페이지 저작도구이지만 코어를 건드리게 되면 나중에 업데이트를 할 때 불편한 점이 많습니다. 그래서 통합 검색 결과 개수 지정을 검색 스킨에서 지정하려고 하는 것입니다. 




통합검색결과 개수 지정하기


그누보드의 기본적인 스킨 디렉토리에 들어갑니다. 검색에 해당하는 스킨은 "theme/basic/skin/search/basic" 디렉토리에 있습니다. 

아래는 검색 결과를 디자인하는 스킨파일인 search.skin.php에서의 검색 결과 배열 코드 소스입니다.

for ($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++) { // 필요한 개수만큼 세어가며 불러오라는 명령 

이 for문은 search.skin.php의 120번 정도에 존재하는데, Ctrl + F로 찾는 것이 정확합니다.

이 쿼리문에서 $i는 대상의 개수를 의미합니다. 즉 $i<count($list[$idx])는 게시물에서 검색된 수만큼 개수를 세라는 의미인 것입니다. 이것을 아래와 같이 간단하게 고쳐 봅시다.

for ($i=0; $i<3 && $k<$rows; $i++, $k++) { // 필요한 개수만큼 세어가며 불러오라는 명령 

위와 같이 하면 통합 검색 결과 개수 지정을 3개로 한정할 수가 있습니다. 즉, A게시판에서 3개, B게시판에서 3개... 이런 식으로 표시를 해 주는 것입니다. 

그로인해 한 페이지 내에서 더욱 많은 게시판을 표시할 수 있고, 한 두 게시판의 검색 내용이 너무 많아서 다른 게시판의 검색 결과가 다음 페이지로 넘어가는 것도 줄일 수 있습니다.


단, 이 방법은 그누보드의 코어 파일인 search.php을 건드리지 않고 스킨 파일인 search.skin.php에서 제어를 하는 것이 목적이므로 다른 부분의 수정까지는 설명하지 않습니다. 그러므로 의도치 않게 빈 공간이 생길 수 있으니, 쿼리문을 이해하지 못한다면 난감해질 수도 있습니다. 


통합 검색 결과 개수 지정을 반드시 코어 파일인 search.php에서만 할 필요는 없습니다. 물론 가장 완벽한 것은 코어파일에서 해결하는 것이지만, 간단한 것은 스킨 파일에서도 어느 정도 해결이 가능합니다.

추천0
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Copyright © 1997-. 키스세븐 www.kiss7.kr All rights reserved.