[G4] 코멘트에 필드 추가하기 정보
[G4] 코멘트에 필드 추가하기본문
제가 며칠동안 씨름하다가 겨우 해결해낸 허접팁입니다. 초보님들 잘 활용하시기 바랍니다^^; 밑에 설명을 해놓겠지만 아직 허점이 많은 팁입니다. 다만 코멘트에 필드를 추가하는 방법만 이 팁을 통해 알기만 해도 되겠습니다. (물론 초보님들^^;;)
코멘트에 글 외에 다양한 기능을 추가하기 위한 팁입니다. 예를 들면 평점을 매긴다거나 간이쇼핑몰에서 입금은행명, 주문량 등 말이죠. 아래소스를 전부 복사하여 view_comment.skin.php로 저장하면 됩니다. (이 소스는 간이쇼핑몰 게시판의 코멘트를 주문신청 기능으로 활용한 경우입니다) 그리고 bbs/write_comment_update.php를 수정해야 하는데 그건 아래 소스 다음에 올리겠습니다.
<?
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
<table width=100%><tr>
<td>
<img src=http://www.prsae.com/p7/skin/board/test_shop/img/shop_w.jpg border=0>
<td><font color=#cc6666><ul>
<li>로그인 하시면 주문가능합니다.
<li>개인정보보보호 차원에서 주문하신 내용은<br>
<u><b>제품등록자</b>와 <b>주문자</b>에게만</u> 공개됩니다.
</table>
<? if ($is_comment_write) { ?>
<!-- 코멘트 쓰기 -->
<table width=100% cellpadding=0 cellspacing=0 border=0 bgcolor=#F5F5F5>
<form name="fboardviewcomment" method="post" action="javascript:fboardviewcomment_check(document.fboardviewcomment);" autocomplete="off">
<input type=hidden name=w value="c">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=wr_id value="<?=$wr_id?>">
<input type=hidden name=sfl value="<?=$sfl?>" >
<input type=hidden name=stx value="<?=$stx?>">
<input type=hidden name=spt value="<?=$spt?>">
<input type=hidden name=page value="<?=$page?>">
<input type=hidden name=cwin value="<?=$cwin?>">
<input type=hidden name=wr_2 value="<?=$wr_2?>">
<input type=hidden name=wr_3 value="<?=$wr_3?>">
<input type=hidden name=wr_4 value="<?=$wr_4?>">
<input type=hidden name=wr_5 value="<?=$wr_5?>">
<input type=hidden name=wr_6 value="<?=$wr_6?>">
<input type=hidden name=wr_7 value="<?=$wr_7?>">
<input type=hidden name=wr_8 value="<?=$wr_8?>">
<tr>
<td align=center>
<table width=100% cellpadding=0 cellspacing=0 bgcolor=#FFFFFF border=0>
<tr>
<td colspan=2 align=center>
<table width=100% cellpadding=0 cellspacing=0>
<tr><td>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#cccccc width=100%>
<tr bgcolor=#ffffff>
<td width=65 bgcolor=#e5e4e4 align=center>입금자명<FONT COLOR="#FF0000">*</FONT></td>
<td align=center>
<input name='wr_2' type=text class='input' style=width:90% maxlength="292" required itemname='입금자명'></td>
<td width=60 bgcolor=#e5e4e4 align=center>은행명<FONT COLOR="#FF0000">*</FONT></td>
<td width=88 align=center>
<select name='wr_3' class="box" size="1">
<option value='국민'>국민</option>
<option value='농협'>농협</option>
<option value='조흥'>조흥</option>
</select>
<td width=60 bgcolor=#e5e4e4 align=right>주문수량<FONT COLOR="#FF0000">*</FONT></td>
<td width=88 align=center>
<select name='wr_4' class="box" size="1">
<option value='1'>1개</option>
<option value='2'>2개</option>
<option value='3'>3개</option>
<option value='4'>4개</option>
<option value='5'>5개</option>
<option value='6'>6개</option>
<option value='7'>7개</option>
<option value='8'>8개</option>
<option value='9'>9개</option>
<option value='10'>10개</option>
</select></td>
</tr>
</table>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#cccccc width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=80 align=center>연락처1<FONT COLOR="#FF0000">*</FONT></td>
<td width=200 align=center>
<input name='wr_5' type=text class='input' style=width:90% maxlength="292" required itemname='연락처1'>
</td>
<td bgcolor=#e5e4e4 width=80 align=center>연락처2<FONT COLOR="#FF0000">*</FONT></td>
<td width=200 align=center>
<input name='wr_6' type=text class='input' style=width:90% maxlength="292" required itemname='연락처2'>
</td>
</tr></table>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#cccccc width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=80 align=center>배달지역<FONT COLOR="#FF0000">*</FONT></td>
<td width=107>
<select name='wr_7' class="box" size="1">
<option value='김해시'>김해시</option>
<option value='서울특별시'>서울특별시</option>
<option value='부산광역시'>부산광역시</option>
<option value='인천광역시'>인천광역시</option>
<option value='대구광역시'>대구광역시</option>
<option value='광주광역시'>광주광역시</option>
<option value='대전광역시'>대전광역시</option>
<option value='울산광역시'>울산광역시</option>
<option value='경기도'>경기도</option>
<option value='강원도'>강원도</option>
<option value='충청북도'>충청북도</option>
<option value='충청남도'>충청남도</option>
<option value='전라북도'>전라북도</option>
<option value='전라남도'>전라남도</option>
<option value='경상북도'>경상북도</option>
<option value='경상남도'>경상남도</option>
<option value='제주시'>제주시</option>
</select>
</td>
<td width=80 bgcolor=#e5e4e4 align=center>상세주소<FONT COLOR="#FF0000">*</FONT></td>
<td align=center>
<input type=text name='wr_8' required itemname='상세주소' class='input' size=35></td>
</tr>
</table>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#EFEFEF width=100%>
<tr><td>상세내용<FONT COLOR="#FF0000">*</FONT></td></tr>
<tr><td>
<textarea name=wr_content style='border: 1px solid #C2C2C2; word-break:break-all; width:100%;' rows=5 required
itemname='내용' onclick="if(this.value==this.defaultValue){this.value=''}"
onblur="if (this.value == '') { this.value = this.defaultValue; }">주문합니다^^</textarea></td></tr>
</td><td width=64></td></tr>
<tr><td colspan=2 height=5></td></tr>
</table>
</td>
</tr>
</table>
<INPUT type="image" width="80" height="25" src="<?=$board_skin_path?>/img/ok_button.gif" border=0>
</td>
</tr>
</form>
</table></td></tr></table><br>
<!-- 코멘트 입력 테이블 끝 -->
<!-- 코멘트 리스트 -->
<? for ($i=0; $i<count($list); $i++) { ?>
<? if ($list[$i][is_edit]) { // 각 코멘트를 각 코멘트등록자만 볼 수 있게 하기 위한 꼼수 ?>
<? if ($list[$i][is_del]) { // 각 코멘트를 각 코멘트등록자만 볼 수 있게 하기 위한 꼼수 ?>
<br>
<?
if($member[mb_id] == $list[$i][mb_id] || $write[mb_id] == $member[mb_id] || $is_admin == 'default') //등록자 목록
{?>
<table width=100% border=0 align=center cellpadding=1 cellspacing=0 bgcolor=#d5d4d4>
<tr>
<td height=25> <?=$list[$i][name]?> (<?=$list[$i][ip]?>) </td>
<td align=right><?=$list[$i][datetime]?>
<a href="javascript:comment_delete('<?=$list[$i][del_link]?>');"><b><font color=orange>[삭제]</a>
</tr>
<tr>
<td colspan=2 valign=top>
<table width=100% cellpadding=0 cellspacing=0>
<tr><td style='word-break:break-all; text-align:justify;' class='lh tt'>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>입금자명</td>
<td align=center><?=$list[$i][wr_2]?></td>
<td bgcolor=#e5e4e4 width=60 align=center>은행명</td>
<td align=center><?=$list[$i][wr_3]?></td>
<td bgcolor=#e5e4e4 width=60 align=center>주문수량</td>
<td align=center><?=$list[$i][wr_4]?></td>
</tr>
<tr bgcolor=#d5d4d4><td height=1 colspan=10>
</table>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>연락처1</td>
<td align=center><?=$list[$i][wr_5]?></td>
<td bgcolor=#e5e4e4 width=60 align=center>연락처2</td>
<td align=center><?=$list[$i][wr_6]?></td>
</tr>
<tr bgcolor=#d5d4d4><td height=1 colspan=10>
</table>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>배달지역</td>
<td><?=$list[$i][wr_7]?> <?=$list[$i][wr_8]?></td>
</tr>
<tr bgcolor=#d5d4d4><td height=1 colspan=10>
</table>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>상세내용</td>
<td> <?=$list[$i][content]?></td>
</tr>
</table>
</td></tr></table>
</td></tr></table>
<? } ?>
<? }} ?>
<? } ?>
<?
function getURL2(){
$server=getenv("SERVER_NAME");
$file=getenv("SCRIPT_NAME");
$query=getenv("QUERY_STRING");
$url="http://$server$file";
if($query) $url.="?$query";
return $url;
}
$url_p = getURL2();
if (preg_match("/cwin=1/i", $url_p, $matches)) {
echo "
<center><br>
<input type=button value=' 창닫기 ' onclick='self.close();'
style=font-family:돋움;font-size:8pt;height:18px;>
</center>
<br>
"; } else {}?>
<script language="JavaScript">
function fcomment_submit(f)
{
var s = word_filter_check(f.wr_content.value);
if (s) {
alert("내용에 금지단어("+s+")가 포함되어있습니다");
return;
}
//f.btn_comment_submit.disabled = true;
f.action = "./write_comment_update.php";
f.submit();
}
</script>
<!-- 코멘트 리스트 -->
<script language='JavaScript'>
function fboardviewcomment_check(f)
{
var s;
if (s = word_filter_check(f.wr_content.value)) {
alert("내용에 금지단어('"+s+"')가 포함되어있습니다");
f.wr_content.focus();
return;
}
if (typeof(f.wr_key) != "undefined") {
if (hex_md5(f.wr_key.value) != md5_norobot_key) {
alert("자동등록방지용 빨간글자가 순서대로 입력되지 않았습니다.");
f.wr_key.focus();
return;
}
}
//document.getElementById("btn_submit").disabled = true;
f.action = "./write_comment_update.php";
f.submit();
}
function comment_edit(wr_id)
{
var cmnt_edit = wr_id + "_edit";
var cmnt_disp = document.getElementById(wr_id).style.display;
if (cmnt_disp == "none") {
document.getElementById(wr_id).style.display = "";
document.getElementById(cmnt_edit).style.display = "none";
} else {
document.getElementById(wr_id).style.display = "none";
document.getElementById(cmnt_edit).style.display = "";
}
}
function comment_delete(url)
{
if (confirm("이 코멘트를 삭제하시겠습니까?")) location.href = url;
}
</script>
<? } // if ($is_comment_write) ?>
여기까지. 보시면 아시다시피 wr_2, wr_3 등을 필드로 추가하였죠. 일단 view_comment.skin.php로 저장하시고 이젠 bbs/write_comment_update.php를 아래와 같이 수정합니다. 대략 45번째줄에 가면
if ($w == "c") { // 코멘트 입력
$sql = " insert into $write_table
set ca_name = '$wr[ca_name]',
wr_option = '',
wr_num = '$wr[wr_num]',
wr_reply = '',
wr_parent = '$wr_id',
wr_comment = -1,
wr_content = '$wr_content',
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
이런 구절이 있습니다. 여기에 wr_1, wr_2....를 추가해주면 됩니다. 아래처럼입니다.
if ($w == "c") { // 코멘트 입력
$sql = " insert into $write_table
set ca_name = '$wr[ca_name]',
wr_option = '',
wr_num = '$wr[wr_num]',
wr_reply = '',
wr_parent = '$wr_id',
wr_comment = -1,
wr_content = '$wr_content',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10',
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
사실 제가 추가한 건 wr_2부터 wr_8까지인데 그냥 1부터 10까지 다 넣었습니다. wr_1은 다른 기능으로 쓰고 있는 경우가 많아서요^^;
그리고 이 팁은 현재 간이쇼핑몰 스킨의 코멘트로 쓰고 있기 때문에 자신의 코멘트는 작성자(주문자)만 볼 수 있게 되어 있습니다. 사실 이걸 해결하려고 며칠을 고민하다가 그누에 이미 있는 기능을 이용해서 꼼수를 부렸습니다. 자신의 코멘트에만 수정/삭제 링크가 보이게 하는 소스 있죠? 그걸 view_comment.skin.php 전체에 적용해버렸습니다. ^^;;; 그래서 이 코멘트 기능을 이용하시려면 본문글을 관리자만 다는 게시판에서만 쓸 수 있습니다. 물론 다른 분들도 본문등록이 가능하게는 되지만 누군가 코멘트를 올려도 관리자와 코멘트 등록자 외에는 볼 수 없기 때문에 의미가 없어서입니다.
때문에 전체회원들에게 공개하시려면 그걸 푸시고 원래대로 수정/삭제 링크에만 다시 씌우면 됩니다. 고수님들은 말만 들어도 아실 테지만 초보님들은 좀 이해가 안되시죠^^;;; 그냥 베이직 스킨의 view_comment.skin.php에서 수정/삭제 링크를 찾아서 이 스킨과 잘 비교해보시면 그리 어렵지 않을 겁니다. 꽤 공부도 되실 겁니다^^;;
앞에서 말씀드린대로 여러가지로 보완할 점이 많습니다. 코멘트를 좀 더 다양하게 응용하실 초보분들에게 도움이 되었으면 하는 마음에 올리는 팁입니다. 그리고 관련 스킨을 G4스킨방에 올렸습니다. ( http://www.sir.co.kr/?doc=bbs/gnuboard.php&bo_table=g4_skin&sselect=&stext=&spart=&wr_id=425&page=1#c430&page=1 )
G4의 무궁한 발전을 위하여!
코멘트에 글 외에 다양한 기능을 추가하기 위한 팁입니다. 예를 들면 평점을 매긴다거나 간이쇼핑몰에서 입금은행명, 주문량 등 말이죠. 아래소스를 전부 복사하여 view_comment.skin.php로 저장하면 됩니다. (이 소스는 간이쇼핑몰 게시판의 코멘트를 주문신청 기능으로 활용한 경우입니다) 그리고 bbs/write_comment_update.php를 수정해야 하는데 그건 아래 소스 다음에 올리겠습니다.
<?
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
<table width=100%><tr>
<td>
<img src=http://www.prsae.com/p7/skin/board/test_shop/img/shop_w.jpg border=0>
<td><font color=#cc6666><ul>
<li>로그인 하시면 주문가능합니다.
<li>개인정보보보호 차원에서 주문하신 내용은<br>
<u><b>제품등록자</b>와 <b>주문자</b>에게만</u> 공개됩니다.
</table>
<? if ($is_comment_write) { ?>
<!-- 코멘트 쓰기 -->
<table width=100% cellpadding=0 cellspacing=0 border=0 bgcolor=#F5F5F5>
<form name="fboardviewcomment" method="post" action="javascript:fboardviewcomment_check(document.fboardviewcomment);" autocomplete="off">
<input type=hidden name=w value="c">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=wr_id value="<?=$wr_id?>">
<input type=hidden name=sfl value="<?=$sfl?>" >
<input type=hidden name=stx value="<?=$stx?>">
<input type=hidden name=spt value="<?=$spt?>">
<input type=hidden name=page value="<?=$page?>">
<input type=hidden name=cwin value="<?=$cwin?>">
<input type=hidden name=wr_2 value="<?=$wr_2?>">
<input type=hidden name=wr_3 value="<?=$wr_3?>">
<input type=hidden name=wr_4 value="<?=$wr_4?>">
<input type=hidden name=wr_5 value="<?=$wr_5?>">
<input type=hidden name=wr_6 value="<?=$wr_6?>">
<input type=hidden name=wr_7 value="<?=$wr_7?>">
<input type=hidden name=wr_8 value="<?=$wr_8?>">
<tr>
<td align=center>
<table width=100% cellpadding=0 cellspacing=0 bgcolor=#FFFFFF border=0>
<tr>
<td colspan=2 align=center>
<table width=100% cellpadding=0 cellspacing=0>
<tr><td>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#cccccc width=100%>
<tr bgcolor=#ffffff>
<td width=65 bgcolor=#e5e4e4 align=center>입금자명<FONT COLOR="#FF0000">*</FONT></td>
<td align=center>
<input name='wr_2' type=text class='input' style=width:90% maxlength="292" required itemname='입금자명'></td>
<td width=60 bgcolor=#e5e4e4 align=center>은행명<FONT COLOR="#FF0000">*</FONT></td>
<td width=88 align=center>
<select name='wr_3' class="box" size="1">
<option value='국민'>국민</option>
<option value='농협'>농협</option>
<option value='조흥'>조흥</option>
</select>
<td width=60 bgcolor=#e5e4e4 align=right>주문수량<FONT COLOR="#FF0000">*</FONT></td>
<td width=88 align=center>
<select name='wr_4' class="box" size="1">
<option value='1'>1개</option>
<option value='2'>2개</option>
<option value='3'>3개</option>
<option value='4'>4개</option>
<option value='5'>5개</option>
<option value='6'>6개</option>
<option value='7'>7개</option>
<option value='8'>8개</option>
<option value='9'>9개</option>
<option value='10'>10개</option>
</select></td>
</tr>
</table>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#cccccc width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=80 align=center>연락처1<FONT COLOR="#FF0000">*</FONT></td>
<td width=200 align=center>
<input name='wr_5' type=text class='input' style=width:90% maxlength="292" required itemname='연락처1'>
</td>
<td bgcolor=#e5e4e4 width=80 align=center>연락처2<FONT COLOR="#FF0000">*</FONT></td>
<td width=200 align=center>
<input name='wr_6' type=text class='input' style=width:90% maxlength="292" required itemname='연락처2'>
</td>
</tr></table>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#cccccc width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=80 align=center>배달지역<FONT COLOR="#FF0000">*</FONT></td>
<td width=107>
<select name='wr_7' class="box" size="1">
<option value='김해시'>김해시</option>
<option value='서울특별시'>서울특별시</option>
<option value='부산광역시'>부산광역시</option>
<option value='인천광역시'>인천광역시</option>
<option value='대구광역시'>대구광역시</option>
<option value='광주광역시'>광주광역시</option>
<option value='대전광역시'>대전광역시</option>
<option value='울산광역시'>울산광역시</option>
<option value='경기도'>경기도</option>
<option value='강원도'>강원도</option>
<option value='충청북도'>충청북도</option>
<option value='충청남도'>충청남도</option>
<option value='전라북도'>전라북도</option>
<option value='전라남도'>전라남도</option>
<option value='경상북도'>경상북도</option>
<option value='경상남도'>경상남도</option>
<option value='제주시'>제주시</option>
</select>
</td>
<td width=80 bgcolor=#e5e4e4 align=center>상세주소<FONT COLOR="#FF0000">*</FONT></td>
<td align=center>
<input type=text name='wr_8' required itemname='상세주소' class='input' size=35></td>
</tr>
</table>
<table cellspacing=1 cellpadding=2 border=0 bgcolor=#EFEFEF width=100%>
<tr><td>상세내용<FONT COLOR="#FF0000">*</FONT></td></tr>
<tr><td>
<textarea name=wr_content style='border: 1px solid #C2C2C2; word-break:break-all; width:100%;' rows=5 required
itemname='내용' onclick="if(this.value==this.defaultValue){this.value=''}"
onblur="if (this.value == '') { this.value = this.defaultValue; }">주문합니다^^</textarea></td></tr>
</td><td width=64></td></tr>
<tr><td colspan=2 height=5></td></tr>
</table>
</td>
</tr>
</table>
<INPUT type="image" width="80" height="25" src="<?=$board_skin_path?>/img/ok_button.gif" border=0>
</td>
</tr>
</form>
</table></td></tr></table><br>
<!-- 코멘트 입력 테이블 끝 -->
<!-- 코멘트 리스트 -->
<? for ($i=0; $i<count($list); $i++) { ?>
<? if ($list[$i][is_edit]) { // 각 코멘트를 각 코멘트등록자만 볼 수 있게 하기 위한 꼼수 ?>
<? if ($list[$i][is_del]) { // 각 코멘트를 각 코멘트등록자만 볼 수 있게 하기 위한 꼼수 ?>
<br>
<?
if($member[mb_id] == $list[$i][mb_id] || $write[mb_id] == $member[mb_id] || $is_admin == 'default') //등록자 목록
{?>
<table width=100% border=0 align=center cellpadding=1 cellspacing=0 bgcolor=#d5d4d4>
<tr>
<td height=25> <?=$list[$i][name]?> (<?=$list[$i][ip]?>) </td>
<td align=right><?=$list[$i][datetime]?>
<a href="javascript:comment_delete('<?=$list[$i][del_link]?>');"><b><font color=orange>[삭제]</a>
</tr>
<tr>
<td colspan=2 valign=top>
<table width=100% cellpadding=0 cellspacing=0>
<tr><td style='word-break:break-all; text-align:justify;' class='lh tt'>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>입금자명</td>
<td align=center><?=$list[$i][wr_2]?></td>
<td bgcolor=#e5e4e4 width=60 align=center>은행명</td>
<td align=center><?=$list[$i][wr_3]?></td>
<td bgcolor=#e5e4e4 width=60 align=center>주문수량</td>
<td align=center><?=$list[$i][wr_4]?></td>
</tr>
<tr bgcolor=#d5d4d4><td height=1 colspan=10>
</table>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>연락처1</td>
<td align=center><?=$list[$i][wr_5]?></td>
<td bgcolor=#e5e4e4 width=60 align=center>연락처2</td>
<td align=center><?=$list[$i][wr_6]?></td>
</tr>
<tr bgcolor=#d5d4d4><td height=1 colspan=10>
</table>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>배달지역</td>
<td><?=$list[$i][wr_7]?> <?=$list[$i][wr_8]?></td>
</tr>
<tr bgcolor=#d5d4d4><td height=1 colspan=10>
</table>
<table cellspacing=0 cellpadding=5 border=0 width=100%>
<tr bgcolor=#ffffff>
<td bgcolor=#e5e4e4 width=60 align=center>상세내용</td>
<td> <?=$list[$i][content]?></td>
</tr>
</table>
</td></tr></table>
</td></tr></table>
<? } ?>
<? }} ?>
<? } ?>
<?
function getURL2(){
$server=getenv("SERVER_NAME");
$file=getenv("SCRIPT_NAME");
$query=getenv("QUERY_STRING");
$url="http://$server$file";
if($query) $url.="?$query";
return $url;
}
$url_p = getURL2();
if (preg_match("/cwin=1/i", $url_p, $matches)) {
echo "
<center><br>
<input type=button value=' 창닫기 ' onclick='self.close();'
style=font-family:돋움;font-size:8pt;height:18px;>
</center>
<br>
"; } else {}?>
<script language="JavaScript">
function fcomment_submit(f)
{
var s = word_filter_check(f.wr_content.value);
if (s) {
alert("내용에 금지단어("+s+")가 포함되어있습니다");
return;
}
//f.btn_comment_submit.disabled = true;
f.action = "./write_comment_update.php";
f.submit();
}
</script>
<!-- 코멘트 리스트 -->
<script language='JavaScript'>
function fboardviewcomment_check(f)
{
var s;
if (s = word_filter_check(f.wr_content.value)) {
alert("내용에 금지단어('"+s+"')가 포함되어있습니다");
f.wr_content.focus();
return;
}
if (typeof(f.wr_key) != "undefined") {
if (hex_md5(f.wr_key.value) != md5_norobot_key) {
alert("자동등록방지용 빨간글자가 순서대로 입력되지 않았습니다.");
f.wr_key.focus();
return;
}
}
//document.getElementById("btn_submit").disabled = true;
f.action = "./write_comment_update.php";
f.submit();
}
function comment_edit(wr_id)
{
var cmnt_edit = wr_id + "_edit";
var cmnt_disp = document.getElementById(wr_id).style.display;
if (cmnt_disp == "none") {
document.getElementById(wr_id).style.display = "";
document.getElementById(cmnt_edit).style.display = "none";
} else {
document.getElementById(wr_id).style.display = "none";
document.getElementById(cmnt_edit).style.display = "";
}
}
function comment_delete(url)
{
if (confirm("이 코멘트를 삭제하시겠습니까?")) location.href = url;
}
</script>
<? } // if ($is_comment_write) ?>
여기까지. 보시면 아시다시피 wr_2, wr_3 등을 필드로 추가하였죠. 일단 view_comment.skin.php로 저장하시고 이젠 bbs/write_comment_update.php를 아래와 같이 수정합니다. 대략 45번째줄에 가면
if ($w == "c") { // 코멘트 입력
$sql = " insert into $write_table
set ca_name = '$wr[ca_name]',
wr_option = '',
wr_num = '$wr[wr_num]',
wr_reply = '',
wr_parent = '$wr_id',
wr_comment = -1,
wr_content = '$wr_content',
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
이런 구절이 있습니다. 여기에 wr_1, wr_2....를 추가해주면 됩니다. 아래처럼입니다.
if ($w == "c") { // 코멘트 입력
$sql = " insert into $write_table
set ca_name = '$wr[ca_name]',
wr_option = '',
wr_num = '$wr[wr_num]',
wr_reply = '',
wr_parent = '$wr_id',
wr_comment = -1,
wr_content = '$wr_content',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10',
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql);
사실 제가 추가한 건 wr_2부터 wr_8까지인데 그냥 1부터 10까지 다 넣었습니다. wr_1은 다른 기능으로 쓰고 있는 경우가 많아서요^^;
그리고 이 팁은 현재 간이쇼핑몰 스킨의 코멘트로 쓰고 있기 때문에 자신의 코멘트는 작성자(주문자)만 볼 수 있게 되어 있습니다. 사실 이걸 해결하려고 며칠을 고민하다가 그누에 이미 있는 기능을 이용해서 꼼수를 부렸습니다. 자신의 코멘트에만 수정/삭제 링크가 보이게 하는 소스 있죠? 그걸 view_comment.skin.php 전체에 적용해버렸습니다. ^^;;; 그래서 이 코멘트 기능을 이용하시려면 본문글을 관리자만 다는 게시판에서만 쓸 수 있습니다. 물론 다른 분들도 본문등록이 가능하게는 되지만 누군가 코멘트를 올려도 관리자와 코멘트 등록자 외에는 볼 수 없기 때문에 의미가 없어서입니다.
때문에 전체회원들에게 공개하시려면 그걸 푸시고 원래대로 수정/삭제 링크에만 다시 씌우면 됩니다. 고수님들은 말만 들어도 아실 테지만 초보님들은 좀 이해가 안되시죠^^;;; 그냥 베이직 스킨의 view_comment.skin.php에서 수정/삭제 링크를 찾아서 이 스킨과 잘 비교해보시면 그리 어렵지 않을 겁니다. 꽤 공부도 되실 겁니다^^;;
앞에서 말씀드린대로 여러가지로 보완할 점이 많습니다. 코멘트를 좀 더 다양하게 응용하실 초보분들에게 도움이 되었으면 하는 마음에 올리는 팁입니다. 그리고 관련 스킨을 G4스킨방에 올렸습니다. ( http://www.sir.co.kr/?doc=bbs/gnuboard.php&bo_table=g4_skin&sselect=&stext=&spart=&wr_id=425&page=1#c430&page=1 )
G4의 무궁한 발전을 위하여!
추천
0
0
댓글 13개
감사합니다.
정말 좋은 자료입니다. 감사드립니다.
감사합니다.
와 감사합니다. 스킨과 같이 있으니 이해가 더 빠르네요. 감사합니다...^^
좋은 팁 알려주셔서 감사합니다.
감사합니다. 감사합니다.
????
감사합니다. ^^
ㅇㅇ
ㅇㅇㅇ
ㅇㅇㅇㅇ
wer
정말 감사합니다.^^