t1000님이 제 홈피에 질문을 하셔서 올립니다.
내용이 아주 간단해서 죄송합니다. ^^;;;




블로그 스킨은 레이아웃 스킨을 포함합니다. 이 레이아웃 스킨을 게시판과 공유하는 것은 아주 간단한 일이지만 게시판에는 필요없는 블로그용 위젯들(태그, 월별목록, 카운터, 최근 글, 최근 댓글, 최근 트랙백 기타 등등)이 함께 포함되어버립니다.

이것은 layout.html에서 간단한 조건문을 통하여 쉽게 처리할 수 있습니다. 제로보드 XE 블로그 스킨중 xe_blog라는 스킨 디렉토리에서 layout.html을 열어봅시다.

<div id="contentBody">
<div id="columnLeft">

<!-- 각종 위젯의 출력부분(생략) -->

</div>
<!-- 컨텐츠 출력 부분 -->
<div id="content">{$content}</div>

</div>

대충 위와 같은 부분을 찾을 수 있습니다. 이것이 바로 컨텐츠(<div id="content">)와 사이드바(<div id="columnLeft">)를 출력하는 부분이고 이 부분을 다음과 같이 수정하면 됩니다.

<div id="contentBody">
<!--@if($module_info->module=="blog")-->
<div id="columnLeft">

<!-- 각종 위젯의 출력부분(생략) -->
</div>
<!--@end-->
<!-- 컨텐츠 출력 부분 -->
<div id="content">{$content}</div>
</div>

정말 간단합니다! $module_info->module은 현재 레이아웃 스킨을 출력시키는 모듈이 어떤 것인가를 가리킵니다. 위의 예에서 columnLeft DIV는 블로그로 작동될 때에만 보여집니다.

이것을 이용하면 스킨 곳곳에서 레이아웃이 어떤 모듈에 의해 실행되고 있는지 알 수 있습니다. 가령, 페이지일때에는 $module_info->module이 "page"가 될 것입니다.


주의: 제로보드 XE에 포함된 기본 스킨들을 안써봐서 모르겠습니다만 아마 저대로만 하시게 되면 사이드바는 나오지 않지만 컨텐츠가 이상하게 출력될 수 있습니다.

따라서

<div id="contentBody">
<!--@if($module_info->module=="blog")-->
<div id="columnLeft">

<!-- 각종 위젯의 출력부분(생략) -->
</div>
<!-- 컨텐츠 출력 부분 -->
<div id="content">{$content}</div>
<!--@else--> <div id="board_content">{$content}</div>
<!--@end-->
</div>

위와 같은 식으로 board_content의 CSS를 분리하여 기술하시는 것이 더 권장됩니다.

layout.css에

#board_content {
    width: 100%;
    padding: 12px;
}


대략 이런식으로 만들어주시는 것이 좋겠죠





무슨 스킨을 만드시건 CSS에 대한 사전 이해는 필요로 합니다. ^^