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}

     

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

     


List of Articles
번호 분류 제목 글쓴이 날짜
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 21 람보 2015.12.31
화제의 글 자료공유 시간표 위젯 1.1.2배포합니다. 15 file 착한악마 2017.01.10
4153 질문/답변 홈페이지 첫 로딩 속도가 어엄청 느리네요... 8 라뜨에 2017.01.11
4152 질문/답변 opcache, memcached 설치방법이 궁금합니다.. 11 희스깅 2017.01.11
4151 질문/답변 아이폰에서 로그인시 글자입력이 안돼는 현상. 3 일단놓고말해 2017.01.11
4150 질문/답변 위젯코드에 채팅창 감추기 보이기 기능을 만들고자합니다. 4 file 떡보의하루 2017.01.11
4149 질문/답변 트래픽비용vs애드센스수익 17 티카아 2017.01.11
4148 질문/답변 인기글 만드는 방법이 뭐가 있을까요 ...? 5 구미호 2017.01.11
4147 질문/답변 요거 이해가 잘 안가네요 ...? 2 구미호 2017.01.11
4146 질문/답변 파일 첨부를 하나씩 개별적으로 할수 있을까요? 3 똑띠 2017.01.11
4145 질문/답변 XE 회원가입관련 개발 문의드립니다!! 2 유니코드 2017.01.11
4144 질문/답변 소시사랑 한줄메모 글자수 늘리는 방법 5 보고하비 2017.01.11
4143 질문/답변 웹호스팅 문의드립니다(선택과 성능) 11 티카아 2017.01.11
4142 질문/답변 let's encrypt 인증서 갱신 관련 문의드립니다. 고라자 2017.01.11
4141 질문/답변 질문여쭤봅니다 ~! 7 희스깅 2017.01.11
4140 질문/답변 휴지통 애드온과 관련되어 질문드립니다 2 file 홍홍홍 2017.01.10
4139 질문/답변 제 홈페이지 속도가 많이답답한가요? 25 희스깅 2017.01.10
4138 질문/답변 에디터 컴포넌트인 이미지 갤러리도 클플 캐시만 적용시키고싶은데.. 라그릿 2017.01.10
4137 질문/답변 포인트와 열람제한 설정에 대해 문의드립니다. 준쓰 2017.01.10
4136 질문/답변 본문 이미지 클릭시 XE TOWN 에서 처럼 나오게 하려면 어떻게 해야하나요? 7 file 현님v 2017.01.10
4135 질문/답변 게시물에 동영상을 함께 올리고 싶은데요.. 숨가빠 2017.01.10
4134 질문/답변 메뉴에 새글 표시 모듈 에러 증상.. 현님v 2017.01.10
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 212 Next
/ 212
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...