r

관리자 글쓰기시 공지 카테고리 문제 (2)

· 2013-05-22 (수) 17:53:12 · 1637 · 6
http://sir.co.kr/bbs/board.php?bo_table=g4s_bug&wr_id=724&page=2

답변 주셔서 감사합니다. 다시한번 건의 드리고 싶습니다.


해당 스크린샷에는 게시판 분류 설정에 공지가 있을때 입니다.

하지만 게시판 분류 설정에 공지 분류가 없을때가 문제 입니다.


즉,

현재는

1. 게시판 분류 설정에 공지를 넣으면

스샷처럼 글쓰기시 분류선택에 공지가 두번 나오고,


2. 게시판 분류 설정에 공지를 넣지 않으면

글 수정시 공지선택이 자동으로 안됩니다.


3. 만약에 공지를 분류에 넣게 되면, 일반 사용자도 누구나 공지 라는 분류를 쓸 수 있게 됩니다.

이 세가지 어색한 사항을 피하려면,


공지를 분류에 넣지 않고도 관리자는 공지를 쓸수 있으며,

글 수정시에도 공지일 경우 자동으로 공지를 불러오면 됩니다.



글쓰기시 게시판 분류설정에 공지가 있건 없건 무조건 관리자는 글쓰기시 '공지' 분류를 사용할 수 있게 되어있는것 처럼,

글 수 정시에도 관리자일 경우에만 (게시판 분류설정에 공지가 있건 없건) 이전 쓴 글의 분류가 '공지' 인지 먼저 체크 해서 '공지' 라면 공지로 불러오는 부분이 들어가면 해결 될 것 같습니다.
|

댓글 6개

별거 아닌 작은 것일수 있지만.. 엄청난 g4s의 잠재력이 작은 티끌 하나로 지적받지 않게 하고 싶습니다~
2013-05-22 (수) 23:18:22
분류가 공지가 포함되지 않은 상태에서 관리자가 공지를 작성하고 수정시 공지가 선택된 상태로 나오지 않는 원인은
lib->common.lib.php 파일의 817번째줄
function get_category_option($bo_table='', $ca_name='')함수에 있습니다.
입력된 내용(ca_name)과 분류항목을 비교하여 동일하였을때 옵션항목에 "selected" 속성을 주는데
"공지"는 분류항목에 없기때문에 문제가 발생한것입니다.
common.lib.php 파일 내에서는 $is_admin 변수에 값이 할당되지 않아 처리할수 없어서 아래와 같이 수정해 보았습니다.
전문적으로 이런 작업을 하는 사람이 아니라 허접합니다만...
아쉬운데로 사용은 가능하실겁니다.


skin->board->basic->write.skin.php 에서 몇군데 수정해 주면 님이 원하시는대로 될거 같은데요..

156번째줄의 아래 내용들을 삭제
<?php
// 관리자라면 분류 선택에 '공지' 옵션을 추가함
if ($is_admin)
{
echo '
if (ca_name_select = document.getElementById("ca_name")) {
ca_name_select.options.length += 1;
ca_name_select.options[ca_name_select.options.length-1].value = "공지";
ca_name_select.options[ca_name_select.options.length-1].text = "공지";
}';
}
?>

94번째줄의 아래 내용을
<select name="ca_name" id="ca_name" required class="required" >
<option value="">선택하세요</option>
<?php echo $category_option ?>
</select>


아래와 같이 변경

<?php
if ($is_admin)
{
if ($ca_name=="공지"){
$category_option=$category_option.'<option value="공지" selected="selected">공지</option>';
}else{
$category_option=$category_option.'<option value="공지">공지</option>';
}
?>

<select name="ca_name" id="ca_name" required class="required" >
<option value="">선택하세요</option>
<?php echo $category_option ?>
</select>

<?php } else { ?>
<select name="ca_name" id="ca_name" required class="required" >
<option value="">선택하세요</option>
<?php echo $category_option ?>
</select>
<?php } ?>

/////////////////////////////////////////////////////////////////
2013-05-28 (화) 08:21:48
아래 방법으로 해 보았습니다.


// 분류 옵션을 얻음
// 4.00 에서는 카테고리 테이블을 없애고 보드테이블에 있는 내용으로 대체
function get_category_option($bo_table='', $ca_name='')
{
global $g4, $board;

$categories = explode("|", $board['bo_category_list']); // 구분자가 , 로 되어 있음
$str = "";
for ($i=0; $i<count($categories); $i++) {
$category = trim($categories[$i]);
if (!$category) continue;

$str .= "<option value="$categories[$i]"";
if ($category == $ca_name) {
$str .= ' selected="selected"';
}
$str .= ">$categories[$i]</option>n";
}

return $str;
}


write.skin.php 하단 스크립트 부분
관리자라면 분류 선택에 '공지' 옵션을 추가함 삭제 또는 주석 처리하시고

commom.lib.php
815 행의 위 코드를 아래 코드로 변경하시면 전체 게시판에 적용됩니다.


function get_category_option($bo_table='', $ca_name='')
{

global $g4, $is_admin, $board;

$tmp_category = $board['bo_category_list']."|공지";
if ($is_admin)
$categories = explode("|", $tmp_category);
else
$categories = explode("|", $board['bo_category_list']); // 구분자가 , 로 되어 있음

$str = "";
for ($i=0; $i<count($categories); $i++) {
$category = trim($categories[$i]);
if (!$category) continue;

$str .= "<option value="$categories[$i]"";
if ($category == $ca_name) {
$str .= ' selected="selected"';
}
$str .= ">$categories[$i]</option>n";
}

return $str;
}
두분의 의견과 코드에감사드립니다! 개선사항이 다음 버젼에 포함되면 좋겠습니다!
문제를 파악하지 못했었습니다. 지금 확인하여 정현아빠님이 알려주신대로 처리했습니다.
감사합니다.
감사합니다 ㅠㅠ 반영되었네요!
댓글을 작성하시려면 로그인이 필요합니다.

버그신고

4,191건

  문의게시판을 이용해 주세요 :) https://sir.kr/co_qa  

+
분류 제목 글쓴이 날짜
13-06-03
13-06-03
13-06-03
13-06-02
13-06-02
13-05-29
13-05-29
13-05-27
13-05-24
13-05-24
13-05-23
13-05-23
13-05-23
13-05-22
13-05-22
13-05-22
13-05-22
13-05-22
13-05-21
13-05-21