묻고답하기
분류값을 사용하되, 필수로 입력하지 않아도 되게 할 수는 없나요?
2014.04.21 02:03
말그대로입니다.
게시판 분류.. 즉 카테고리를 사용하되, 꼭 선택하지 않아도
되게끔 할 수 없을까요?
분류값을 설정하면 무조건 선택하지 않으면 글이 입력이 안되는데요..
필요에 따라선 꼭 선택하지 않아도 되면 좋겠습니다.
댓글 19
-
콩까기
2014.04.21 02:28
-
애니즌
2014.04.21 02:59
오 좋은 답변 감사합니다!
정 답이 없으면 저렇게라도 적용해야 겠네요 ㅎㅎ
현재 시스템상으로는 카테고리를 선택하지 않아도 작성이 되는 것에 문제가 없을 것 같은데...
-
애니즌
2014.04.21 03:35
아 방법을 찾았습니다!
다만 XE 코드를 수정해야한다는 점이...
그리고 모든 게시판에 적용되버리네요.. 애드온을 만들면 컨트롤이 가능할런지.. 쩝;;
-
prologos
2014.04.21 03:40
애니즌님 글보고 관심이 생겨서 방법을 찾아보니... 가능하네요 ㅎㅎ
글 작성할때 category_srl를 검사하는 스크립트의 위치는 아래와 같고...
./files/cache/js_filter_compiled/b1faebdcc3b426676c00235bccd8a48e.ko.compiled.js
4번째 라인 'category_srl': {required:true} 부분에 의해 검사를 하게 되더군요.
그런데 해당 js파일은 ./classes/xml/XmlJsFilter.class.php에 의해서 생성 됩니다.
해당 파일의 227라인의 if(!$target)부분을 아래와 같이 수정하면 category_srl 선택과 상관없이 글 작성이 가능한 스크립트가 생성되게 됩니다.
if(!$target || ($filter_name == 'insert' && $target == 'category_srl'))
그런데 제 문제인지는 몰라도 ./files/cache/js_filter_compiled/b1faebdcc3b426676c00235bccd8a48e.ko.compiled.js파일은 캐시 재생성을 해도 새로 생성되지 않네요 @.@ 해당 파일을 삭제하고 홈페이지를 새로고침하면 js파일이 새로 생성됩니다.
-
애니즌
2014.04.21 03:42
오 답변 감사합니다.
저는 이런 방법으로 접근했습니다.
/modules/board/tpl/filter/insert.xml
<node target="category_srl" required="true" />
<node target="category_srl" />
사실 열심히 자바스크립트를 찾다고 못찾아서 그런 거지만...!
prologos님께서 말씀해주신 방법이 좋겠네요!
-
prologos
2014.04.21 03:44
헛! 제가 댓글 작성하는 동안 방법을 찾으셨군요 ㅎㅎㅎ
-
애니즌
2014.04.21 03:45
넵.. ㅎㅎ 하지만 자바쪽에서 컨트롤하는 게 맞는 것 같습니다.
저걸 애드온으로 구현시키면 좋을텐데
감도 안오는군요..-_-;;;
말씀하신대로 캐시를 날려보고 하니 잘되네용 +_+
-
prologos
2014.04.21 04:00
애니즌님 말씀하신대로 insert.xml을 수정해도 동일한 효과가 있겠는데요 ㅡㅡ;;
js의 해당 부분이 'category_srl': {}로 생성되네요 @.@
-
애니즌
2014.04.21 04:03
이걸 애드온 쪽에서 처리가 가능할까요?
우선 이것저것 파일을 봐보고 있는데요
board.view.php 에서
Context::addJsFilter($this->module_path.'tpl/filter', 'insert.xml');
여기서 insert.xml을 할당해주더라구요
이 할당한 것에 대한 내용을 변경하거나
아니면 임의로 만든 filter 파일로 바꿔주면 될 듯 한데
그런 게 가능할런지..-_-;;;
-
애니즌
2014.04.21 04:20
오오 애드온 성공했습니다!!!!!!!!!!!
-
prologos
2014.04.21 04:28
그새 애드온까지 만드셨군요 unloadFile 이용하셨나요?
-
애니즌
2014.04.21 04:30
정말 단순하게 생각해서..필터를 한번더 넣어줬습니다.. 애드온에서 말이죠
굳이 코드로 만들자면
<?php if (!defined('__XE__')) exit(); if($called_position == 'after_module_proc'){ $cur_act = Context::get('act'); if($cur_act != "" && $cur_act != "dispBoardWrite") return; Context::addJsFilter('./addons/category_none/filter', 'insert.xml');; } ?>
다만 이 방법은 추후 저 insert.xml에서 다른 게 추가되거나 변경되면 다시 만들어줘야 하는 불편이 있찌요...
그래도 우선은 가장 간단한 방법이 아닐까 생각됩니다..ㅎㅎ
unloadFile은 뭔가용?!
-
prologos
2014.04.21 04:38
저는 더 무식하게 Context::unloadJsFile()로 기존 js언로드하고 애드온용 js파일을 Context::addJsFile()하신줄 알았죠 ㅎㅎ
-
애니즌
2014.04.21 04:45
호.. 그 방법이 더 좋을까요? +_+
아니면 같을려나...
어차피 둘다 xe 단에서 크나큰 수정이 생긴다면..-_- 흠...
가장 베스트는 해당 스크립트 액션에 직접 관여할 수 있도록.. 하면 좋을텐데 말이죠...
-
애니즌
2014.04.21 04:49
호.. 그 방법이 더 좋을까요? +_+
아니면 같을려나...
어차피 둘다 xe 단에서 크나큰 수정이 생긴다면..-_- 흠...
가장 베스트는 해당 스크립트 액션에 직접 관여할 수 있도록.. 하면 좋을텐데 말이죠...
그래도 그냥 현재 기준으로 배포해봐야겠습니다.ㅎㅎ 나중에 좋은 아이디어 생기면 좋겠네요
-
prologos
2014.04.21 04:52
돌아가면 장땡!!! ㅎㅎㅎㅎㅎ
-
애니즌
2014.04.21 04:54
자료실에 올렸습니다. ㅎㅎ
우선은 잘 돌아가니 흠흠! 문제없겠죠 ! 뭐뭐 !! 흠흠!
-
콩까기
2014.04.21 21:25
애니즌님 진짜 생각하시면 뚝딱만들어내시네요!! 와 좋은애드온 잘쓰겠습니다^^
-
애니즌
2014.04.22 10:23
그냥 꼼수를 발휘한 것 뿐이에용 ㅎㅎ
저는 이팁을 적용해서 글쓸때 맨첫카테고리로 자동지정하게 해놨는데요.. http://www.xpressengine.com/tip/22094528 저도 애니즌님 질문같은 방식이 적용된다면 좋을꺼같아요~