안녕하세요?
화창한 그렇지만 바람이 좀 부는 오후 입니다.
다름이 아니오라 확장 변수로 extra_var1을 게시판에 설정하였습니다.
설정값은 "대기" "완료" 입니다.
스케치북 게시판 본문(_read.html)에서 확장변수값이 "대기"이면 코멘트 박스가 보이고
"완료"이면 코멘트 박스를 삭제하고 싶습니다.
_read.html 파일에서 코멘트 박스 관련 부분은 아래 코드 입니다.
<include cond="$oDocument->allowComment() && !$mi->cmt_wrt_position" target="_comment_write.html" />
어린 마음에 아래처럼 코드를 해보았으나 작동을 하지 않습니다.
<!--@if($document->getExtraValueHTML($val->idx)=='대기')-->
<include cond="$oDocument->allowComment() && !$mi->cmt_wrt_position && $document->getExtraValueHTML($val->idx)=='대기'" target="_comment_write.html" />
<!--@elseif($document->getExtraValueHTML($val->idx)=='완료')-->
<!--@end-->
----------------------------
<block cond="$document->getExtraValueHTML($val->idx)=='대기'">
<include cond="$oDocument->allowComment() && !$mi->cmt_wrt_position" target="_comment_write.html" />
</block>
코멘트 박스 가리는 방법 아니더라도
확장변수값이 "완료"이면 댓글을 달지 못하게 하고 싶습니다.
아시는 분 계시면 도와주세요~
감사합니다.
댓글 7
$val->idx 는 순서값입니다. 명령문이 잘못된거죠.. '대기' 가 아니라 1,2로 하면 작동되실거에요
정확하게 설명해드리자면
getExtraValueHTML(1) == '대기'
이렇게 사용하셔야 합니다.
view 나 write 에서는 $oDocument-> 로 하신다고 생각하시면 됩니다
사용자정의 이름 eid 값으로 할때는 getExtraEidValue('eid값') 나 getExtraEidValueHTML('eid값')
사용자정의 순서 (idx) 로 할때는 getExtraValue(순서) 나 getExtraValueHTML(순서) 로 하시면 됩니다.
그런데 checkbox 나 radio, select 형태의 경우
Value 로 하면 하나만 선택한 경우여도 무조건 배열로 값이 전달되요. 따라서 in_array 가 아닌
== 로 비교하면 값이 무조건 안 맞아요
대신 ValueHTML 로 하면 배열이 아니라 콤마(,) 로 implode 된 값이 들어가죠.
따라서 현재 view 에서 원하시는거고 정확한 값을 이용하고픈거면
$oDocument->getExtraEidValueHTML('extra_vars1') 로 하셔야합니다.
sejin7940님 덕분에 문제 잘 해결하였습니다.
혹시나 참고하실 분 있을까해서 코드 정리해서 올립니다.
<!--@if($oDocument->getExtraEidValueHTML('extra_var1') == '대기')-->
<include cond="$oDocument->allowComment() && !$mi->cmt_wrt_position" target="_comment_write.html" />
<!--@elseif($oDocument->getExtraEidValueHTML('extra_var1') == '완료')-->
<!--@end-->
<include cond="$oDocument->allowComment() && !$mi->cmt_wrt_position" && $oDocument->getExtraEidValueHTML('extra_var1') == '대기' target="_comment_write.html" />
답변 달아주신 모든 분들께 감사드립니다~~
모두들 즐거운 하루되세요!!!
잘 보고 갑니다 >_<