게시판 info.xml 작성 가이드¶
개요¶
info.xml
은 게시판 스킨의 메타 정보와 설정을 정의하는 중요한 파일입니다.
기본 구조¶
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">게시판 스킨 이름</title>
<title xml:lang="en">Board Skin Name</title>
<description xml:lang="ko">게시판 스킨에 대한 설명</description>
<description xml:lang="en">Description of the board skin</description>
<version>1.0.0</version>
<date>2024-01-01</date>
<author email_address="author@example.com" link="https://example.com">
<name xml:lang="ko">제작자명</name>
<name xml:lang="en">Author Name</name>
</author>
<license link="https://www.gnu.org/licenses/gpl-3.0.html">GPL v3</license>
<extra_vars>
<!-- 스킨 설정 변수들 -->
</extra_vars>
<colorset>
<!-- 색상 테마 설정 -->
</colorset>
</skin>
주요 요소 설명¶
1. 기본 정보¶
<title xml:lang="ko">심플 게시판</title>
<description xml:lang="ko">깔끔하고 단순한 게시판 스킨입니다.</description>
<version>1.2.3</version>
<date>2024-01-15</date>
2. 제작자 정보¶
<author email_address="developer@example.com" link="https://github.com/username">
<name xml:lang="ko">홍길동</name>
<name xml:lang="en">Hong Gildong</name>
</author>
3. 스킨 설정 변수 (extra_vars)¶
<extra_vars>
<!-- 리스트 설정 -->
<var id="list_style" type="select">
<title xml:lang="ko">목록 스타일</title>
<title xml:lang="en">List Style</title>
<options value="list">
<title xml:lang="ko">리스트형</title>
<title xml:lang="en">List</title>
</options>
<options value="gallery">
<title xml:lang="ko">갤러리형</title>
<title xml:lang="en">Gallery</title>
</options>
<options value="webzine">
<title xml:lang="ko">웹진형</title>
<title xml:lang="en">Webzine</title>
</options>
</var>
<!-- 썸네일 설정 -->
<var id="thumbnail_width" type="text">
<title xml:lang="ko">썸네일 너비</title>
<title xml:lang="en">Thumbnail Width</title>
<default>200</default>
</var>
<!-- 체크박스 옵션 -->
<var id="use_category" type="checkbox">
<title xml:lang="ko">카테고리 표시</title>
<title xml:lang="en">Show Category</title>
<default>Y</default>
</var>
<!-- 이미지 선택 -->
<var id="header_image" type="image">
<title xml:lang="ko">헤더 이미지</title>
<title xml:lang="en">Header Image</title>
</var>
<!-- 텍스트 영역 -->
<var id="board_description" type="textarea">
<title xml:lang="ko">게시판 설명</title>
<title xml:lang="en">Board Description</title>
</var>
</extra_vars>
4. 색상 테마 설정¶
<colorset>
<color name="default">
<title xml:lang="ko">기본</title>
<title xml:lang="en">Default</title>
</color>
<color name="dark">
<title xml:lang="ko">다크</title>
<title xml:lang="en">Dark</title>
</color>
<color name="blue">
<title xml:lang="ko">블루</title>
<title xml:lang="en">Blue</title>
</color>
</colorset>
변수 타입별 예제¶
select (선택 박스)¶
<var id="list_count" type="select">
<title xml:lang="ko">한 페이지 게시물 수</title>
<options value="10">10개</options>
<options value="20">20개</options>
<options value="30">30개</options>
<options value="50">50개</options>
<default>20</default>
</var>
checkbox (체크박스)¶
<var id="show_thumbnail" type="checkbox">
<title xml:lang="ko">썸네일 표시</title>
<default>Y</default>
</var>
radio (라디오 버튼)¶
<var id="comment_style" type="radio">
<title xml:lang="ko">댓글 스타일</title>
<options value="flat">일반형</options>
<options value="thread">스레드형</options>
<default>flat</default>
</var>
image (이미지 업로드)¶
<var id="logo_image" type="image">
<title xml:lang="ko">로고 이미지</title>
<description xml:lang="ko">권장 크기: 200x50px</description>
</var>
text (텍스트 입력)¶
<var id="custom_title" type="text">
<title xml:lang="ko">커스텀 제목</title>
<default>게시판</default>
</var>
textarea (여러 줄 텍스트)¶
<var id="footer_text" type="textarea">
<title xml:lang="ko">푸터 텍스트</title>
<default>Copyright © 2024</default>
</var>
colorpicker (색상 선택)¶
<var id="main_color" type="colorpicker">
<title xml:lang="ko">메인 색상</title>
<default>#3498db</default>
</var>
실제 사용 예제¶
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">모던 게시판</title>
<title xml:lang="en">Modern Board</title>
<description xml:lang="ko">반응형 모던 스타일 게시판</description>
<description xml:lang="en">Responsive modern style board</description>
<version>2.1.0</version>
<date>2024-01-20</date>
<author email_address="dev@example.com" link="https://example.com">
<name xml:lang="ko">개발자</name>
<name xml:lang="en">Developer</name>
</author>
<license link="https://opensource.org/licenses/MIT">MIT</license>
<extra_vars>
<!-- 기본 설정 -->
<var id="board_style" type="select">
<title xml:lang="ko">게시판 스타일</title>
<options value="basic">기본형</options>
<options value="gallery">갤러리형</options>
<options value="faq">FAQ형</options>
<default>basic</default>
</var>
<!-- 목록 설정 -->
<var id="list_count" type="text">
<title xml:lang="ko">목록 개수</title>
<default>15</default>
</var>
<var id="use_thumbnail" type="checkbox">
<title xml:lang="ko">썸네일 사용</title>
<default>Y</default>
</var>
<var id="thumbnail_type" type="radio">
<title xml:lang="ko">썸네일 타입</title>
<options value="crop">정사각형</options>
<options value="ratio">원본비율</options>
<default>crop</default>
</var>
<!-- 디자인 설정 -->
<var id="primary_color" type="colorpicker">
<title xml:lang="ko">주 색상</title>
<default>#2ecc71</default>
</var>
<var id="custom_css" type="textarea">
<title xml:lang="ko">사용자 정의 CSS</title>
</var>
</extra_vars>
<colorset>
<color name="default">
<title xml:lang="ko">기본</title>
</color>
<color name="dark">
<title xml:lang="ko">다크모드</title>
</color>
</colorset>
</skin>
스킨에서 변수 사용하기¶
<!-- 스킨 파일에서 사용 -->
{@
$list_style = $module_info->list_style ?: 'list';
$thumbnail_width = $module_info->thumbnail_width ?: 200;
$use_category = $module_info->use_category == 'Y';
}
<!--@if($list_style == 'gallery')-->
<div class="gallery-style" data-thumb-width="{$thumbnail_width}">
<!-- 갤러리 스타일 출력 -->
</div>
<!--@elseif($list_style == 'webzine')-->
<div class="webzine-style">
<!-- 웹진 스타일 출력 -->
</div>
<!--@else-->
<div class="list-style">
<!-- 리스트 스타일 출력 -->
</div>
<!--@end-->