게시판 info.xml 작성 가이드

게시판 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-->

관련 문서