묻고답하기
익명선택기능을 사용중인데요.
2014.05.13 15:26
http://www.xpressengine.com/tip/21528335
이 기능을 적용중이에요.
코어는 1.5.X 스케치북 게시판 사용중입니다.
본래 팁과는 약간 다르게 사용하고 있는데요.
<span cond="$mi->anonymous_document=='2'">
<input type="checkbox" checked="checked" name="use_anochk" value="Y" id="use_anochk" />
<label for="use_anochk">{$lang->use_anochk}</label>
</span>
이렇게 익명 선택을 체크해서 사용하고 있습니다.
익명값을 기본으로 하기 위해서요.
이렇게 사용하니까 문제가 생기는데요.
익명선택 체크박스를 해제하고 글을 올릴경우, 즉 닉네임으로 글을 올릴 경우
글수정을 할때 잠깐 신경을 못쓰면 익명이 체크된채로 글 수정이 됩니다.
그리고 대부분 아시겠지만 한번 익명으로 체크된 글은 체크박스를 풀어도 닉네임으로 글이 올라가지 않습니다.
이 문제를 해결하기 위해서 한번 체크된 값이 유지되도록 해보려고 했는데 status가 없어서 불가능하다는걸 뒤늦게 눈치챘어요.
상태값을 만들어주자니 제 실력에는 무리고, 해서 질문글을 올립니다.
만일 확장변수등으로 손쉽게 상태값을 줄수 있다면 가장 좋겠지만, 그것이 어려울 경우
새 글 쓰기나 글 수정등으로 조건을 걸어 옵션을 다르게 줄수 있는 방법이 있는지 궁금합니다.
있다면 참고할만한 링크를 주시면 더욱 좋겠습니다. ㅠㅠ
현재는 글 작성과 글 수정시 옵션이 모두 같아서 어찌해야 할지 모르겠어요.
댓글 4
-
okiz
2014.05.13 15:59
<label for="a_anony">익명</label><input type="checkbox" name="is_anony" id="a_anony" value="1" /><!--@end--><input type="hidden" name="is_anony" id="a_anony" value="1" cond="$oDocument->isExists() && $oDocument->get('is_anony')=='1'" /><input type="hidden" name="is_anony" id="a_anony" value="0" cond="$oDocument->isExists() && $oDocument->get('is_anony')=='0'" /><!--@end-->제가 쓰는 방법입니다.wrtie_form 에 bold 처리된 부분을 작성사분 환경에 맞게 변경하시고 적용시켜 보세요. -
딸꾹질
2014.05.25 03:04
안녕하세요.
추가질문을 드리고팠는데 일에 치여서 이제야 댓글 달아요.
별다른 함수 추가 없이 스킨에서 처리만으로 되는건가요?
작성해주신 답글을 참고해도 잘 모르겠어요.
이것저것 바꿔봐도 익명으로 처리되지 않고 닉네임이 노출됩니다.
체크박스 바로 아래 <!--@end-->가 있는걸로 봐서는 뭔가 조건문이 있을것같은데.....바로 그 조건문을 모르겠습니다.
혹시 여유 되신다면 좀 더 힌트를 주실수 있을까요?
-
okiz
2014.05.25 17:47
죄송합니다. 분명 소스 다 넣었는데 저렇게 변해있네요..
저 같은 경우 아래와 같이 쓰고 있으니 보시고 참조하세요.
<!--@if(!$oDocument->isExists() && $logged_info)-->
<label for="a_anony">익명</label>
<input type="checkbox" name="is_anony" id="a_anony" value="1" />
<!--@end-->
<input type="hidden" name="is_anony" id="a_anony" value="1" cond="$oDocument->isExists() && $oDocument->get('is_anony')=='1'" />
<input type="hidden" name="is_anony" id="a_anony" value="0" cond="$oDocument->isExists() && $oDocument->get('is_anony')=='0'" />
is_anony = 1 익명선택
is_anony = 0 익명비선택
$oDocument->isExists() 문서가 존재하느냐. 존재한다면 글수정 상황일 것이다. 존재하지 않는다면 새글 작성 상황.
녹색부분에서는 새글작성 상황에서 체크박스로 익명선택을 물어보고,
파란색의 hidden input 은 이미 글이 존재하는 경우(글 수정상황) 에서는 입력받았던 is_anony 값을 판별하여
체크박스를 더 이상 보여주지 않고 그 상황을 유지시키고 있습니다.
아..참고로 저는 저 팁 이용하지 않고 개인적으로 바꾸긴 했으나 팁을 읽어보니 비슷한거 같아 답변해 보았습니다.
딸꾹질님의 경우에는 $oDocument->isExists() 와 $oDcoument->get('use_anochk') 로 적절히 구분하시면 될 것 같습니다.
-
딸꾹질
2014.05.26 18:05
감사합니다.
제가 사용한 소스와는 사용방법이 다르기 때문인지 일부분은 작동하지 않았습니다만, 맨 윗줄 녹색 표시해주신 소스만으로도 충분히 잘 작동해요!
혹시 저와 같은 사용 방법을 원하시는 분이 계실지도 모르니 아랫쪽에 제가 사용한 방법 적어둡니다.
<!--@if(!$oDocument->isExists() && $logged_info)-->
<input type="checkbox" checked="checked" name="use_anochk" id="use_anochk" value="Y" />
<!--@else-->
<input type="checkbox" name="use_anochk" id="use_anochk" value="Y"/>
<!--@end-->
<label for="use_anochk">익명사용</label>
소스는 이렇고요.
새 글을 쓸때에는 익명사용에 자동으로 선택이 되고, 수정화면에서는 체크가 풀린것이 기본이 됩니다.
어차피 익명사용에 한번 체크가 되었던 글은 닉네임으로 되돌아가지 않으므로 이정도면 충분할듯싶어요.
다시한번 감사드립니다!