경남 by아포리아 postedAug 30, 2016

게시판 "본문"에서 확장변수(단일/다중선택) 기본값의 다국어 출력 방법

Views 248 Likes 0 Replies 0
Extra Form
입금자 성명 윤삼
필요장비 화이트 보드, 보드마카, 지우개
대관시간 1930
신청공간 강의실
대관일 2018-06-28

이 글은 앞선 글에 이어지는 글입니다. https://www.xetown.com/square/354803

앞선 글에서는 다국어 지원이 안 되는 '확장변수 기본값'을 '카테고리 변수'를 우회함으로써 다국어로 출력하는 방법을 알아봤었습니다.

단, 이것은 게시판 "목록"에서 표현하는 방법이었죠.

 

이번에는 게시판 "본문"에서 표현하는 방법을 정리해보고자 합니다. 짜좐~

앞선 글을 제대로 숙지했다면 그렇게 어렵지 않을 겁니다 ㅋ

 

1. 준비물은 딱 하나, 바로 _read.html 파일입니다. 다시 강조하지만 XEdition 게시판 스킨을 기준으로 한 겁니다. 다른 스킨에서는 본문 읽기용 파일의 제목이 다를 수 있습니다.

 

2. 먼저 파일 맨 위에 지난번처럼 변수 정의를 해줍니다. $eval과 $cval의 의미는 앞선 글의 5번과 6번에서 상술했던 바 있습니다.

{@ $eval = explode(',',$oDocument->getExtraVars()[1]->default); }
<block loop="$cate_list[array_keys($cate_list)[1]]->children=>$key,$val">
{@ $cval[$key] = $cate_list[array_keys($cate_list)[1]]->children[$key]->title; }
</block>
{@ $ekey = array_search($oDocument->getExtraValue(1),$eval); }

달라진 게 두 가지가 있습니다. 하나는 이번엔 게시물 본문이므로 $document가 아니라 $oDocument인 걸 볼 수 있습니다. 다른 하나는 맨 마지막줄입니다. $eval과 $cval을 매칭시켜주는 키값의 함수가 너무 긴 것 같아서 따로 정의를 해줘봤습니다. 그리고 이 $ekey 변수는 게시판 목록에서와 달리 본문에서는 두 번 사용할 예정입니다 ㅎㅎ

 

3. 이번엔 스킨을 수정하도록 하죠. <!-- Extra Output --> 부분이 있을 겁니다. 말 그대로 확장변수 출력 부분입니다. 여기 주석에서 td 태그(<td>{$val->getValueHTML()}&nbsp;</td>)를 다음과 같이 바꿔줍니다.

<td>{$cval[$ekey]}</td>

간단하죠? 이렇게 하면 확장변수의 기본값이 다국어 모드로 출력됩니다 ^^/

 

4. 보너스로 여기에 링크를 걸어두는 방법도 정리해볼까 합니다.

<td><a href="{getUrl('search_target','extra_vars1','search_keyword',$eval[$ekey], 'document_srl', '')}">{$cval[$ekey]}</a></td>

이것 역시 간단하죠? 출력은 다국어로 하되, 링크로 넘어가는 검색어(search_keyword)는 게시판 설정에서 입력되어 있던 기본값으로 해주는 것이죠.

이 링크를 누르면 어떻게 될까요? 확장변수 1번에서 같은 변수값을 가지는 게시물 리스트로 넘어가게 됩니다.

 

이상입니다. 다음에 정리할 사항이 또 생기면 그때 또 팁게에 올려볼게요~

?