이 글은 앞선 글에 이어지는 글입니다. 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()} </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번에서 같은 변수값을 가지는 게시물 리스트로 넘어가게 됩니다.
이상입니다. 다음에 정리할 사항이 또 생기면 그때 또 팁게에 올려볼게요~