웹마스터 팁
게시판확장변수를 이미지로 나타내게 게시판스킨 수정법
2010.03.10 19:26
확장변수가 1개 이상일때는 표현이 되지를 않는군요.
그리고 이 팁만 적용시킨 게시판스킨을 따로 만들어야 하는 불편함이 있습니다.
그래서 제가 필요도하고 해서 확장변수가 1개 이상일때도 출력도 되고
게시판설정에서 해당 사항을 설정할수 있게끔 만들어서 따로 게시판스킨을 만들지 않아도 되는 방법을 설명합니다
A. ./modules/board/skins/해당스킨/
1. skin.xml 파일에 추가
<title xml:lang="ko">확장변수 이미지출력</title>
<description xml:lang="ko">아래부터의 선택은 확장변수 이미지출력 선택시만 적용됩니다.</description>
</var>
<var name="extra_val_mid" type="text">
<title xml:lang="ko"> ┖ 확장변수 mid</title>
<description xml:lang="ko">이미지로 출력하고 싶은 확장변수의 mid를 적어주세요.</description>
</var>
<var name="extra_val_name1" type="text">
<title xml:lang="ko"> ┖ 입력항목 이름1</title>
<description xml:lang="ko">이미지로 출력하고 싶은 입력항목1의 이름을 적어주세요.</description>
</var>
<var name="extra_val_name2" type="text">
<title xml:lang="ko"> ┖ 입력항목 이름2</title>
<description xml:lang="ko">이미지로 출력하고 싶은 입력항목2의 이름을 적어주세요.</description>
</var>
<var name="default_name1" type="text">
<title xml:lang="ko"> ┖ 기본값 이름</title>
<description xml:lang="ko">이미지로 출력하고 싶은 기본값 이름을 적어주세요.</description>
</var>
<var name="extra_val_image1" type="text">
<title xml:lang="ko"> ┖ 확정 이미지</title>
<description xml:lang="ko">확정이미지의 경로를 적어주세요.( 예: http://jcas.co.kr/ok.png )</description>
</var>
<var name="extra_val_image2" type="text">
<title xml:lang="ko"> ┖ 대기 이미지</title>
<description xml:lang="ko">대기이미지의 경로를 적어주세요.( 예: http://jcas.co.kr/wait.png )</description>
</var>
2. write_form.html 수정
[수정전]
<!--@foreach($extra_keys as $key => $val)-->
<tr>
<th scope="row">{$val->name} <!--@if($val->is_required=='Y')-->*<!--@end--></th>
<td>{$val->getFormHTML()}</td>
</tr>
<!--@endforeach-->
[수정후]
<!--@foreach($extra_keys as $key => $val)-->
<!--@if($val->name!=$module_info->extra_val_name1 && $val->name!=$module_info->extra_val_name2 || $grant->manager)-->
<tr>
<th scope="row">{$val->name} <!--@if($val->is_required=='Y')-->*<!--@end--></th>
<td>{$val->getFormHTML()}</td>
</tr>
<!--@endif-->
<!--@else-->
<tr>
<th scope="row">{$val->name} <!--@if($val->is_required=='Y')-->*<!--@end--></th>
<td>{$val->getFormHTML()}</td>
</tr>
<!--@endforeach-->
3. style.list.html 수정
[수정전]
<!--@else-->
<td>{$document->getExtraValueHTML($val->idx)} </td>
<!--@end-->
<!--@end-->
[수정후]
<!--@else-->
<!--@if(($mid ==$module_info->extra_val_mid) && ($val->name ==$module_info->extra_val_name1)) -->
<!--@if( ($mid ==$module_info->extra_val_mid) && ($document->getExtraValue(1) ==$module_info->default_name1) || ($document->getCommentCount()) )-->
<td><center><img src="{$module_info->extra_val_image1}" class="iePngFix" /></center></td>
<!--@else-->
<td><center><img src="{$module_info->extra_val_image2}" class="iePngFix" /></center></td>
<!--@end-->
<!--@else-->
<td>{$document->getExtraValueHTML($val->idx)} </td>
<!--@end-->
<!--@end-->
<!--@end-->
![e1.jpg](http://www.xpressengine.com/files/attach/images/121/328/761/018/e1.jpg)
위의 이미지에서 "입력항목 이름" 과 "기본 값"이 중요합니다. 여기서는 "신청상태" "신청완료"( !기억)
![e2.jpg](http://www.xpressengine.com/files/attach/images/121/328/761/018/e2.jpg)
"신청상태" 외 "신청완료일"도 추가했습니다.
이상과 같이 확장변수를 추가한 다음 아래 " 스킨관리설정"에 갑니다.
C. 스킨관리설정
![s1.jpg](http://www.xpressengine.com/files/attach/images/121/328/761/018/s1.jpg)
1. 확장변수 mid -- 게시판의 모듈(mid)을 기재합니다.
2. 입력항목이름 -- 위에서 !기억 하라고 한 입력항목이름 신청상태를 기재합니다.
3. 기본값이름 -- 기본 값 신청완료를 기재합니다.
4. 확정/대기이미지 -- 글을 처음 작성했을때 나타나는 대기이미지와
관리자가 댓글을 단 후 나타나는 확정이미지의 경로를 기재합니다.
p.s 이미지경로는 필히 전체경로로 작성해 주세요. ( http://도메인/이미지경로/이미지.png )
../ 이나 ./ 사용시 약간의 문제를 일으킵니다.
D. 게시판
![b.jpg](http://www.xpressengine.com/files/attach/images/121/328/761/018/b.jpg)
여기서 중요한 것
회원이 글을 작성할때는 "신청상태" 확장변수 부분은 출력이 되지를 않습니다.
그리고 글을 작성하고 나면 신청대기의 이미지가 게시판에 자동으로 출력됩니다.
그 후 관리자가 해당 작성글에 댓글을 달아주거나,
수정을 눌러서 신청상태를 선택하면 게시판에 자동으로 신청완료이미지가 출력됩니다.
그러니까 관리자가 해당글에 댓글을 달거나 수정중 한가지를 선택하면 신청완료가 된다는 이야기입니다.
또한 댓글을 달 수 있는 권한을 관리자에게만 주어야 합니다.
만약 댓글적용을 해제할려면 style.list.html수정에서 || ($document->getCommentCount()) 부분을 삭제하시면 됩니다.
- [2017/06/17] 묻고답하기 contentextended 사용자정의 출력 시, select type 은 array 이로 나옵니다.
- [2016/07/22] 묻고답하기 덧글단 회원에게만 확장변수 공개 질문 입니다. *2
- [2016/03/25] 묻고답하기 확장변수로 새로운 카테고리(분류)를 만들고 싶습니다
- [2016/02/24] 묻고답하기 글 쓸때 새창 ->구글맵 지도좌표선택->좌표를 확장변수에 입력 문의
- [2015/11/06] 묻고답하기 Board DX 본문 입력을 없애는 방법 알 수 있을까요?