게시판 분류 사용시 해당분류만 나오는게 아니라 분류별 순차적으로 나오게 가능한가요?

게시판 분류 사용시 해당분류만 나오는게 아니라 분류별 순차적으로 나오게 가능한가요?

QA

게시판 분류 사용시 해당분류만 나오는게 아니라 분류별 순차적으로 나오게 가능한가요?

본문

게시판 분류 사용시 해당분류만 나오는게 아니라 분류별 순차적으로 나오게 가능한가요?

 

예를 들어 분류명을 1  2  3  4  5 로 하고 각각의 분류별로 1개의 게시물이 있다면

분류선택시 각각의 분류별 1개의 게시물이 출력되는게 아니라 아래처럼 순차적으로 나오게 가능한가요?

 

[분류1]을 선택했을땐 [분류1]의 1개의 게시물 출력

[분류2]를 선택했을땐 [분류1]과, [분류2]의 2개의 게시물이 출력

[분류3]을 선택했을땐 [분류1]과, [분류2], [분류 3] 이렇게 3개의 게시물이 출력되게 가능한가요?

 

 

이 질문에 댓글 쓰기 :

답변 2

bbs/list.php 나 common.lib.php get_sql_search() 함수를 고쳐야 하는데 

전체 게시판에 적용되니 비추고요 

 

bbs/list.php 파일을 

사용할 게시판 스킨으로 복사하고 

list.skin.php 파일 상단에 include 해줍니다 


include_once($board_skin_path."/list.php");

 

복사한 스킨명/list.php 파일을 수정합니다

$sql_search = get_sql_search($sca, $sfl, $stx, $sop); 구문 아래... 

제대로 하려면 저 라인을 주석처리하고 

함수를 복사해서 커스텀하거나 해야겠지만 

매우 귀찮으므로 

$sql_search 에서 원하는 쿼리문으로 replace 합니다

 


// (생략).......
 
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
    if ($sca) {
        $tmp = explode('|', $board['bo_category_list']);
        $foo = array_search($sca, $tmp);
        $bar = array_slice($tmp, 0, $foo + 1);
        $sir = " ca_name IN ('".implode("','", $bar)."') ";
        $sql_search = preg_replace("% ca_name = '[^']+' %", $sir, $sql_search);
        unset($tmp, $foo, $bar, $sir);
        echo $sql_search;
    }
// (생략).......
 

 

멋지십니다~ 능력자~^^

적용시켰더니 잘되긴 하는데 

 

지정되어있던 리스트정렬 순으로 안나오고 기본정렬로 되어버리는데
정렬을 수정하려면 어떻해야 하는지...^^;;;

ca_name desc 분류명 내림차순 나와야하는데 ^^;;

 

 

정렬이랑은 별개의 문제인데요

ca_name desc 면
분류가 a|b|c일때 c b a
분류가 a|c|b일때 c b a
이렇게 되겠죠?
분류가 a|c|b일때 a c b
이렇게 나오는 걸 원하시나요?
그럼 관리자에서 설정으로는 쪼금 애로사항이 있고
list.php $sql_order 를 직접 수정해야하는데요

제가 작성한 코드중에
$tmp = explode('|', $board['bo_category_list']);
배열을 활용해서
(제가 아래 unset 시켰는데 유의미한 변수명으로 바꾸시고 unset 하지 않고)

order by filed(ca_name, '".implode("','", $tmp)."')
--> 결과값 order by field(ca_name, 'a', 'c', 'b')
이렇게 해주면  a c b
카테고리 지정순으로 정렬됩니다
물론 카테고리를 사용하는지 카테고리가 지정됐는지 체크해야겠고요
같은 카테고리의 우선 순위도 지정을 해야겠죠?
검색값이 있을때와 없을때가 정렬이 달라야 하나요?
이건 제가 설명하는 것보다 쿼리문을 이해하는게 정신건강에 좋을 것 같습니다
제가 알려드릴 수 있는 건 order by field() 까지~!

질문을 제대로 이해했는지 모르겠네요

정말 감사합니다^^ 해결 했습니다.

제가 입력해두었던 분류를

3|2|1| 에서 1|2|3 으로 바꾸기만 하면 되는 거였는데 ^^;;;;;

간단한걸 제가 그만....번거롭게해드렸네요

 

정말 많은 도움 되었습니다.

 

프로그램이 정말 공부하기가 어렵더라구요~

옆에서 누가 갈켜줄수도 없는거고 혼자 찾아서 하다보니

맞는길로 가고 있는건지...가다가 막히는 것도 많고 ㅋㅋㅋ

 

전문가분들을 보면 정말 존경스럽습니다~ ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 8
QA 내용 검색

회원로그인

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