목록에서 수정 바로가기 정보
목록에서 수정 바로가기본문
목록에서 게시글 뷰페이지로 넘어가지 않고 수정페이지로 바로가기
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