테스트 사이트 - 개발 중인 베타 버전입니다

관리자만 분류사용하기에서... 채택완료

호텔천사 3년 전 조회 2,089

안녕하세요.

 

쓴 글에 대해 관리자가 분류를 선택해서 지정하는 게시판 입니다.

그래서 일반 유저는 글쓰기 할때 분류를 선택할 이유가 없어서

관리자만 쓴 글에 대해 분류를 해주려고 이곳 Q&A 게시판에서 소스를 보고 수정은 했습니다.

그런데...

비 회원이 글을쓰면

"분류를 선택하세요"라고 나옵니다.

 

해결 방법이 있을까요?

 

참고 사이트

https://url.kr/bbs/board.php?bo_table=cL2an_si72_x76x

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
3년 전

게시판을 보니 글을 쓰면 신청으로 가야 할거 같은데 글쓰기이고 관리자가 아니면 분류 기본값을 신청으로 주시면 될거 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

호텔천사
3년 전
소중한 의견 감사합니다.

오늘 수정 하기 전까지는
글쓰는 사람이 카테고리에서 [신청]을 선택 후
관리자가 [완료] 로 변경 했었습니다.

그런데 생각해보니 글쓰는 사람은 당연히 모두 신청하는 것이니 이 단계를 빼고
관리자가 신청한 것을 [완료] / [거절] 이렇게 선택해서 업데이트 하기로 했습니다.

그래서
1) 카테고리 사용으로 체크
2) 관리자만 카테고리 기능 사용하기

이렇게 하고 싶어서 아래 팁을 이용해서 적용했습니다.
https://sir.kr/qa/169959

그런데 문제는 비회원이 글을쓸때 카테고리를 선택해 주세라고 나오는 상황입니다.
호텔천사
3년 전
의견 감사합니다. 해결 했습니다.

아래에서 "대기" 를 제 사이트 분류 값에 맞게 수정 했어야 하는데 수정을 안해서 생긴 문제 였습니다.

<!-- 신규 입력시 기본 분류값 대기 입력 -->
<input type="hidden" name="ca_name" id="ca_name" value="대기">

댓글을 작성하려면 로그인이 필요합니다.

목선웅
3년 전

bbs/write_update.php 파일에서 16행에 걸리시는 것 같습니다.

</p>

<p>if($board['bo_use_category']) {</p>

<p>$ca_name = isset($_POST['ca_name']) ? trim($_POST['ca_name']) : '';</p>

<p>if(!$ca_name) {</p>

<p>$msg[] = '<strong>분류</strong>를 선택하세요.';</p>

<p>} else {</p>

<p>$categories = array_map('trim', explode("|", $board['bo_category_list'].($is_admin ? '|공지' : '')));</p>

<p>if(!empty($categories) && !in_array($ca_name, $categories))</p>

<p>$msg[] = '분류를 올바르게 입력하세요.';</p>

<p>if($board['bo_use_category']) {</p>

<p>$ca_name = isset($_POST['ca_name']) ? trim($_POST['ca_name']) : '';</p>

<p>if(!$ca_name) {</p>

<p>$msg[] = '<strong>분류</strong>를 선택하세요.';</p>

<p>} else {</p>

<p>$categories = array_map('trim', explode("|", $board['bo_category_list'].($is_admin ? '|공지' : '')));</p>

<p>if(!empty($categories) && !in_array($ca_name, $categories))</p>

<p>$msg[] = '분류를 올바르게 입력하세요.';</p>

<p> </p>

<p>if(empty($categories))</p>

<p>$ca_name = '';</p>

<p>}</p>

<p>} else {</p>

<p>$ca_name = '';</p>

<p>}</p>

<p>

게시판 설정이 카테고리 사용일 경우 카테고리값을 가지고 들어오지 않으면 거르는 부분인데요.
 

제가 알기로 게시판 설정에서 카테고리 사용을 체크하지 않아도 폼에서 전송된 값이 있으면 저장되는 걸로 알고 있어요.

지금 확인해볼수는 없지만 위 내용이 맞다면, 게시판 설정에서 카테고리 사용을 체크해제 하시고

게시판 글쓰기 스킨 파일에서 <input type="hidden" name="ca_name" value="카테고리기본값"> 으로 해놓으시면 되지 않을까 싶네요.  그리고 관리자일 경우에는 카테고리를 수동으로 가져와서 변경해서 사용할 수 있도록 변경하면 되지 않을까 싶습니다.

 

</p>

<p><?php</p>

<p>if ($is_admin) {</p>

<p>$ca_name = "";</p>

<p>if (isset($write['ca_name']))</p>

<p>$ca_name = $write['ca_name'];</p>

<p>$category_option = get_category_option($bo_table, $ca_name);</p>

<p>?></p>

<p><div class="bo_w_select write_div"></p>

<p><label for="ca_name" class="sound_only">분류<strong>필수</strong></label></p>

<p><select name="ca_name" id="ca_name" required></p>

<p><option value="">분류를 선택하세요</option></p>

<p><?php echo $category_option ?></p>

<p></select></p>

<p></div></p>

<p><?php } else { ?></p>

<p><input type="hidden" name="ca_name" value="기본값"></p>

<p><?php } ?></p>

<p>

이런식으로요 ㅎㅎ 파이팅

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

호텔천사
3년 전
다른 방식으로 접근이네요. 좋은 팁 감사합니다. 팁 게시판에 올려보시는건 어떠세요?
목선웅
3년 전
특수한 상황에서만 쓰일거라...ㅎㅎ 애매합니다 테스트도 안해봤구요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인