목록에서 수정 바로가기 > 그누보드5 팁자료실

그누보드5 팁자료실

목록에서 수정 바로가기 정보

목록에서 수정 바로가기

본문

목록에서 게시글 뷰페이지로 넘어가지 않고 수정페이지로 바로가기

 

commom.lib.php에서 아래 함수에 전역변수와 수정 링크 코드 추가

 

// 게시물 정보($write_row)를 출력하기 위하여 $list로 가공된 정보를 복사 및 가공
function get_list($write_row, $board, $skin_url, $subject_len=40)
{
    global $g5, $config, $g5_object;
    global $qstr, $page, $is_admin;

 

 

...

 

    // 분류명 링크
    $list['ca_name_href'] = get_pretty_url($board['bo_table'], '', 'sca='.urlencode($list['ca_name']));

    $list['href'] = get_pretty_url($board['bo_table'], $list['wr_id'], $qstr);
    $list['comment_href'] = $list['href'];

 

    // 수정(삭제 링크)
    $list['update_href'] = '';
    //$delete_href = ''; delete는 view페이지에서 토큰값을 받아야 가능하다
    // 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능

    if (($member['mb_id'] && ($member['mb_id'] === $write['mb_id'])) || $is_admin) {
        $list['update_href'] =     short_url_clean(G5_BBS_URL.'/write.php?w=u&bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'&page='.$page.$qstr);
        set_session('ss_delete_token', $token = uniqid(time()));
        //$delete_href =     G5_BBS_URL.'/delete.php?bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'&token='.$token.'&page='.$page.urldecode($qstr);
    }
    else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면
        $list['update_href'] = G5_BBS_URL.'/password.php?w=u&bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'&page='.$page.$qstr;
        //$delete_href = G5_BBS_URL.'/password.php?w=d&bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'&page='.$page.$qstr;
    }

 

 

 

리스트에서 사용 방법

 

<a href="<?php echo $list[$i]['href'] ?>">

대신

<a href="<?php echo $list[$i]['update_href'] ?>">

를 사용

 

 

 

글 수정 후 view페이지로 이동하지 않고 리스트로 이동하는 방법

 

위 링크에서 no_view=y 파라미터를 추가한다.

(추가하는 것이 어렵거나 귀찮은 경우 아래 코드를 복사하여 통째로 추가하면 됨)

    // 수정(삭제 링크)
    $list['update_href'] = '';
    //$delete_href = ''; delete는 view페이지에서 토큰값을 받아야 가능하다
    // 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능

    if (($member['mb_id'] && ($member['mb_id'] === $write['mb_id'])) || $is_admin) {
        $list['update_href'] =     short_url_clean(G5_BBS_URL.'/write.php?w=u&bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'
&no_view=y&page='.$page.$qstr);
        set_session('ss_delete_token', $token = uniqid(time()));
        //$delete_href =     G5_BBS_URL.'/delete.php?bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'&token='.$token.'&page='.$page.urldecode($qstr);
    }
    else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면
        $list['update_href'] = G5_BBS_URL.'/password.php?w=u&bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'
&no_view=y&page='.$page.$qstr;
        //$delete_href = G5_BBS_URL.'/password.php?w=d&bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'&page='.$page.$qstr;
    }

 

view.skin.php 에서 form 아래 hidden값 추가

 

    <input type="hidden" name="no_view" value="<?php echo $no_view ?>">

 

write_update.php 하단에서 분기 설정

 

// 사용자 코드 실행
@include_once($board_skin_path.'/write_update.skin.php');
@include_once($board_skin_path.'/write_update.tail.skin.php');

delete_cache_latest($bo_table);


if($no_view=='y'){
    $redirect_url = run_replace('write_update_move_url', short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.$qstr), $board, $wr_id, $w, $qstr, $file_upload_msg);
}else{
    $redirect_url = run_replace('write_update_move_url', short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr), $board, $wr_id, $w, $qstr, $file_upload_msg);
}

 

※버그 테스트 하지 않음
-수정하시는 분 께서는 댓글로 달아주세요.

 

위 코드 적용 후 관리자 로그인 후 뷰페이지에서 글 삭제가 되지 않는 경우 

set_session('ss_delete_token', $token = uniqid(time()));

코드를 주석처리 해보시기 바랍니다. (정확한 전후 상황 판단 없이 적어놓습니다.)

추천
8

댓글 6개

전체 2,429 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT