게시판을 용도에 따라 역순, 제목순 또는 날짜순, 첨부파일순 등으로 정렬시키기 > Web Development

본문 바로가기
  • kb@lovelet.com
사이트 내 전체검색

RESOURCES Web Development

게시판을 용도에 따라 역순, 제목순 또는 날짜순, 첨부파일순 등으로 정렬시키기

페이지 정보

본문

저는 이천시 장호공고에 근무하는 국어교사입니다. 제로보드의 도움으로 여러가지 웹기반 교육 프로그램을 구축해 보다가 혼자서 밤새고 하다가 간신히 성공한 부분이 있어서 혹시 다른분들께 도움이 될까 싶어 글을 올려봅니다.
문제는 게시판을 용도에 따라 역순, 제목순 또는 날짜순, 첨부파일순 등으로 정렬을 시키도록 하고자 한 것입니다. 게시판 최초 설정에서 지정해 주면 특별한 어레인지 변수가 없을때 지정한 항목 순서로 정렬시켜 보여주도록 하는 거지요. 별별짓을 다하다가 되던데 워낙 소스를 다룰 줄 몰라서 헤맸습니다. 혹시나 저 같은 고민을 하시는 분이 있다면 도움이 되길 바래보면서, 제가 한 방법을 차근차근 적어 보겠습니다. 문제가 있으면 전 잘 모르니까 고수님들께서 지적을......



1. 먼저, 마이에스큐엘디비에 접근해서 zetyx_admin_table에 필드를 하나 추가합니다.
이름은 arrange,타입은 VARCHAR 255, Null은 NOT Null,기본값은 headnum으로 주시면 됩니다.

2. 제로보드 어드민 폴더에 있는 admin_add_board.php파일을 수정합니다.

<?
// /skin 디렉토리에서 디렉토리를 구함
$skin_dir="skin";
$handle=opendir($skin_dir);
while ($skin_info = readdir($handle))
{
if(!eregi("\\.",$skin_info))
{
if($skin_info==$data[skinname]) $select="selected"; else $select="";
echo"$skin_info";
}
}
closedir($handle);
?>

이 부분을 찾아서 바로 뒤에 다음 소스를 추가합니다.

정렬
일반
역순
제목
이름
카테고리
sitelink1
sitelink2
file_name1
file_name2
download1
작성일
조회
추천
댓글
zx
zy


3. 다음 수정파일은 보드설정을 고치는 파일, 즉 admin_modify_board.php입니다.
마찬가지로 다음 부분을 찾아서 바로 뒤에 추가해 줍니다.
<?
// /skin 디렉토리에서 디렉토리를 구함
$skin_dir="skin";
$handle=opendir($skin_dir);
while ($skin_info = readdir($handle))
{
if(!eregi("\\.",$skin_info))
{
if($skin_info==$data[skinname]) $select="selected"; else $select="";
echo"$skin_info";
}
}
closedir($handle);
?>




->추가할 소스(좀 무식한 코드입니다. 죄송...실력부족으로)

정렬
>일반
>역순
>제목
>이름
>카테고리
>sitelink1
>sitelink2
>file_name1
>file_name2
>download1
>작성일
>조회
>추천
>댓글
>zx
>zy






4. 다음은 제로보드 폴더의 _head.php를 수정합니다. 파일을 열어 다음 부분을 찾습니다.

// 정렬 기능 : $select_arrange 는 정렬 필드, $desc 는 정렬, 역정렬시
if(!$select_arrange) $select_arrange="headnum";
if(!$desc) $desc="asc";


이곳의 if(!$select_arrange) $select_arrange="headnum"; 부분을 지우고 다음과 같이 수정합니다.

if(!$select_arrange){if ($setup[arrange]==desc) {$desc="desc";$select_arrange="headnum";} elseif($setup[arrange]==hit|vote){$desc="desc";$select_arrange="$setup[arrange]";}else {$select_arrange="$setup[arrange]";}}

이렇게 하면 추천이나 조회순으로 정렬을 하면 많은 것이 위에 오게 됩니다.

한가지 빠뜨렸군요.....
admin_exec_board.php 를 수정해야 합니다.
avoid_tag='$avoid_tag', avoid_ip='$avoid_ip',를 찾으셔서 바로 뒤에 arrange='$arrange',를 추가해 주시고 ,
use_comment,use_formmail,use_showreply,use_secret,filter,avoid_tag, avoid_ip,를 찾으셔서 바로 뒤에 arrange,를 추가해 주세요.

이제 제로보드는 게시판에 따라 지정한대로 정렬을 시킬 수 있는 막강한 보드가 되겠습니다.
아차! 소스를 수정하신 다음에는 자신의 기존 게시판 설정을 한번씩 해 주어야 어레인지 필드에 값이 저장되어 에러가 나지 않습니다.

제가 초짜라 엉성한 부분이 많습니다. 문제 생기면 강호 고수님들께서 댓글로 보완하여 주시면 감사하겠습니다.

Share Post:

댓글목록

등록된 댓글이 없습니다.

Sign In
OR
Don't have an account? SIGN UP

Keywords

Visits

접속자

Total Visits
1,892,235