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
번호 분류 제목 글쓴이 날짜
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 21 람보 2015.12.31
화제의 글 자료공유 애니메이션 GIF 확인 애드온 V0.3 14 file prologos 2017.02.08
화제의 글 자료공유 애니메이션 GIF 확인 애드온 V0.3.1 12 file prologos 2017.02.09
화제의 글 자료공유 광고제거 멤버십 애드온 v0.1 7 file ExtendKR 2017.02.13
4432 질문/답변 라이믹스 설치시 데이터 정렬방식이... 1 우리아기 2017.02.11
4431 XE 사용팁 xpresseditor_axupload5 이미지 본문 자동삭제 후하니 2017.02.11
4430 질문/답변 기본url www ssl질문 2 준쓰 2017.02.11
4429 질문/답변 구글검색 질문드립니다. 2 희스깅 2017.02.10
4428 질문/답변 구글에서 메일이 왔는데 방문자가 줄었습니다. 2 file 낙타 2017.02.10
4427 질문/답변 라이믹스 커뮤니케이션 모듈 문의드려요 고라자 2017.02.10
4426 질문/답변 클라우드 플레어를 SSL 기능만 사용할수 있을까요? 2 낙타 2017.02.10
4425 질문/답변 라이믹스(XE)의 쪽지보내기 창에 파일첨부를 할 수있는 방법이 없을까요? 4 고라자 2017.02.10
4424 XE 사용팁 모바일에서 ckeditor 사용시 좀 더 보기 좋게(+쓰기 편하게) 하기 (최종수정) 15 기븐 2017.02.10
4423 질문/답변 FTP에서 삭제되지 않고 남아있는 파일을 삭제하려면 어떻게 해야할까요? 2 file RADIX 2017.02.10
4422 질문/답변 php 7.0 으로 업그레이드 후 쇼핑몰 모듈이 에러가 납니다(전문가조언부탁) 4 file 김범진 2017.02.10
4421 질문/답변 이미지 본문 자동삽입 PR 수정 ? 9 웹지기 2017.02.10
4420 질문/답변 소설 로그인 시에 이전 페이지가 아닌 이전 게시판 목록으로 이동하는 문제 2 DevinLee 2017.02.10
4419 질문/답변 라이믹스 이용법에 대한 질문 1 투정 2017.02.10
4418 질문/답변 라이믹스 이미지 본문 자동삽입 관련하여 질문드립니다 28 기븐 2017.02.10
4417 아이디어 제안/공유 사이트 부하 방지 예방 아이디어. 1 루딩 2017.02.10
4416 질문/답변 출석부 모듈에서 특정 회원 한명이 이상하게 높은 점부가 부여되어 있네요. 6 DevinLee 2017.02.10
4415 질문/답변 클라우드플레어 웹보안쪽에. 3 진지니 2017.02.10
4414 질문/답변 알림센터 새글알림 안뜨게 하려면 2 file 준쓰 2017.02.10
4413 질문/답변 네이버 로그인이 안됩니다. 5 file netpilgrim 2017.02.10
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 227 Next
/ 227
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...