동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.
view.php는 단독으로 사용되는 화일이 아닙니다.
board.php에서 게시판 글내용을 볼 때 php에서 include하여 사용하는 파일입니다.
위치 : /bbs
글 내용을 불러올 때 글에 대한 권한 및 조건 등은 board.php화일에서 이미 체크를 한 상태입니다.
view.php는 실제적으로 글 내용을 보여주는 것에 집중되고 있습니다.
1. get_view()함수
글 아이디를 따른 글 내용을 볼 때 사용하는 함수는 /lib/common.lib.php 안에 있는 get_view()입니다.
이 함수는 get_list()함수를 이용합니다.
function get_view($write_row, $board, $skin_url)
{
return get_list($write_row, $board, $skin_url, 255);
}
2. 이전글/다음 글 얻기
if ($sql_search)
$sql_search = " and " . $sql_search;
// 윗글을 얻음
$sql = " select wr_id, wr_subject from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply < '{$write['wr_reply']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
$prev = sql_fetch($sql);
// 위의 쿼리문으로 값을 얻지 못했다면
if (!$prev['wr_id']) {
$sql = " select wr_id, wr_subject from {$write_table} where wr_is_comment = 0 and wr_num < '{$write['wr_num']}' {$sql_search} order by wr_num desc, wr_reply desc limit 1 ";
$prev = sql_fetch($sql);
}
// 아래글을 얻음
$sql = " select wr_id, wr_subject from {$write_table} where wr_is_comment = 0 and wr_num = '{$write['wr_num']}' and wr_reply > '{$write['wr_reply']}' {$sql_search} order by wr_num, wr_reply limit 1 ";
$next = sql_fetch($sql);
// 위의 쿼리문으로 값을 얻지 못했다면
if (!$next['wr_id']) {
$sql = " select wr_id, wr_subject from {$write_table} where wr_is_comment = 0 and wr_num > '{$write['wr_num']}' {$sql_search} order by wr_num, wr_reply limit 1 ";
$next = sql_fetch($sql);
}
3. 버튼 링크 (이전글, 다음글, 쓰기, 답변, 수정, 삭제,...)
// 이전글 링크
$prev_href = '';
if (isset($prev['wr_id']) && $prev['wr_id']) {
$prev_wr_subject = get_text(cut_str($prev['wr_subject'], 255));
$prev_href = './board.php?bo_table='.$bo_table.'&wr_id='.$prev['wr_id'].$qstr;
}
// 다음글 링크
$next_href = '';
if (isset($next['wr_id']) && $next['wr_id']) {
$next_wr_subject = get_text(cut_str($next['wr_subject'], 255));
$next_href = './board.php?bo_table='.$bo_table.'&wr_id='.$next['wr_id'].$qstr;
}
// 쓰기 링크
$write_href = '';
if ($member['mb_level'] >= $board['bo_write_level'])
$write_href = './write.php?bo_table='.$bo_table;
// 답변 링크
$reply_href = '';
if ($member['mb_level'] >= $board['bo_reply_level'])
$reply_href = './write.php?w=r&bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr;
// 수정, 삭제 링크
$update_href = $delete_href = '';
// 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능
if (($member['mb_id'] && ($member['mb_id'] == $write['mb_id'])) || $is_admin) {
$update_href = './write.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;
set_session('ss_delete_token', $token = uniqid(time()));
$delete_href ='./delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&token='.$token.'&page='.$page.urldecode($qstr);
}
else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면
$update_href = './password.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;
$delete_href = './password.php?w=d&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;
}
// 최고, 그룹관리자라면 글 복사, 이동 가능
$copy_href = $move_href = '';
if ($write['wr_reply'] == '' && ($is_admin == 'super' || $is_admin == 'group')) {
$copy_href = './move.php?sw=copy&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;
$move_href = './move.php?sw=move&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;
}
$scrap_href = '';
$good_href = '';
$nogood_href = '';
if ($is_member) {
// 스크랩 링크
$scrap_href = './scrap_popin.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
// 추천 링크
if ($board['bo_use_good'])
$good_href = './good.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&good=good';
// 비추천 링크
if ($board['bo_use_nogood'])
$nogood_href = './good.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&good=nogood';
}
4. 글 보기 스킨 화일 포함하기
include_once($board_skin_path.'/view.skin.php');
등록된 댓글이 없습니다.