채택완료

그누보드5 기본 view.skin.php문의 드립니다.

2014-07-17 (목) 16:03:44 7,285

wiew.skin.php

Copy
<!-- 게시물 상단 버튼 시작 { -->    <!-- } 게시물 상단 버튼 끝 -->        <?php        ob_start();         ?>        <?php if ($prev_href || $next_href) { ?>        <ul class="bo_v_nb">            <?php if ($prev_href) { ?><li><a href="<?php echo $prev_href ?>" class="btn_b01">이전글</a></li><?php } ?>            <?php if ($next_href) { ?><li><a href="<?php echo $next_href ?>" class="btn_b01">다음글</a></li><?php } ?>        </ul>        <?php } ?>        <ul class="bo_v_com">            <?php if ($update_href) { ?><li><a href="<?php echo $update_href ?>" class="btn_b01">수정</a></li><?php } ?>            <?php if ($delete_href) { ?><li><a href="<?php echo $delete_href ?>" class="btn_b01" onclick="del(this.href); return false;">삭제</a></li><?php } ?>            <?php if ($copy_href) { ?><li><a href="<?php echo $copy_href ?>" class="btn_admin" onclick="board_move(this.href); return false;">복사</a></li><?php } ?>            <?php if ($move_href) { ?><li><a href="<?php echo $move_href ?>" class="btn_admin" onclick="board_move(this.href); return false;">이동</a></li><?php } ?>            <?php if ($search_href) { ?><li><a href="<?php echo $search_href ?>" class="btn_b01">검색</a></li><?php } ?>            <li><a href="<?php echo $list_href ?>" class="btn_b01">목록</a></li>            <?php if ($reply_href) { ?><li><a href="<?php echo $reply_href ?>" class="btn_b01">답변</a></li><?php } ?>            <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b02">글쓰기</a></li><?php } ?>        </ul>        <?php        $link_buttons = ob_get_contents();        ob_end_flush();         ?>    </div>    <!-- } 게시물 상단 버튼 끝 -->​

버튼 소스 인데요.

게시물 수정버튼이 글쓴이와 관리자계정에만 나오는데

게시물 수정을 2레벨 사용자 이상 누구나 할 수 있게 가능 할까요?

소스 수정 파일 위치가 view.skin.php는 맞나요 ;;?;;;?;;;

슈퍼 초보가 고수님들에게 자문을 구합니다.

|

답변 3개 / 댓글 2개

채택된 답변
+20 포인트
2014-07-17 (목) 16:40:18

/bbs/view.php

수정전

// 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능
if (($member['mb_id'] && ($member['mb_id'] == $write['mb_id'])) || $is_admin) {

수정후

// 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능​

if ($member['mb_level'] >= 2) {

/bbs/write.php

수정전

    if (!$is_admin) {
                if (!($is_member && $member['mb_id'] == $write['mb_id'])) {
            if (sql_password($wr_password) != $write['wr_password']) {
                alert('비밀번호가 틀립니다.');​

수정후

    if (!$is_admin) {
                if (!($member[mb_level] >= 2)) {
            if (sql_password($wr_password) != $write['wr_password']) {
                alert('비밀번호가 틀립니다.');​

/bbs/write_update.php

수정전

    } else if ($member['mb_id']) {
            if ($member['mb_id'] != $write['mb_id'])
            alert('자신의 글이 아니므로 수정할 수 없습니다.', $return_url);​

수정후

    } else if ($member['mb_id']) {
            if (!$member[mb_level] >= 2)
            alert('자신의 글이 아니므로 수정할 수 없습니다.', $return_url);​

이렇게 하시면 됩니다 

답변에 대한 댓글 1개

안침안개님 안녕하세요

하라는데로 하니 됩니다 ! ^&^

감사합니다!! 많이 배우게 되네요.
2014-07-17 (목) 17:05:49

제가 테스트 해 보지않고 이런 부분을 수정하면 되겠다고 대충 생각해서 적은 내용입니다.

밑에 아침안개님이 적으신 내용중에 비밀번호 오류와 관련된 부분이 있네요. 아침안개님이 적으신 글도 참고해서 수정해 주시면 될 것 같습니다. 

2014-07-17 (목) 16:22:12

스킨이 아니라 /bbs/view.php 파일과 write_update파일을 같이 수정해 주셔야 합니다.

/bbs/view.php 70라인 

Copy
// 수정, 삭제 링크$update_href = $delete_href = '';// 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능if (($member['mb_id'] && ($member['mb_id'] == $write['mb_id'])) || $is_admin) {    $update_href = './write.php?w=u&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;    $delete_href = './delete.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.urldecode($qstr);    if ($is_admin)    {        set_session("ss_delete_token", $token = uniqid(time()));        $delete_href ='./delete.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;token='.$token.'&amp;page='.$page.urldecode($qstr);    }}

/bbs/write_update.php

Copy
103라인    // 김선용 1.00 : 글쓰기 권한과 수정은 별도로 처리되어야 함    if($w =='u' && $member['mb_id'] && $wr['mb_id'] == $member['mb_id']) {        ;    } else if ($member['mb_level'] < $board['bo_write_level']) {        alert('글을 쓸 권한이 없습니다.');    }    // 외부에서 글을 등록할 수 있는 버그가 존재하므로 공지는 관리자만 등록이 가능해야 함    if (!$is_admin && $notice) {        alert('관리자만 공지할 수 있습니다.');    }
 

위의 두 부분인데요. 첫번째 소스에서

if (($member['mb_id'] && ($member['mb_id'] == $write['mb_id'])) || $is_admin) {

->if (($member['mb_id'] && ($member['mb_level'] >=2) || $is_admin) { 으로 수정

두번째 소스에서

if($w =='u' && $member['mb_id'] && $wr['mb_id'] == $member['mb_id']) {

-> if($w =='u' && $member['mb_id']) {

수정해 주시면 될 겁니다.

그러나 위 두부분은 그누보드 전체에 걸쳐서 영향을끼치는 구문으로 다른 모든 게시판도 영향을 받아 꼬일 수 있습니다. 이부분은 참고해주세요 

답변에 대한 댓글 1개

감사합니다 아름다운수님.

주신소스로 테스트 해봣는데

(비밀번호가 틀립니다.) 하면서 수정이 안되는데

추가로 수정해야될 부분이 있나요?

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