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
번호 분류 제목 글쓴이 날짜
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 20 람보 2015.12.31
화제의 글 XE 사용팁 화제의 글 애드온 공지로 출력된 글 배경 색 다르게.... file 웹지기 2016.11.28
3826 질문/답변 게시글 읽으면(본문) 위젯 감추기 5 마신 2016.12.07
3825 질문/답변 아래 cond 조건 사용 문제 대안으로... 7 웹지기 2016.12.07
3824 질문/답변 이런 경우도 있나요? 3 DIZAK 2016.12.07
3823 질문/답변 슈퍼캐시가 34기가나 하드를 채우나요?ㅠㅠ 3 낙타 2016.12.07
3822 질문/답변 <block cond="$mid=='name'"> 사용하려면 13 웹지기 2016.12.06
3821 질문/답변 소셜로그인 카카오톡 로그인 질문이요 6 정재욱 2016.12.06
3820 질문/답변 닉네임으로 검색시 해당 닉네임 정보를 호출 가능할까요? 8 착한악마 2016.12.06
3819 질문/답변 새글 새댓글표시 모듈 1 고양이 2016.12.06
3818 XE 사용팁 외부페이지 다국어 사용하기 김햄C 2016.12.06
3817 질문/답변 모바일 시작 페이지가 XE 기본에서 변하지 않습니다. 2 카별 2016.12.06
3816 질문/답변 pjaxboard.com 이 사이트 레이아웃 무엇인지 아시는 분 계실까요 2 그래시 2016.12.06
3815 질문/답변 메드와이드 XE로 만들어진사이트인가요? 2 기관사 2016.12.06
3814 질문/답변 페이스북 로그인시 API 통신 오류입니다. 재시도 해주세요. 오류 문의 8 정재욱 2016.12.06
3813 질문/답변 사이트 메뉴 하나가 통째로 삭제됐는데 어디서 복원해야 할까요? 9 스트릿 2016.12.05
3812 질문/답변 글 모음 게시판 기능 + 게시물 앞 아이콘 설정 질문드려요! 6 file RADIX 2016.12.05
3811 질문/답변 sketchbook5 게시판 상단에 여백이 생깁니다 19 file 그래시 2016.12.05
3810 질문/답변 문의 입니다. 5 jmjim 2016.12.05
3809 XE 사용팁 [개발자팁] 언어 파일(*.lang.php, lang.xml) 작성 시 유의 사항 1 @제은일행 2016.12.05
3808 불편/개선 요청 메뉴 새글 표시 애드온과 타임라인 모듈 게시판 호환성 개선 요청 팀9 2016.12.05
3807 질문/답변 XE3 사용이 가능한 국내 웹호스팅이 있을까요? 6 구름이 2016.12.05
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 194 Next
/ 194
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...