NeoBoard 시간별, 쓰레드 정렬 동시 이용 패치

성명  
   achor ( Vote: 35 )
홈페이지      http://empire.achor.net
분류      제작

게시판에 시간별 정렬 기능을 추가했습니다.

FreeBoard 게시판의 리스트 화면에서 상단을 보시면 '시간별 정렬'이라는 바가 보일 거예요.

그걸 누르시면 게시물들이 시간별로 정렬됩니다.



시간별 정렬 후에는 다시 '쓰레드 정렬' 바로 변환되어

원래 화면으로 돌아올 수 있습니다.



시간별 정렬은 게시물들을 작성 시간대로 출력하는 것이고,

쓰레드 정렬은 게시물들을 계층적인 구조에 따라서 출력하는 원리입니다.

과거 PC통신 시대에는 시간별 정렬이 대세를 이루었지만

요즘 인터넷 시대에는 쓰레드 정렬이 대세를 이루고 있죠.



원리는 어렵지 않지만 NeoBoard 자체의 변수가 워낙 꼬여 있어

require 따라가면서 소스 분석하는 데만도 꽤 시간이 걸렸네요. --;

NeoBoard는 아무리 봐도 제가 본 최고의 게시판입니다. --;

어찌나 복합하고 정교한지...



특히 엄청난 기능을 하나에 담다 보니

계층적인 구조 또한 엄청나져서 사소한 것 하나 수정하려 해도

끊임없이 소스를 파고 들어야할 뿐더러

게다가 Perl로 작성되어 있어서 그 복잡함은 배가 됩니다. --+

쓰인 변수만 해도 수 백 가지가 넘을 것 같더군요. --;



혹 직접 수정하셔서 쓰실 분들을 위해 제가 택한 방법을 말씀드리자면

두 가지 방법이 생각났었는데,



우선 첫 번재는 ./lib/NeoTemplate-lib.pl 파일과

./data/DB_Name/.NeoIndex/NeoDefault.conf 파일,

그리고 NeoBoard.cgi 파일 자체를 고치는 것입니다.



NeoTemplate-lib.pl 파일의 원하는 부위를 찾아서

쓰레드나 시간별 정렬을 선택할 수 있는 버튼을 만들어 줍고,

NeoDefault.conf 파일의 SortMethod= 부분에

쓰레드는 T를, 시간별은 D를 입력해야 합니다.



이것을 자동으로 만들어 주기 위해서 NeoBoard.cgi 파일을 수정해야 하는데

NeoBoard.cgi에서 쓰레드, 시간별을 선택할 때마다

NeoDefault.conf 파일을 읽어온 후 SortMethod 부분을 수정 후 다시 저장하면 되겠죠.



그 방법의 장점으로는 기존의 파일 관계를 그대로 유지하기 때문에

혹 모를 오류를 최소화할 수 있다는 데에 있습니다.

반면 NeoTemplate-lib.pl 파일을 수정함으로써

특정 게시판이 몇 개가 아니라 NeoBoard 전체를

시간별, 쓰레드 정렬이 가능하도록 만들어 버려야 하고,

또 unix/linux 상황에서는 .NeoIndex 하위 디렉토리가 보이기 않기 때문에

처음엔 조금 더 고생해야 할 지도 모르겠네요. 저야 NT 유저. --;



두 번째 방법으로는 NeoBoard.cgi 파일을

시간별, 쓰레드 정렬을 이용할 게시판 단위로 만들어 주는 것입니다.

이 경우 NeoBoard.cgi 뿐만 아니라

NeoDefault.conf, NeoTemplate-lib.pl 파일 모두 따라 만들어 주는 것이 좋습니다.



NeoBoard 자체가 워낙 잘 짜여져 있어서

특정 파일의 경로를 바꾸더라도 지정만 잘 해주면 아무런 문제 없이 잘 돌아가나

게시판 양에 따라 파일이 중복되어 증가한다는 단점이 있겠죠.

만드는 방식은 첫 번째와 동일합니다.

다만 세 개의 파일을 다른 이름으로 저장하여

게시판마다 다르게 실행을 시켜야 하죠.



저는 두 번째 방법을 썼습니다.

NeoBoard를 폭넓게 이용하고 있는 상황에서

모든 게시판을 다 시간별, 쓰레드 정렬로 바꾸기엔 다소 무리가 있어서 말입니다.



어쨌든 오늘,

그간 시간 나면 꼭 수정해야지 하고 벼르던 것들,

온라인견적서랑 초기화면이랑 끝으로 이 게시판까지

모조리 끝내놓을 수 있어서 꽤나 후련하네요. ^^



혹 문제가 생긴다면 알려주시구요.

예제는 http://achor.net/board/acBoard.cgi?Db=freeboard 에서 보실 수 있습니다.

ps.

1. Template를 사용하지 않은 경우도 별다르진 않을 겝니다.

NeoBoard.cgi 파일 보시면

if 문으로 Template 사용하는 경우와 사용하지 않는 경우를 나눠놓았는데

저야 Template를 사용하기에 직접 해보지는 않았지만

마찬가지로 NeoTemplate-lib.pl 파일이나 그 주위의 파일을

조금 수정해 주면 될 것 같네요.

2. 제가 말씀드린 두 번째 경우로 수정을 했을 경우

Reload나 많은 페이지를 거친 후에 List를 누르면

기존의 NeoBoard.cgi로 돌아가는 경우가 생깁니다.

이는 NeoBoard 자체가 그런 경우 다시금 고정적인 NeoBoard.cgi를 불러오기 때문인데

이 같은 현상을 완벽하게 없애고 싶다면 첫 번째 방법을 사용하시든가

./lib/NeoBoard-lib.pl 파일을 수정해야 할 것입니다.

이 경우 따로 NeoBoard-lib.pl 파일을 만들지 않으면

NeoBoard 전체가 변하게 되니 주의하세요.

그렇지만 게시판 링크가 보이는 상황에서 굳이 그럴 필요는 전혀 없다고

개인적으로 생각합니다.

3. 아주 간단한 방법으로, 디자인은 좀 구리겠지만

게시판의 구조는 그대로 두고 배너가 들어가는 게시판 윗부분이나

서명이 들어가는 게시판 밑부분에 NeoSearch.cgi 파일을 이용하여 수정할 수도 있습니다.

검색어를 부분검색명령인 ^로 주고 공백을 검색시키면,

곧 ^만으로 검색을 시키면 불완전하나마 쉽게 시간별 정렬을 할 수 있죠.

다만 이 경우 페이지를 넘김에 따라 빈 공간이 발생한다거나

정확하지 않은 데이터 출력이 생기기도 하니 완전한 방법은 아닙니다.
- achor WEbs. achor

본문 내용은 8,870일 전의 글로 현재의 관점과 다를 수 있습니다.

Post: https://achor.net/board/freeboard/3299
Trackback: https://achor.net/tb/freeboard/3299

카카오톡 공유 보내기 버튼 LINE it! 밴드공유 Naver Blog Share Button
Please log in first to leave a comment.


Tag


 4388   220   97
No
분류
파일
제목
성명
작성일
2468답변      Re 1: 흠.. 이상해.. achor 2000/11/16
2467고백              Re 5: 결국 achor 2000/11/16
2466잡담        Re 2: 흠.. 이상해.. applefile 2000/11/16
2465                 Re 6: 결국 김현주 2000/11/16
2464질문                  Re 7: zend의 post, get 문제에 관하여... achor 2000/11/16
2463           Re 3: 구냥 여기에두^^ 이선진 2000/11/16
2462         Re 2: 너, 받아봤니? 8줄의 러브레터! 이선진 2000/11/16
2461     당신은 사랑의 어떤말을 좋아하나요? ch.rain 2000/11/16
2460답변      Re 1: 당신은 사랑의 어떤말을 좋아하나요? achor 2000/11/16
2459답변                    Re 8: zend의 post, get 문제에 관하여... achor 2000/11/16
2458제작        Re 2: achor WEbs. 온라인견적서 achor 2000/11/16
2457답변                      Re 9: zend의 post, get 문제에 관하여... 사타구니 2000/11/16
2456제작    천지안 achor 2000/11/16
2455제작    NeoBoard 시간별, 쓰레드 정렬 동시 이용 패치 achor 2000/11/17
2454영상        Re 2: 2000년 칼사사 여름엠티 사진 추가 공개 achor 2000/11/17
2453잡담              Re 5: 부동의 100 achor 2000/11/17
2452잡담    얌.. applefile 2000/11/17
2451답변      Re 1: 얌.. achor 2000/11/18
2450답변        Re 2: 얌.. applefile 2000/11/18
2449     ^^; 이선진 2000/11/19
    93  94  95  96  97  98  99  100  101  102     

  당신의 추억

ID  

  그날의 추억

Date  

First Written: 11/06/1999 04:17:00
Last Modified: 02/27/2025 09:56:04