댓글 1회 입력시 더이상 입력 불가능하게 만들었습니다.
본문
도움을받아 댓글 1회 입력시 해당 게시물에
더이상 입력 불가능하게 경고창을 띄우는것까지 만들었는데
입력이 불가능한데도 댓글등록부분이 보이니까 이상하더군요;;
생각해보니까 댓글1회 입력하면 댓글등록부분을 아예안보이도록 만들면
되는거였는데 멍청했었습니다..
댓글 1회 입력시에 댓글 등록부분을 안보이게 만들려면
어떻게 해야되나요? 도움 좀 주시면 정말 감사하겠습니다.ㅠ-ㅠ
view_comment.skin.php파일에서 댓글쓰기시작 부분을 조건문으로 묶으면 될거같은데
어떻게 조건을 줘야 할지 모르겠습니다..
도움 부탁드립니다.
답변 2
extend/ 안에 임의로 파일을 추가해서 함수로 넣어주시고 호출하면 쓰기 더 편하겠군요.
저장하실 때 utf-8로 인코딩 지정하는거 잊지마시구요.
<?php
function check_my_comment($bo_table, $wr_id, $wr_num='') {
global $g5, $member;
$board_list = array('bbsId', 'bbsId2'); // 검사해야 할 게시판 목록
if (!in_array($bo_table, $board_list)) return true; // 목록에 없으면 댓글쓰기가능
if(!isset($member['mb_id']) || empty($member['mb_id'])) return false; // 비회원 댓글 금지
$write_table = $g5['write_prefix'].$bo_table;
if (!$wr_num) { // wr_num이 없는경우 가져오기
$sql = ' select wr_num from '.$write_table.' where wr_parent = "'.$wr_id.'" limit 1 ';
$row = sql_fetch($sql);
$wr_num = $row['wr_num'];
}
$sql = " select count(*) as cnt from ".$write_table." where wr_num='".$wr_num."' and wr_parent = '".$wr_id."' and wr_is_comment = 1 and mb_id='".$member['mb_id']."' ";
$row = sql_fetch($sql);
return ($row['cnt'] > 0 ? false : true); // 내가 쓴 댓글이 있으면 false, 없으면(쓰기 가능하면) true
}
?>
view_comment.skin.php에서 좀전에 만든 함수로 체크합니다.
따로 include는 안해도 됩니다. extend/ 안에 있는건 자동으로 불러와요.
<?php //if ($is_comment_write) { // 이 문장을 찾아서 주석처리하고 아래로 바꿔주세요.
$possible_write = check_my_comment($bo_table, $wr_id, $write['wr_num']);
if ($is_comment_write && $possible_write) {
그리고 write_comment_update.php 에 추가하신 체크는 있는게 아무래도 좋겠죠.
다만 bbs/ 내의 파일을 수정하심보다는 skin에서 처리하심이 더 좋겠습니다.
write_comment_update.head.skin.php 파일에 넣어주면 됩니다. (파일 만들때 항상 인코딩 주의)
if (!check_my_comment($bo_table, $wr_id, $write['wr_num'])) {
alert("이미 참여한 게시물 입니다. 각 게시물당 댓글은 한 번씩만 작성이 가능합니다.");
}
댓글 1회 입력시 해당 게시물에 더이상 입력 불가능하게 경고창을 띄우는것까지 만드셨으니
동일한 조건으로 댓글 입력부분을 if문의 false로 둘러싸면 됩니다.
만약
if ( 댓글1회카운트 == 1 ) {
경고창;
}
으로 하셨으면
if ( !댓글1회카운트 == 1 ) {
댓글입력부분;
}
으로 느낌표를 붙이시면 됩니다.
답변을 작성하시기 전에 로그인 해주세요.