코어의 document.item.php 파일을 보다가 근간에 추가된 것 같은 흥미로운 녀석들이 보여서 정리를 해볼까 합니다.
불금이니까요. (우리집 냥이 밥 주기 전에 시간이 살짝 남는 불금)
documentItem은 $document->getTitle()이나 $oDocument->getContent() 처럼 문서 객체에 포함된 변수, 특히 $document->variables에 배열로 담겨 있는 정보들을 예쁘게 포장시켜주는 메소드 아이템들의 클래스라고 할 수 있습니다.
문서 목록에서는 $document->getNickName()처럼, 문서 본문에서는 $oDocument->getRegdate()처럼 쓰곤 하지요.
그러면 이들 중에서 흥미로운 친구들 몇몇을 소개해볼게요. (자세한 내역은 여기를 참고해보세요)
$oDocument->isLocked()
: 문서에 댓글 작성이 잠겨 있는지 알려줍니다.
: 잠겨 있으면 true, 허용 상태이면 false를 반환하네요.
$oDocument->isEditable()
: 문서가 편집 가능한 상태인지 알려줍니다. 이걸 가지고 수정 버튼 출력을 제어하면 좋겠네요.
: 비회원이 작성한 글이거나, 본인이 해당 문서에 권한을 가지고 있는 상태이면 true를, 그렇지 않으면 false를 반환합니다.
$document->doCart()
: 아주 흥미로운 메소드예요. 관리자가 게시물 관리할 때 문서별로 체크를 하잖아요? 그걸 반전시켜주는 기능을 합니다.
: 근데 어떤 상황에서 써먹으면 좋을까요? 과문한 탓에 저는 잘 모르지만 암튼 흥미로운 기능인 건 분명합니다.
$oDocument->notify($type, $content)
: 얘도 흥미로워요. $type이라는 말머리를 달고 $content에 담긴 내용을 문서의 작성자한테 메시지로 전송해주는 기능입니다.
: 즉, 아래와 같이 하면 메시지 전송이 되는 모양입니다.
{@ $type = '귓속말'; $content = '저한테 메시지 좀 부탁드려요. 왜냐면 지금 글은 저를 굉장히 곤란하게 할 수 있거든요. 상의를 좀 했으면 합니다.'; $oDocument->notify($type, $content); }
: 그치만 스킨에서 저걸 바로 사용하면 문서를 열자마자 메시지가 갈 테니, 따로 버튼을 만든다거나 해서 말머리와 쪽지 내용을 적절히 뿌려주는 별도의 기능을 통해 사용하면 좋겠네요.
: 참고로 작성자가 문서를 등록하기 전에 알림 기능을 체크한 경우에만 작동합니다.
$oDocument->getMyVote(), $oDocument->getVoted()
: 현재 문서에 대한 본인의 추천 이력을 확인해줍니다.
: xedition 게시판 스킨에서 아주 적극적으로 사용되고 있네요.
: 자세한 용례는 여기를 참고
: 참고로, 신고 이력을 확인하고 싶다면 $oDocument->getDeclared()로 하면 좋아요.
$oDocument->getRegdateDT(), $document->getRegdateDT()
: 요거는 문서의 등록일을 접속자의 타임존에 따라 표시해주는 기능 같습니다.
: 때때로 유용할 수 있겠어요.
: getUpdateDT()는 수정일 표시가 되겠죠?
$document->getPermanentUrl()
$document->getUrl()
: 얘네 둘은 세트로 소개를 해야겠습니다. 둘 다 문서의 링크 주소를 가리키는데요.
: 전자는 문서가 '실제로' 소속된 mid로 링크 주소를 찍어주는데요. 후자는 문서가 '명목적으로' 소속된 mid로 링크를 찍어줍니다.
: 이 둘의 차이는 통합게시판에서 드러나게 됩니다. 즉 링크를 걸 때 getPermanentUrl() 메소드를 쓰면 원래 게시판으로 이동하게 되고, getUrl() 메소드를 쓰면 통합게시판에 적용된 현재 스킨 안에서 문서를 볼 수 있게 되는 거죠.
$oDocument->getTags()
: 아마도 적지 않은 스킨들에서 태그 목록을 추출할 때 $oDocument->get('tag_list') 같은 방식으로 하지 않을까 싶은데요. 이렇게 하면 문서에 태그가 없는 경우 null 값을 반환하게 됩니다. 이때 count 함수 같은 걸로 조건문을 걸면 오류가 뜨게 되죠.
: 그런 경우에 대비해서 그냥 getTags()를 쓰세요. 태그가 없으면 빈 배열을 반환하기 때문에 오류 없는 깨끗한 스킨을 만날 수 있습니다.
$oDocument->getHashtags()
: 이거 대박입니다!!!! 여태 이런 게 있는 줄 모르셨죠?!!!
: 본문 안에 있는 해시태그를 수집해서 출력해주는 기능이에요. 말해 뭐합니까? 직접 한번 써보세요.
$oDocument->getExtraValueHTML($idx), $document->getExtraValueHTML($idx)
: 이거는 비교적 널리 알려진 메소드이긴 한데, 아직 모르시는 분들이 계셔서 소개합니다.
: $idx 자리에 확장변수 번호를 넣어주면, 그에 해당하는 확장변수값을 html 형태로 정리해서 출력시켜준답니다.
$oDocument->getExtraEidValue($eid), $document->getExtraEidValueHTML($eid)
: 이것 역시 널리 알려진 메소드로 위의 메소드와 비슷한 기능을 합니다.
: 다만 $eid 자리에 확장변수 이름을 번호를 넣어줘야 한답니다.
기타 흥미로운 기능들이 더 있을 것 같은데요.
고양이가 밥 달라고 조르네요.
이만 줄입니다~!