테스트 사이트 - 개발 중인 베타 버전입니다

댓글의 여분필드값을 view페이지에 불러오기 채택완료

핸들링 1년 전 조회 2,060

안녕하세요 혼자 파다가 삽질을 오래한 끝에 안되서 글올립니다.

 

view.skin.php 본문내용을 불러오는 부분에 해당게시글의 모든 댓글의 여분필드값을 불러오고 싶은데요.

 

 

이 부분 한참 위로요.

 

도무지 어떻게 불러와야할지 이래도 저래도 안되서 도움구합니다..ㅜㅜ

 

초보이니 쉽게 설명부탁드려요..ㅠ.ㅠ

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

답변 3개

채택된 답변
+20 포인트
glitter0gim
1년 전

※ 본문 내용을 출력하는 부분에 댓글 작성자의 정보도 함께 불러와 표시하겠다는 것이군요 ?

  - 본문을 읽는 위치에서 해당 게시글에 달린 모든 댓글

  - 각 댓글 작성자에 대한 작성자 이름, 작성 시간 등의 정보를 함께 출력한다느 것인가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

핸들링
1년 전
넵! 맞습니다.
각 댓글의 모든 정보 말고, 댓글의 여분필드에 예를들어 wr_1: XX 가 있다면
댓글이 5개라면 XX, XX, XX, XX, XX 이렇게 불러오고싶은거예요!!
g
glitter0gim
1년 전
/bbs/view.php 수정된 전체 소스[code]
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// glitter start ==================================
$comment_wr_1 = array();
$sql = "SELECT wr_1 FROM {$write_table} WHERE wr_parent = '{$wr_id}' AND wr_is_comment = 1";
$result = sql_query($sql);

while ($row = sql_fetch_array($result)) {
// wr_1 필드 값이 있는 경우 배열에 저장
if ($row['wr_1']) {
$comment_wr_1[] = $row['wr_1'];
}
}
// glitter ===== end ============================

if (function_exists('check_case_exist_title')) check_case_exist_title($write, G5_BBS_DIR, true);

// 게시판에서 두단어 이상 검색 후 검색된 게시물에 코멘트를 남기면 나오던 오류 수정
$sop = strtolower($sop);
if ($sop != 'and' && $sop != 'or')
$sop = 'and';

@include_once($board_skin_path.'/view.head.skin.php');

$sql_search = "";
// 검색이면
if ($sca || $stx || $stx === '0') {
// where 문을 얻음
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
$search_href = get_pretty_url($bo_table,'','&amp;page='.$page.$qstr);
$list_href = get_pretty_url($bo_table);
} else {
$search_href = '';
$list_href = get_pretty_url($bo_table,'',$qstr);
}

if (!$board['bo_use_list_view']) {
if ($sql_search)
$sql_search = " and " . $sql_search;

// 윗글을 얻음
$sql = " select wr_id, wr_subject, wr_datetime 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 (! (isset($prev['wr_id']) && $prev['wr_id'])) {
$sql = " select wr_id, wr_subject, wr_datetime 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, wr_datetime 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 (! (isset($next['wr_id']) && $next['wr_id'])) {
$sql = " select wr_id, wr_subject, wr_datetime 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);
}
}

// 이전글 링크
$prev_href = '';
if (isset($prev['wr_id']) && $prev['wr_id']) {
$prev_wr_subject = get_text(cut_str($prev['wr_subject'], 255));
$prev_href = get_pretty_url($bo_table, $prev['wr_id'], $qstr);
$prev_wr_date = $prev['wr_datetime'];
}

// 다음글 링크
$next_href = '';
if (isset($next['wr_id']) && $next['wr_id']) {
$next_wr_subject = get_text(cut_str($next['wr_subject'], 255));
$next_href = get_pretty_url($bo_table, $next['wr_id'], $qstr);
$next_wr_date = $next['wr_datetime'];
}

// 쓰기 링크
$write_href = '';
if ($member['mb_level'] >= $board['bo_write_level']) {
$write_href = short_url_clean(G5_BBS_URL.'/write.php?bo_table='.$bo_table);
}

// 답변 링크
$reply_href = '';
if ($member['mb_level'] >= $board['bo_reply_level']) {
$reply_href = short_url_clean(G5_BBS_URL.'/write.php?w=r&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.$qstr);
}

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

// 최고, 그룹관리자라면 글 복사, 이동 가능
$copy_href = $move_href = '';
if ($write['wr_reply'] == '' && ($is_admin == 'super' || $is_admin == 'group')) {
$copy_href = G5_BBS_URL.'/move.php?sw=copy&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;
$move_href = G5_BBS_URL.'/move.php?sw=move&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;
}

$scrap_href = '';
$good_href = '';
$nogood_href = '';
if ($is_member) {
// 스크랩 링크
$scrap_href = G5_BBS_URL.'/scrap_popin.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id;

// 추천 링크
if ($board['bo_use_good'])
$good_href = G5_BBS_URL.'/good.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;good=good';

// 비추천 링크
if ($board['bo_use_nogood'])
$nogood_href = G5_BBS_URL.'/good.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;good=nogood';
}

$view = get_view($write, $board, $board_skin_path);

if (strs
[/code] - 수정된 전체 소스 ~~
핸들링
1년 전
감사합니다!!! 정말 큰도움 받았어요!
핸들링
1년 전
저 죄송한데 소스가 짤린것같아요..ㅜㅜ
g
glitter0gim
1년 전
※ 소스가 계속 잘리네요.

/bbs/view.php - Line 3에 추가[code]
// Line 3에 추가
$comment_wr_1 = array();
$sql = "SELECT wr_1 FROM {$write_table} WHERE wr_parent = '{$wr_id}' AND wr_is_comment = 1";
$result = sql_query($sql);

while ($row = sql_fetch_array($result)) {
if ($row['wr_1']) {
$comment_wr_1[] = $row['wr_1'];
}
}
[/code]

/skin/board/{사용중인_스킨}/view.skin.php -여기서는 basic을 기준 한 141 Line에 추가 [code]
<!-- basic-skin을 기준 한 141 Line에 추가 -->
<?php if (!empty($comment_wr_1)) { ?>
<section id="comment_wr_1_fields">
<h2>댓글의 여분 필드 (wr_1)</h2>
<p>
<?php echo implode(', ', $comment_wr_1);
</p>
</section>
<?php } ?>
[/code]
핸들링
1년 전
번거로우실텐데 감사합니다!

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

cuwaaang
1년 전

여분필드는 wr_1 ~ wr_10

$view['wr_1'] 이라던가

댓글이면 view_comment 가서 쿼리 살펴보고 $row['wr_1'] 이라던가

변수명을 보고 출력하면될듯

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

핸들링
1년 전
view.skin.php 에서는 댓글여분필드가 그렇게 불러와지지않더라구요..ㅠ

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

플라이
1년 전

모든 댓글의 여분필드값이라는게 정확히 어떤 의미인지 정확히 알수가 없어서요 댓글을 가져오려면 별도 기능으로 쿼리 구현을 해야 하는 부분이라서요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

핸들링
1년 전
현재 열려있는 뷰페이지에서 달린 모든 댓글의 내용에 여분필드값이요.
그러니까, '사과사실분' 이라는 게시글에 댓글이 3개 달렸다면 그 댓글3개에 있는 여분필드값을 모두 본문에 불러오고 싶다는 말입니다. ㅜㅜ
저도 쿼리로 가져와야할것같아서 이것저것 짜깁기해봤는데 잘 안되네요..

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

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

로그인