url에서 복수의 카테고리를 지정하고 그에 해당하는 문서 목록을 가져오는 방법이 있다고 쓴 적이 있었는데요.

https://xetown.com/topics/1675320

이번에 게시판 확장변수 다중검색 애드온을 업데이트하면서 해당 기능도 함께 넣어놨습니다.

검색 기능의 확장이란 측면에서 함께 사용하면 좋겠더라구요 :)

 

* 준비해야 할 것

- 먼저 앞에서 링크한 애드온을 적용합니다.

- 게시판 관리의 '하단 내용'에 관련 스크립트 코드를 삽입합니다.

 

* 적용

- 애드온 설정은 따로 설명하진 않겠습니다ㅎ

- 그리고 스케치북 스킨을 기준으로 아래의 코드를 게시판 관리의 '하단 내용' 부분에 삽입합니다.

<script>
if ( $('.cnb_n_list').length > 0 ) {

if ( !current_url.getQuery('category_srl') ) {
    $('.cnb_n_list li').eq(0).addClass('on');
} else {
    $('.cnb_n_list li').eq(0).removeClass('on');
    $('.cnb_n_list li a').each(function(i) {
        if ( i === 0 ) {
            return true;
        }
        var category_srl = $(this).attr('href').match(/category[=|\/](\d+)/)[1];
        if ( current_url.getQuery('category_srl').indexOf(category_srl) !== -1 ) {
            $(this).parent('li').addClass('on');
        } else {
            $(this).parent('li').removeClass('on');
        }
    });
}

$('.cnb_n_list li a').on('click', function() {
    if ( $(this).closest('li').index() === 0 ) {
        location.href = current_url.setQuery('category_srl', '');
        return false;
    } else {
        var category_srl = $(this).attr('href').match(/category[=|\/](\d+)/)[1];
        if ( !current_url.getQuery('category_srl') ) {
            location.href = current_url.setQuery('category_srl', category_srl);
        } else {
            if ( current_url.indexOf(category_srl) !== -1 ) {
                var category_srls = current_url.getQuery('category_srl').split(',');
                for ( var i = 0; i < category_srls.length; i++ ) {
                    if ( category_srls[i] === category_srl )  {
                        category_srls.splice(i, 1);
                        i--;
                    }
                };
                location.href = current_url.setQuery('category_srl', category_srls.join(','));
            } else {
                location.href = current_url.setQuery('category_srl', current_url.getQuery('category_srl') + ',' + category_srl);
            }
        }
        return false;
    }
});

}
</script>

 

* 결과

- category가 아니라 category_srl을 파라미터로 해서 '다수의' 분류 번호를 불러오는 게 가능해집니다.

- 분류 링크를 클릭하면 해당 분류의 선택/취소가 가능합니다.

 

* 주의

- 위의 소스는 스케치북을 기준으로 코딩을 한 것이기 때문에, 사용 중이신 스킨에 따라 요소 포착을 잘 해주어야 합니다.

글쓴이 윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile
    좋은 기능인것같습니다. 스킨단에서 좀더 직관적으로 표현할 수 있으면 더 좋을 듯 싶네요. 요즘 5월 행사 준비로 너무 바뻐 손을 못대고 있는데 빨리 일이 정리되서 적용해보고 싶네요~
  • profile profile
    네, 일정 끝내시고 한번 적용해봐주세요~
  • profile profile
    정말 5월은 빨리 지나갔으면 좋겠네요. ㅎ
    카테고리선택부분이 검색영역에 체크박스형태로 선택할 수 있게 구현도도 좋을것같다는 생각이 드네요.

    오늘도 xe타운 가족분들 모두 행복하세요~
  • profile profile
    카테고리도 다중검색 스킨 안에 넣으면 좋겠다는 말씀이신 거죠?
    그렇게 이해하고 고민해보도록 할게요 :)
  • profile profile
    그럼 좋을것같다는 의견입니다 ㅎ.. 안그러면 카테고리부분을 또 수정해야하는 상황이 생길것같아서요~
  • profile profile
    하하, 이렇게 말이죠?
    https://dev.aporia.blog/board_fKje43
  • profile profile
    정답입니다!! ㅎㅎㅎㅎ