XETOWN

호수 공원

XE 사용에 대한 여러가지 정보들을 공유할 수 있습니다.
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

어저껜가 빵조각 메뉴 이야기가 나온 김에 제가 쓰는 빵조각 메뉴 소스를 공유해볼까 합니다.

스케치북 게시판 스킨에서 기본 제공되는 메뉴와는 다르게, '카테고리 제목'과 '문서 제목'까지 들어가는 빵조각입니다 ^^

 

1. 기본 설명

- 기존에는 'Home > 1차 메뉴 > 2차 메뉴 > 3차 메뉴' 이런 식으로만 나왔다면,

- 이 소스는 'Home > 1차 메뉴 > 2차 메뉴 > 3차 메뉴 > 카테고리 제목 > 문서 제목'까지 구현됩니다.

 

2. 어떤 때 사용하면 좋나요?

(1) 카테고리나 문서 주소를 '바로 가기' 메뉴로 사용할 때

- 하위 메뉴가 카테고리 주소나 문서 주소로 '바로 가기'일 경우에도 오류 없이 잘 구현됩니다.

 

(2) 메뉴 선택 이후 카테고리 제목도 빵조각으로 표현하고 싶을 때

- 현재 주소에서 카테고리를 선택했을 때, 최종 메뉴 이후에 카테고리 제목이 표시됩니다.

 

(3) 빵조각에 문서 제목도 표현하고 싶을 때

- 문서를 열었을 때, 최종 메뉴 또는 해당 메뉴의 카테고리 제목 이후에 문서 제목이 표시됩니다.

 

3. 어떤 점에 주의해야 하나요?

(1) 상위 메뉴 url과 하위 메뉴 url이 동일할 때

- 기존 소스에선 별다른 설정을 하지 않아도 상위 메뉴 제목은 평범하게 출력되고, 하위 메뉴 제목은 게시판 지정 색상으로 강조(em 태그)돼서 출력됐습니다.

- 카테고리와 문서 제목까지 출력하는 이 소스에선, 같은 url을 가진 하위 메뉴가 리스트 중에서 맨 앞에 오는 경우에만, 상위 메뉴는 평상 출력되고 하위 메뉴는 강조 출력됩니다. 그렇지 않으면 상위 메뉴와 하위 메뉴 모두 강조 출력되므로 유의하셔야 합니다.

- 따라서 ① 상위 메뉴와 같은 url을 가진 하위 메뉴를 리스트에서 맨 앞으로 가져오거나(권장), ② 아래 4-(1)번 소스의 5행과 8행에서 [0]으로 된 부분을 [1](리스트에서 두 번째)이나 [2](리스트에서 세 번째) 등으로 바꿔주시면 됩니다(가급적 비추).

 

(2) 문서 제목의 길이를 조정하고 싶을 때

- 현재 기본 길이는 20으로 되어 있습니다.

- 문서 제목 길이를 늘리거나 줄이고 싶으면, 아래 소스에서 {$oDocument->getTitle(20)}를 찾아 괄호 안의 숫자를 적당한 숫자로 바꾸시면 됩니다.

 

(3) 문서 제목은 출력하고 싶지 않을 때

- 아래의 4-(2)번 소스를 사용합니다.

- 단, 이 때엔 문서 주소로 '바로 가기'가 설정된 메뉴는 출력되지 않으므로 유의해야 합니다.

 

(4) 카테고리 제목은 출력하고 싶지 않을 때

- 아래의 4-(3)번 소스를 사용합니다.

- 단, 이 때엔 카테고리 주소로 '바로 가기'가 설정된 메뉴는 출력되지 않으므로 유의해야 합니다.

 

(5) 카테고리 제목과 문서 제목 모두 출력하고 싶지 않을 때

- 아래의 어떤 소스도 적용하지 않고, 스케치북 스킨의 빵조각 메뉴를 그대로 사용하면 됩니다.

- 단, 이 경우 카테고리 주소 또는 문서 주소로 '바로 가기'가 설정된 메뉴가 모두 출력되지 않으므로 유의해야 합니다.

 

(6) 그럼에도, '바로 가기'로 설정된 카테고리 제목과 문서 제목를 출력하고 싶을 때

- 위의 (3)~(5)의 유의사항에도 불구하고, '바로 가기' 메뉴에 한해 빵조각 메뉴로 출력하고 싶다면 별도의 코드를 짜셔야 합니다. ... (읭?)

- 나중에 기회가 되면 코드를 짜보도록 하겠습니다 ^^;;;

 

4. 예제 소스

- 다음 세 가지 중에서 필요한 경우를 골라, _breadcrumb.html 전체를 해당하는 소스로 대체하면 됩니다.

 

(1) 카테고리 제목과 문서 제목을 모두 출력하고자 할 때 (권장)

<div class="bd_bc fl">
    <a href="{getSiteUrl()}"><strong>Home</strong></a>
    <block loop="$main_menu->list=>$key1,$val1" cond="$val1['selected']">
        <i class="fa fa-angle-right"></i>
        <a href="{$val1['href']}"><!--@if($mid==$val1['url'] && !$category && !$oDocument->isExists() && $val1['text']!=array_values($val1['list'])[0]['text'])--><em>{$val1['text']}</em><!--@else-->{$val1['text']}<!--@end--></a>
        <block loop="$val1['list']=>$key2,$val2" cond="$val2['selected']">
            <i class="fa fa-angle-right"></i>
            <a href="{$val2['href']}"><!--@if($mid==$val2['url'] && !$category && !$oDocument->isExists() && $val2['text']!=array_values($val2['list'])[0]['text'])--><em>{$val2['text']}</em><!--@else-->{$val2['text']}<!--@end--></a>
            <block loop="$val2['list']=>$key3,$val3" cond="$val3['selected']">
                <i class="fa fa-angle-right"></i>
                <a href="{$val3['href']}"><!--@if($mid==$val3['url'] && !$category && !$oDocument->isExists())--><em>{$val3['text']}</em><!--@else-->{$val3['text']}<!--@end--></a>
            </block>
        </block>
    </block>
    <block loop="$category_list=>$key,$val" cond="!$oDocument->isExists() && $category && $val->selected">
        <i class="fa fa-angle-right"></i>
        <a href="{getUrl('','mid',$mid,'category',$category)}"><em>{$val->title}</em></a>
    </block>
    <block cond="$oDocument->isExists()">
        <block cond="$oDocument->get('category_srl')">
            <i class="fa fa-angle-right"></i>
            <a href="{getUrl('','mid',$mid,'category',$oDocument->get('category_srl'))}">{$category_list[$oDocument->get('category_srl')]->title}</a>
        </block>
        <i class="fa fa-angle-right"></i>
        <a href="{getFullUrl('','mid',$mid,'document_srl',$oDocument->document_srl)}"><em>{$oDocument->getTitle(20)}</em></a>
    </block>
</div>

 

(2) 카테고리 제목까지만 출력하고 싶을 때 (문서 제목은 제외)

<div class="bd_bc fl">
    <a href="{getSiteUrl()}"><strong>Home</strong></a>
    <block loop="$main_menu->list=>$key1,$val1" cond="$val1['selected']">
        <i class="fa fa-angle-right"></i>
        <a href="{$val1['href']}"><!--@if($mid==$val1['url'] && !$category && $val1['url']!=array_values($val1['list'])[0]['url'])--><em>{$val1['text']}</em><!--@else-->{$val1['text']}<!--@end--></a>
        <block loop="$val1['list']=>$key2,$val2" cond="$val2['selected']">
            <i class="fa fa-angle-right"></i>
            <a href="{$val2['href']}"><!--@if($mid==$val2['url'] && !$category && $val2['url']!=array_values($val2['list'])[0]['url'])--><em>{$val2['text']}</em><!--@else-->{$val2['text']}<!--@end--></a>
            <block loop="$val2['list']=>$key3,$val3" cond="$val3['selected']">
                <i class="fa fa-angle-right"></i>
                <a href="{$val3['href']}"><!--@if($mid==$val3['url'] && !$category)--><em>{$val3['text']}</em><!--@else-->{$val3['text']}<!--@end--></a>
            </block>
        </block>
    </block>
    <block loop="$category_list=>$key,$val" cond="!$oDocument->isExists() && $category && $val->selected">
        <i class="fa fa-angle-right"></i>
        <a href="{getUrl('','mid',$mid,'category',$category)}"><em>{$val->title}</em></a>
    </block>
    <block cond="$oDocument->isExists() && $oDocument->get('category_srl')">
        <i class="fa fa-angle-right"></i>
        <a href="{getUrl('','mid',$mid,'category',$oDocument->get('category_srl'))}"><em>{$category_list[$oDocument->get('category_srl')]->title}</em></a>
    </block>
</div>

 

(3) 문서 제목까지만 출력하고 싶을 때 (카테고리 제목은 제외)

<div class="bd_bc fl">
    <a href="{getSiteUrl()}"><strong>Home</strong></a>
    <block loop="$main_menu->list=>$key1,$val1" cond="$val1['selected']">
        <i class="fa fa-angle-right"></i>
        <a href="{$val1['href']}"><!--@if($mid==$val1['url'] && !$oDocument->isExists() && $val1['url']!=array_values($val1['list'])[0]['url'])--><em>{$val1['text']}</em><!--@else-->{$val1['text']}<!--@end--></a>
        <block loop="$val1['list']=>$key2,$val2" cond="$val2['selected']">
            <i class="fa fa-angle-right"></i>
            <a href="{$val2['href']}"><!--@if($mid==$val2['url'] && !$oDocument->isExists() && $val2['url']!=array_values($val2['list'])[0]['url'])--><em>{$val2['text']}</em><!--@else-->{$val2['text']}<!--@end--></a>
            <block loop="$val2['list']=>$key3,$val3" cond="$val3['selected']">
                <i class="fa fa-angle-right"></i>
                <a href="{$val3['href']}"><!--@if($mid==$val3['url'] && !!$oDocument->isExists())--><em>{$val3['text']}</em><!--@else-->{$val3['text']}<!--@end--></a>
            </block>
        </block>
    </block>
    <block cond="$oDocument->isExists()">
        <i class="fa fa-angle-right"></i>
        <a href="{getFullUrl('','mid',$mid,'document_srl',$oDocument->document_srl)}"><em>{$oDocument->getTitle(20)}</em></a>
    </block>
</div>

 

  • profile
    구름이 2016.09.04 02:53:16
    잘보고 갑니다^^
  • profile
    윤삼 2016.09.04 02:59:00
    네, 감사합니다~
  • profile
    다이오니 2016.09.10 22:01:37
    햐~ 꿀팁입니다. 이거 적용해봐야겠네요.
  • profile
    윤삼 2016.10.16 19:31:52

    해당 팁이 다음 세 가지 경우에 심각한 버그가 있는 것으로 확인됐습니다.

    1) 대댓글을 에디터로 작성할 때, 2) 댓글을 수정할 때, 3) 댓글을 삭제할 때입니다.

    댓글 커맨드를 감안하지 않고 팁을 작성했던 탓이 큽니다;;;

     

    이 부분을 패치하기 위해선 다음과 같은 추가 작업이 필요합니다.

     

    1. comment_form.html 파일과 delete_comment_form.html 파일 상단에 다음과 같은 내용을 추가합니다.

    {@
        $oDocumentModel = &getModel('document');
        $oDocument = $oDocumentModel->getDocument($oComment->get('document_srl'));
    }

     

    2. _breadcrumb.html 파일 <block cond="$oDocument->get('category_srl')"> 바로 아랫줄에 다음과 같은 내용을 추가합니다.

    {@
        $oDocumentModel = &getModel('document');
        $category_info = $oDocumentModel->getCategory($oDocument->get('category_srl'));
    }

     

    3. 또한 _breadcrumb.html 파일의 카테고리 제목 출력 부분 {$category_list[$oDocument->get('category_srl')]->title}을 다음과 같이 바꿔줍니다.

    {$category_info->title}

     

    ... 이렇게 하면 댓글 커맨드에서 나타나는 버그가 수정될 수 있습니다.

     

  • profile
    대암지기 2017.01.21 20:49:24
    잘 쓰겠습니다.
    감사합니다.

List of Articles
번호 분류 제목 글쓴이 날짜
화제의 글 XE 사용팁 코어 수정 없이, 시조 댓글의 리스트만 출력하고, 자손 댓글의 리스트는 로드하지 않았다가 클릭 이벤트로 ajax 호출하기 33 file 윤삼 2017.04.20
5173 질문/답변 간단한 구인구직 레이아웃이 있을까요? 2 삼삼이 2017.04.14
5172 질문/답변 소셜아이디로만 로그인을 허용할 때 file 고양이 2017.04.14
5171 질문/답변 fail2ban 설치... madnomad 2017.04.14
5170 질문/답변 모바일에서 메뉴 새글 표시 모듈이 동작하지 않는데요 이브이 2017.04.14
5169 질문/답변 캐시 디렉토리 지정할수 있을까요? 2 날아라 2017.04.13
5168 질문/답변 사이트 로고를 중앙으로 옮기고 싶습니다. 12 도균짱 2017.04.13
5167 질문/답변 jquery 오늘 날짜 이후부터 선택 가능 2 길동-홍 2017.04.13
5166 질문/답변 혹시 라이믹스에서 게시판 권한 설정이 별도로 따로 있나요? 3 file 차도남 2017.04.13
5165 질문/답변 게시글 작성시 이미지를 필수로 첨부할 수 있도록 만드는 방법이 있을까요..? 3 루딩 2017.04.13
5164 질문/답변 안녕하세요 모바일 화면 관련 질문이 있습니다.! 1 어쩔 2017.04.13
5163 질문/답변 contact us 모듈의 모바일용일 경우.. 이온디 2017.04.13
5162 XE 사용팁 스케치북에서 모바일 사용시 모바일 스킨 댓글에 파일첨부 가능하게 만들기 2 file 이온디 2017.04.13
5161 질문/답변 IwinV VPS에서 SSH 접속시 포트 문제 9 마꼬 2017.04.12
5160 질문/답변 스케치북 스킨 - 모바일 최적화 모바일 보기 - 댓글 태그 노출 2 이온디 2017.04.12
5159 질문/답변 htaccess 를 통한 리다이렉트 설정 5 라뜨에 2017.04.12
5158 질문/답변 mid 관련 질문입니다. 3 대한천자 2017.04.12
5157 아이디어 제안/공유 개발자님들~ 모듈 이름 만드실때... 19 웹지기 2017.04.12
5156 질문/답변 쇼핑몰 상품스킨 4 가이더 2017.04.12
5155 질문/답변 등업 모듈 없을까요? 10 SoyaMilk 2017.04.12
5154 질문/답변 서버 아이피 숨길수잇는 방법잇을까요? 3 뚜방 2017.04.11
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 266 Next
/ 266
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...