웹마스터 팁
특정게시판, 비밀글로 작성하기 (대암지기님 팁 보완)
2010.03.17 17:17
주의 : 게시판정보에서 비밀글기능에 체크되어 있어야 합니다.
전에 개인적으로 받았던 질문이기도 하고, 묻고 답하기 게시판에도 올라와서 재탕해봅니다.
묻고답하기에 질문을 하셨던 분이 링크한 대암지기님께서 작성한 팁의 경로는 아래와 같습니다.
http://www.xpressengine.com/16495811
대암지기님께서 팁을 작성했던 시점보다 현재 XE 버전이 많이 올라갔으므로, 안되는 팁을 작성했던 것은 아닙니다.
그럼, 아래의 설명을 읽고 원하는 바를 이뤄보세요.
이 팁을 작성하는 시점은 XE 1.4.0.10 이며, 설명에서 사용되는 것은 XE 게시판 기본 스킨입니다.
특정게시판에서만 되는 팁이 아니며, 여러분이 사용하고 있는 게시판스킨을 원하는 방법으로 수정하면 됩니다.
1. 먼저 skin.xml문서를 열고 스킨관리에 기능을 추가합니다.
<extra_vars>와 </extra_vars>사이에 아래의 부분을 끼워넣으면 됩니다.
========+++
대암지기님의 팁을 수정하는 것이므로 var name은 secret_document로 해보겠습니다.
반드시 secret_document로 해야되는 것은 아니며, 원하는 이름을 부여하면 됩니다.
+++========
<var name="secret_document" type="select">
<title xml:lang="ko">비밀글 작성</title>
<description xml:lang="ko">모든 게시물이 비밀글로 작성됩니다.</description>
<options value="N">
<title xml:lang="ko">사용안함</title>
</options>
<options value="Y">
<title xml:lang="ko">사용</title>
</options>
</var>
위의 작업을 마쳤으면 아래의 그림과 같이 스킨관리에 제대로 나타나는지 확인해보세요.
스킨관리에 비밀글 설정기능을 추가했으면 글쓰기창에도 조건을 추가해야 원하는 기능을 사용할 수 있습니다.
2. write_form.html 문서를 수정합니다.
2-1 기존글은 기존설정을 따르게 하기
이것은 이미작성된 글이 비밀글이 아닐 경우 강제로 체크되어 있지 않도록 설정하는 것입니다.
(사용자가 체크해제할 수 있게)
아래와 같은 부분을 찾아서
아래와 같이 수정합니다.
(사용자가 체크해제할 수 없게)
위에서 말씀드린 빨간색 부분에 onclick="this.checked=true" 이것을 추가하면 됩니다.
적용해보면 아래와 같이 되겠죠?=======================================================================================
2-2 비밀글로 작성된 글이 아니어도 글 수정시 비밀글에 체크되어 있도록 하기
이것은 기존에 작성된 글이 비밀글이 아니라도 글 수정 버튼을 누르면 비밀글에 체크되어 있도록 하는 것입니다.
2-1에서 말씀드린 파란색 부분을 찾아서 아래와 같이 수정합니다.
(사용자가 체크해제할 수 있도록)
(사용자가 체크해제할 수 없도록)
위에서 말씀드린 부분에 onclick="this.checked=true" 이것을 추가하세요.=======================================================================================
2-3 비밀글체크인풋 숨기기
이것은 무조건 비밀글로 작성하지만 이 부분을 작성자에게 보여주지 않기 위한 설정입니다.
아래의 부분을 찾습니다. 딱 한 곳이 있을 겁니다.
<!--@if($module_info->secret=="Y")-->
숨김상태에서는 체크나 체크해제를 할 수 없기 때문에 무조건 체크되도록하는 소스만 설명드릴게요.
위의 그림을 기준으로 65행부터 68행을 삭제 후 아래의 소스를 끼워넣습니다.
이렇게 이 부분을 숨겼으면 사용자에게 안내을 해줘야겠죠..
아래의 소스를 원하는 곳에 넣어보세요. (html태그는 알아서 꾸미세요)
<!--@if($module_info->secret_document == "Y")-->이 글은 비밀글로 저장됩니다.<!--@end-->
적용하면 아래와 같이 됩니다.
* 스킨관리에 기능을 추가하지 않고 글쓰기창에만 mid별로 조건을 추가해서 사용할 수도 있습니다.
댓글 9
-
chohee
2010.03.18 09:44
-
chohee
2010.03.21 11:02
안녕하세요.
제가 원하는 기능은, 스킨설정에서 '모든글을 비밀글로 작성' 을 선택한 게시판은 자동으로 비밀글작성, 비밀글체크글자는 숨기기.
그리고 모든글을 비밀글로 작성을 비선택시에는 비밀글선택글자가 보이게...입니다.
그래서 된장맛껌님이 알려주신 팁을 응용하여
<!--@if($module_info->secret=="Y")--> <!--@if($module_info->secret_document != "Y" && $oDocument->isSecret() || $module_info->secret_document == "Y")--> <input type="hidden" name="is_secret" value="Y" checked="checked" id="is_secret" class="PBP_Edi_check" /> <!--@else--> <input type="checkbox" name="is_secret" value="Y" <!--@if($oDocument->isSecret())-->checked="checked"<!--@end--> id="is_secret" class="PBP_Edi_check" /><label for="is_secret">{$lang->secret}</label> <!--@end--> <!--@end-->
이렇게 바꿨는데요~ 현재 잘 적용은 됩니다.^^그러데, 왠지 불필요한 태그가 있는 것은 아닌가, 왠지 if문에서 빼도 되는 태그가 있는 것은...살짝 불안해서요~
제가 워낙 멀 모르다보니, 혹 아시는 분 계시면
<!--@if($module_info->secret_document != "Y" && $oDocument->isSecret() || $module_info->secret_document == "Y")--> <input type="hidden" name="is_secret" value="Y" checked="checked" id="is_secret" class="PBP_Edi_check" />
이 부분이요, 다 들어가는 것이 맞는지 한번 봐주시면 감사하겠습니다.^^
-
된장맛껌
2010.03.21 15:02
새글작성은 비밀글체크인풋을 숨겨서 무조건 비밀글로 작성되게하고, 기존글은 비밀글이 아닐 경우에만 작성자가 선택할 수 있도록... 이 맞나요? 만약 기존글이 비밀글일 경우는 체크인풋을 숨깁니다. 정리를 하자면... 스킨관리에서 모든 글을 비밀글로 작성하는 기능을 사용하며, 이미작성된 게시물이 비밀글이 아닐 경우에만 체크인풋을 보여줍니다. (게시판정보에서 비밀글 기능에 체크되어 있고, 스킨관리에서 사용안함으로 선택시에는 새글작성시 비밀글체크기능이 보일겁니다. 적용 후 두가지 경우로 잘 되는지 테스트한번 해보세요.)
왜 제가 작성하면 소스가 다 안나타나는지 모르겠습니다.. -_-;;
첨부파일 별도로 올릴게요.
열어서 확인해보세요. -
chohee
2010.03.21 17:16
감사합니다~^^
여러가지로 감사드리구요~ 파스텔보드도 정말 잘 쓰고 있습니다.^^
-
울뜨라
2010.12.24 15:23
위 방식대로 해도 비밀글이 기본적으로 체크되는 기능이 안됩니다.
-
당근로봇
2011.04.21 16:44
잘되는데요 다른 컴퓨터에서 봐보세요 그럼 됩니다. 방금 본인이 작성해놓고 본인컴으로 들어가니
비번 안물어보는 거에요 친구보고 작성하라고 하고 집에서 들어가보세요 그럼 비밀글이라고 나올거에요
세션아웃되는 시간 지남 비밀글로 될거에요 -
미소년카리안
2011.03.09 18:16
이게 이렇게 작성을 하면 관리자가 공지사항이라던지 작성을 해도 무조건 비밀글로 넘어가네요.
혹시 관리자가 공지사항을 체크하고 작성했을때 누구나 읽을수 있게도 가능할까요? -
전경국
2013.09.05 11:58
난 왜 안돼죠..ㅠ.ㅠ 비밀사용하는부분은 됐는데..
write_form.html 이게 수정부분이 없어요..ㅠ.ㅠ 어떻게 수정할지 모르겠스니다..
수정좀부탁 드립니다.(참 그리고 무조건 비밀글로 수정좀)^^
-
팔계~
2014.07.10 02:46
스케치북 스킨에 적용하려 하는데 잘모르겠네요
아래 부분을 수정하면 될것 같은데
제가 하려는 것은 비밀글 기능을 사용하면
라디오버튼이 안보이게 하고 "비밀글로 작성 됨"이라고 표시하구요
무조건 비밀글이 작성 되게 하고
사용하지 않으면 기존과 같이 라디오버튼을 표시하는거예여
<div cond="is_array($status_list)" class="section"> <!--@foreach($status_list AS $key=>$value)--> <input cond="@!in_array(secret,$mi->wrt_opt)" type="radio" name="status" value="{$key}" id="{$key}" checked="checked"|cond="$oDocument->get('status')==$key || ($key=='PUBLIC' && !$document_srl)" /> <input cond="@in_array(secret,$mi->wrt_opt)" type="radio" name="status" value="{$key}" id="{$key}" checked="checked"|cond="$oDocument->get('status')==$key || ($key=='SECRET' && !$document_srl)" /> <label for="{$key}">{$value}</label> <!--@end--> </div>
맨땅에 삽질 해봤더니 라디오버튼이 4개로 보이고..ㅡㅡ;
아예 안보이고 에러메세지만 나오고...휴~
지나가는 고수님들 바쁘시겠지만 잠시 봐주시면 감사 하겠습니다.
<div cond="is_array($status_list)" class="section"> <!--@if($module_info->secret!="Y")--> <!--@foreach($status_list AS $key=>$value)--> <input cond="@!in_array(secret,$mi->wrt_opt)" type="radio" name="status" value="{$key}" id="{$key}" checked="checked"|cond="$oDocument->get('status')==$key || ($key=='PUBLIC' && !$document_srl)" /> <input cond="@in_array(secret,$mi->wrt_opt)" type="radio" name="status" value="{$key}" id="{$key}" checked="checked"|cond="$oDocument->get('status')==$key || ($key=='SECRET' && !$document_srl)" /> <label for="{$key}">{$value}</label> <!--@end--> <!--@else--> <input type="radio" name="status" value="PUBLIC" id="PUBLIC"/> <label for="PUBLIC">공개</label> <input type="radio" name="status" value="SECRET" id="SECRET" checked="checked"/> <label for="SECRET">비밀</label> 이글은 비밀글로 작성됩니다. <!--@end--> </div>
이게 맞는건지 더이상 진도가 안나가내요
이렇게 하니 작성글이 리스트에 제목이 안보이네요
아래와 같이 하니 되는데 숨겨보니 안되더군요
<div cond="is_array($status_list)" class="section"> <!--@if($module_info->secret!="Y")--> <!--@foreach($status_list AS $key=>$value)--> <input cond="@!in_array(secret,$mi->wrt_opt)" type="radio" name="status" value="{$key}" id="{$key}" checked="checked"|cond="$oDocument->get('status')==$key || ($key=='PUBLIC' && !$document_srl)" /> <input cond="@in_array(secret,$mi->wrt_opt)" type="radio" name="status" value="{$key}" id="{$key}" checked="checked"|cond="$oDocument->get('status')==$key || ($key=='SECRET' && !$document_srl)" /> <label for="{$key}">{$value}</label> <!--@end--> <!--@else--> <input type="radio" name="status" value="SECRET" id="SECRET" checked="checked" /> <label for="SECRET">비밀</label> 이글은 비밀글로 작성됩니다. <!--@end--> </div>
제목 | 글쓴이 | 날짜 |
---|---|---|
빈공간 더블 클릭시 상하 이동 스크립트 | socialskyo | 2014.07.23 |
이메일인증 Error 한방정리 참고해보세요. [4] | 애드바이러스 | 2014.02.12 |
로그인 안하면 코멘트 볼 수 없게 스킨 수정하는 법 [3] | W.O | 2014.03.23 |
회원 비밀번호 수정시 자동으로 로그아웃 되게 하는 방법 [4] | sejin7940 | 2014.07.18 |
특정 확장변수를 글 추천자에게만 보이게 하기 [10] | 뮤랑이 | 2010.01.11 |
관리자만 글 등록이 되고, 일반 유저는 글 등록버튼을 누르면 아무런 반응이 없을 때. [1] | whitemind | 2013.11.07 |
모바일(또는 textarea형)에서 댓글 수정시 줄바꿈 유지되도록 수정 [2] | sejin7940 | 2014.07.17 |
댓글등록에 단축키 사용하기 | ひりゅう. | 2014.07.15 |
이전글, 다음글 코어 건드리지 않고 사용하기 (모듈X, 애드온X) (업데이트) [8] | 시니시즘 | 2013.01.26 |
SocialXE 관련 사용팁 적용 수정 파일 [3] | 휘즈 | 2014.07.13 |
외부 페이지에서 회원 extra_vars 변수 가져오기 [1] | Happyphp | 2014.07.09 |
특정게시판, 비밀글로 작성하기 (대암지기님 팁 보완) [9] | 된장맛껌 | 2010.03.17 |
게시판 접속시에 첫(제일 최근) 게시물이 보여지게 하기 [16] | foret | 2014.03.08 |
편리한 안드로이드 크로스 브라우징 테스트 Tip - 안드로이드 가상화 | AJKJ | 2014.07.09 |
htm과 html의 차이는 ? | 디테일 | 2014.06.17 |
1.7 버전 사이트 메뉴 편집 사용법 [4] | 휘즈 | 2013.07.27 |
MRTG에서 네트워크및 CPU, 메모리점유율을 기록하기 | ひりゅう. | 2014.07.05 |
XE 왕초보를 위한 글 [13] | 휘즈 | 2009.08.06 |
php 세션을 memcache에 저장할 때 주의할 점 | XE러버 | 2014.07.04 |
클리어픽스(clearfix)의 개념과 방법 | 시니시즘 | 2014.07.04 |
감사합니다!^^