지식인 게시판 소스좀 봐주세요 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

지식인 게시판 소스좀 봐주세요 정보

지식인 게시판 소스좀 봐주세요

본문

http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=101052&sca=&sfl=wr_subject&stx=%C1%F6%BD%C4%C0%CE&sop=and
요거를 달아서 쓰고있는데요
소스는

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

unset($list);

if (!$is_comments) {

$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by  wr_10, wr_id desc ";
$result = mysql_query($sql);
$total_row = mysql_num_rows($result); //전체 개시물

$php_self = $PHP_SELF . "?bo_table=$bo_table&wr_id=$wr_id";

if (!$page) $page = 1;

$page_page = 5; //한화면에 표시할 페이지 수

$page_list = 10; //한화면에 표시할 게시물 수

$pages = $page_list * ($page-1); // 한화면에 출력 되어지는 개시물

$total_page = ceil($total_row / $page_list); //총페이지 수

$total_pp = ceil($total_page / $page_page); //총 다중 페이지 수

$now_pp =intval(($page-1) / $page_page);

$first_page = ($now_pp * $page_page); //처음 다중 페이지

$first_page_next = $first_page + $page_page; //한 화면에 출력한 다중 페이지의 갯수

if ($first_page_next >= $total_page) $first_page_next = $total_page;

$sql .= " limit $pages, $page_list ";
$result = mysql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++) {
    $list[$i] = $row;

    $tmp_name = get_text(cut_str($row[wr_name], $config[cf_cut_name])); // 설정된 자리수 만큼만 이름 출력
    if ($board[bo_use_sideview])
        $list[$i][name] = get_sideview($row[mb_id], $tmp_name, $row[wr_email], $row[wr_homepage]);
    else
        $list[$i][name] = "<span class='".($row[mb_id]?'member':'guest')."'>$tmp_name</span>";


    $list[$i][content] = $list[$i][content1]= "비밀글 입니다.";
    if (!strstr($row[wr_option], "secret") ||
        $is_admin ||
        ($write[mb_id]==$member[mb_id] && $member[mb_id]) ||
        ($row[mb_id]==$member[mb_id] && $member[mb_id])) {
        $list[$i][content1] = $row[wr_content];
        $list[$i][content] = conv_content($row[wr_content], 0, 'wr_content');
        $list[$i][content] = search_font($stx, $list[$i][content]);
    }

    $list[$i][trackback] = url_auto_link($row[wr_trackback]);
    $list[$i][datetime] = substr($row[wr_datetime],2,14);

    // 관리자가 아니라면 중간 IP 주소를 감춘후 보여줍니다.
    $list[$i][ip] = $row[wr_ip];
    if (!$is_admin)
        $list[$i][ip] = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $row[wr_ip]);

    $list[$i][is_reply] = false;
    $list[$i][is_edit] = false;
    $list[$i][is_del]  = false;
    if ($is_comment_write || $is_admin)
    {
        if ($member[mb_id])
        {
            if ($row[mb_id] == $member[mb_id] || $is_admin)
            {
                $list[$i][del_link]  = "./delete_comment.php?bo_table=$bo_table&comment_id=$row[wr_id]&cwin=$cwin&page=$page".$qstr;
                $list[$i][is_edit]   = true;
                $list[$i][is_del]    = true;
            }
        }
        else
        {
            if (!$row[mb_id]) {
                $list[$i][del_link] = "./password.php?w=x&bo_table=$bo_table&comment_id=$row[wr_id]&cwin=$cwin&page=$page".$qstr;
                $list[$i][is_del]   = true;
            }
        }

        if (strlen($row[wr_comment_reply]) < 5)
            $list[$i][is_reply] = true;
    }

    // 05.05.22
    // 답변있는 코멘트는 수정, 삭제 불가
    if ($i > 0 && !$is_admin)
    {
        if ($row[wr_comment_reply])
        {
            $tmp_comment_reply = substr($row[wr_comment_reply], 0, strlen($row[wr_comment_reply]) - 1);
            if ($tmp_comment_reply == $list[$i-1][wr_comment_reply])
            {
                $list[$i-1][is_edit] = false;
                $list[$i-1][is_del] = false;
            }
        }
    }
}

$strs = "<table height=30 align=center cellpadding='0' cellspacing='0' border='0'>";

 if ($total_row > 0) {

  $first = 0;
  //처음 버튼
  if ($now_pp != 0) {
   $strs .= "<td width='30' align='center'><a href='$php_self&page=$first'>처음</a></td>";
  }

  $prev = ($now_pp - 1) * ($page_page + 1);
  //이전 버튼
  if ($now_pp != 0) {
   $strs .= "<td width='30' align='center'><a href='$php_self&page=$prev'>이전</a></td>";
  }

  for ($i=$first_page; $i<$first_page_next; $i++) {
   if ($i+1==$first_page_next) $dot = ""; else $dot = " | ";

   if ($i==$page-1) {
    $strs .= "<td align=center width=30><span style='text-decoration:underline;font-weight:bold;font-size:10pt;'>".($i+1)."</span></td><td width=10 align=center>$dot</td>";
   }else{
    $strs .= "<td align=center width=30><a href='$php_self&page=".($i+1)."'><span style='color:#999999;font-weight:bold;font-size:10pt;'>".($i+1)."</span></a></td><td width=10 align=center>$dot</td>";
   }
  }

  $next = ($now_pp+1) * ($page_page+1);
  //다음 버튼
  if ($now_pp!=$total_pp-1) {
   $strs .= "<td width='30' align='center'><a href='$php_self&page=$next'>다음</a></td>";
  }

  $end = $total_page;
  //마지막 버튼
  if ($now_pp!=$total_pp-1) {
   $strs .= "<td width='30' align='center'><a href='$php_self&page=$end'>끝</a></td>";
  }
 }

 $strs .= "</table>";
?>

<script language="JavaScript">
// 글자수 제한
var char_min = parseInt(<?=$comment_min?>); // 최소
var char_max = parseInt(<?=$comment_max?>); // 최대
</script>

<? if ($cwin==1) { ?>
<link href="../../../csshojufun.css" rel="stylesheet" type="text/css" />
<table width=100% cellpadding=10 align=center><tr><td><?}?>

<!-- 코멘트 리스트 -->
<div id="commentContents">

<?=$strs?>

<?
for ($i=0; $i<count($list); $i++) {
    $comment_id = $list[$i][wr_id];
?>

<table width=100% cellpadding=0 cellspacing=0 border=0>
<tr>
    <td>
 <? for ($k=0; $k<strlen($list[$i][wr_comment_reply]); $k++) echo "     "; ?></td>
    <td>

 <table style="border:1px solid #dddddd;" width='100%' cellpadding='0' cellspacing='0' border='0'>
 <tr>
     <td>

        <table bgcolor="#f9f9f9" height="50" border=0 cellpadding=0 cellspacing=0 width=100%>
        <tr>

  <? if ($list[$i][wr_10] == "질문자선택") { ?>

   <td valign="top" width="70">

   <table height="50" width="70" background="<?=$board_skin_path?>/img/select.gif" cellpadding='0' cellspacing='0' border='0'>
   <tr><td></td></tr>
   </table>

   </td>

  <? } else { ?>
  <td width="40" style="padding:6 0 10 10;"><img src='<?=$board_skin_path?>/img/in_btn_15.gif' align='absmiddle'></td>
  <? } ?>

            <td>

   <table width='100%' cellpadding='0' cellspacing='0' border='0'>
   <tr height="30">
    <td style="padding:6 10 10 10;">
    <span class="stand"><b><?=$list[$i][wr_subject]?></b></span><br />
    <strong><?=$list[$i][name]?></strong>  <span style="color:#888888; font-size:8pt;"><?=$list[$i][datetime]?></span>
       </td>

    <td align="right" style="padding:0 10 10 0;">

    <?
     if ($view[wr_9] != "완료") {
      if ($view[mb_id] == $member[mb_id]) {
       echo "<a onclick=\"select_comment('$board_skin_path/select.update.php?bo_table=$bo_table&wr_id=$wr_id&comment_id={$list[$i][wr_id]}&page=$page','{$list[$i][wr_name]}');\"  style='cursor:pointer; cursor:hand;'><img src='$board_skin_path/img/in_btn_09.gif' border=0 align=absmiddle alt='채택'></a> ";
      }
     }
    ?>

                <? if ($list[$i][is_edit]) { echo "<a onclick=\"location.href='$g4[path]/bbs/board.php?bo_table=$bo_table&wr_id=$wr_id&is_comments=1&ws=cu&comment_id={$list[$i][wr_id]}';\" style='cursor:pointer; cursor:hand;'><img src='$board_skin_path/img/c_m.gif' border=0 align=absmiddle alt='수정'></a> "; } ?>

                <? if ($list[$i][is_del])  { echo "<a onclick=\"comment_delete('{$list[$i][del_link]}&wr_id=$wr_id');\" style='cursor:pointer; cursor:hand;'><img src='$board_skin_path/img/c_d.gif' border=0 align=absmiddle alt='삭제'></a> "; } ?>
                 

    </td>
   </tr>
   </table>

   </td>
  </tr>
  </table>

                 <!-- 코멘트 출력 -->
                <div style='line-height:20px; padding:20 15 10 15; word-break:break-all; overflow:hidden; clear:both; '>
                <?
                if (strstr($list[$i][wr_option], "secret")) echo "<span style='color:#ff6600;'>*</span> ";
                $str = $list[$i][wr_content];
                if (strstr($list[$i][wr_option], "secret"))
                    $str = "<span class='small' style='color:#ff6600;'>$str</span>";

                $str = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $str);
                $str = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp)\:\/\/([^[:space:]]+)\.(swf)\".*\<\/a\>\]/i", "<script>doc_write(flash_movie('$1://$2.$3'));</script>", $str);
                $str = preg_replace("/\[\<a\s*href\=\"(http|https|ftp)\:\/\/([^[:space:]]+)\.(gif|png|jpg|jpeg|bmp)\"\s*[^\>]*\>[^\s]*\<\/a\>\]/i", "<img src='$1://$2.$3' id='target_resize_image[]' onclick='image_window(this);'>", $str);
                echo $str;
                ?>
    <br /><br />
    <span class="gal2">참고주소: <?=$list[$i][wr_7]?></span>
                </div>
     <!--  추가라인 관련글 -------->       
  
<style type="text/css">
#neue_center2 {text-align:right;clear:both;}
#neue_latest2 {width:80%;margin:10px auto 0px auto;padding:16px;border:0px solid #bbbbbb;background-color:#f5f5f5;text-align:left;}
#neue_latest2_line4 {margin:2px 0 2px 0;width:100%;height:1px;overflow:hidden;background-color:#ddd;}
.neue_latest_title2 {color:#666;font-weight:bold;letter-spacing:-0.05em;}
.neue_latest_more2 {font:7pt tahoma;background-color:#67AE0A;color:#fff;}

</style>

<div id=neue_center2>
    <div id="neue_latest2">
        <span class=neue_latest_title2><?=$board[bo_subject]?></span> 에서 활동한 <?=$list[$i][name]?>님의  다른 답변 
        <a href=<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>&sca=&sfl=mb_id%2C1&stx=<?=$list[$i][mb_id]?>><span class=neue_latest_more2>   + more  </span></a>
        <div style="height:5px;"></div>
        <?php


            include_once("./_common.php");
            include_once("$g4[path]/lib/latest.namecmt.lib.php");
            if ($list[$i][mb_id]=="") { echo "회원이 작성한 질문에서만.<br/>관련글이 뜹니다." ; }
            else {
            //function platest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="",$posting="")
            echo platestcmt("name", "$bo_table", 5, 65,"wr_num","{$list[$i][mb_id]}");
            }
        ?>

    </div>
</div>
       
<!-- // 추가라인 관련글 -------->
    
                <? if ($list[$i][trackback]) { echo "<p>".$list[$i][trackback]."</p>"; } ?>
                <span id='edit_<?=$comment_id?>' style='display:none;'></span><!-- 수정 -->
                <span id='reply_<?=$comment_id?>' style='display:none;'></span><!-- 답변 -->
                </div>
                <input type=hidden id='secret_comment_<?=$comment_id?>' value="<?=strstr($list[$i][wr_option],"secret")?>">
                <textarea id='save_comment_<?=$comment_id?>' style='display:none;'><?=get_text($list[$i][content1], 0)?></textarea></td>
            </td>
        </tr>
        <tr>
            <td height=5 colspan=3></td>
        </tr>
        </table>

    </td>
</tr>
<tr>
 <td height="10"></td>
</tr>
</table>
<? } ?>

<?=$strs?>

</div>
<!-- 코멘트 리스트 -->

<script language='javascript'>
function comment_delete(url) {
    if (confirm("이 코멘트를 삭제하시겠습니까?")) location.href = url;
}

function select_comment (url,wr_name) {
 if (confirm(wr_name + " 님의 글을 채택하시겠습니까?")) {
  location.href = url;
 } else {
  return false;
 }
}
</script>

<? } ?>

<?
 if ($is_comment_write && $is_comments) {

  if ($view[mb_id] == $member[mb_id]) {
   alert("자신의 질문에는 답변을 하실수 없습니다");
  }

  if (!$ws) {
   $ws = "c";
  } else {
   $sql = mysql_query(" select * from $g4[write_prefix]$bo_table where wr_is_comment = '1' and wr_id = '$comment_id' ");
   $wrs = mysql_fetch_array($sql);

   if ($wrs[wr_10] == "질문자선택") {
    alert("질문자선택 답변입니다. 수정이 불가능합니다");
   }
  }
?>

<style type="text/css">
.write_head { width:80; height:30px; text-align:left; color:#777777; font-weight:bold; padding:0 10 0 10; text-align:center; }
.field { border:1px solid #ccc; }
</style>

<!-- 코멘트 입력 -->
<div id=comment_write style="display:none;">
<table width=100% border=0 cellpadding=1 cellspacing=0><tr><td>
<form name="fviewcomment" method="post" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" autocomplete="off" style="margin:0px;">
<input type=hidden name=w           id=w value='<?=$ws?>'>
<input type=hidden name=bo_table    value='<?=$bo_table?>'>
<input type=hidden name=wr_id       value='<?=$wr_id?>'>
<input type=hidden name=comment_id  id='comment_id' value='<?=$comment_id?>'>
<input type=hidden name=sca         value='<?=$sca?>' >
<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=is_good     value=''>

<table height="30" width='100%' cellpadding='0' cellspacing='0' border='0'>
<tr>
    <td bgcolor="#f0f0f0" style="border:1px solid #dddddd; font-weight:bold; font-size:10pt; padding:2 2 2 10;">답변등록하기</td>
</tr>
</table>

<div style='height:0.5em; line-height:0.5em;'> </div>

<table width=100% cellpadding=3 cellspacing=0 bgcolor="#ffffff" style="border:1px solid #fff; background:url(<?=$board_skin_path?>/img/co_bg.gif) x-repeat;">
<tr>
    <td colspan="2" style="padding:5px 0 0 5px;">
        <? if ($is_guest) { ?>
            이름 <INPUT type=text maxLength=20 size=10 name="wr_name" itemname="이름" required class=ed>
            패스워드 <INPUT type=password maxLength=20 size=10 name="wr_password" itemname="패스워드" required class=ed>
            <? if ($is_norobot) {
            // 이미지 생성이 가능한 경우 자동등록체크코드를 이미지로 만든다.
            if (function_exists("imagecreate")) {
                echo "<img src='$g4[bbs_path]/norobot_image.php' border='0' align='absmiddle' style='margin-left:10px;'>";
                $norobot_msg = "* 왼쪽의 자동등록방지 코드를 입력하세요.";
            }
            else {
                echo $norobot_str;
                $norobot_msg = "* 왼쪽의 글자중 <FONT COLOR='red'>빨간글자</font>만 순서대로 입력하세요.";
            }
            ?>
            <input title="<?=$norobot_msg?>" type="input" name="wr_key" size="10" itemname="자동등록방지" required class=ed>
            <?}?>
        <? } ?>
        <? if ($comment_min || $comment_max) { ?><span id=char_count></span>글자<?}?>
    </td>
</tr>
<tr>
    <td>

 <table width='100%' cellpadding='0' cellspacing='0' border='0'>
 <tr height="30">
  <td class="write_head">제목</td>
     <td>
  <input class="tx" style="width:100%;" name="wr_subject" id="wr_subject" itemname="제목" required value="<?=$wrs[wr_subject] !="" ? $wrs[wr_subject] : $_GET['subject1']?>">
  </td>
 </tr>

 <tr height="30">
  <td class="write_head">답변 내용</td>
     <td>
     <textarea id="wr_content" name="wr_content" geditor rows=8 itemname="내용" required
        <? if ($comment_min || $comment_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?}?> style='width:100%; word-break:break-all;' class=tx><?=$wrs[wr_content]?></textarea>
        <? if ($comment_min || $comment_max) { ?><script language="javascript"> check_byte('wr_content', 'char_count'); </script><?}?>
     </td>
 </tr>
 
 <tr height="30">
  <td class="write_head">참고주소</td>
     <td>
  <input class="tx" style="width:100%;" name="wr_7" id="wr_7" itemname="참고주소" value="<?=$wrs[wr_7]?>">
  </td>
 </tr>
 
 </table>


 <table width='100%' cellpadding='0' cellspacing='0' border='0'>
 <tr>
     <td align="center" height="50">
     <input type="image" src="<?=$board_skin_path?>/img/comment_w.jpg" border=0 accesskey='s'>
   
  <a onclick="history.back();" style="cursor:pointer; cursor:hand;"><img src="<?=$board_skin_path?>/img/btn_back.gif" border=0 accesskey='s'></a>
   
  <a href="<?=$g4[path]?>/bbs/board.php?bo_table=<?=$bo_table?>"><img src="<?=$board_skin_path?>/img/btn_list.jpg" border=0 accesskey='s'></a>
     </td>
 </tr>
 </table>


    </td>
</tr>
</table>
</form>
</td></tr></table>
</div>

<script language='JavaScript'>
var save_before = '';
var save_html = document.getElementById('comment_write').innerHTML;

function good_and_write()
{
    var f = document.fviewcomment;
    if (fviewcomment_submit(f)) {
        f.is_good.value = 1;
        f.submit();
    } else {
        f.is_good.value = 0;
    }
}

function fviewcomment_submit(f)
{
    var pattern = /(^\s*)|(\s*$)/g; // \s 공백 문자

    f.is_good.value = 0;

    var s;
    if (s = word_filter_check(document.getElementById('wr_content').value))
    {
        alert("내용에 금지단어('"+s+"')가 포함되어있습니다");
        document.getElementById('wr_content').focus();
        return false;
    }

    // 양쪽 공백 없애기
    var pattern = /(^\s*)|(\s*$)/g; // \s 공백 문자
    document.getElementById('wr_content').value = document.getElementById('wr_content').value.replace(pattern, "");
    if (char_min > 0 || char_max > 0)
    {
        check_byte('wr_content', 'char_count');
        var cnt = parseInt(document.getElementById('char_count').innerHTML);
        if (char_min > 0 && char_min > cnt)
        {
            alert("코멘트는 "+char_min+"글자 이상 쓰셔야 합니다.");
            return false;
        } else if (char_max > 0 && char_max < cnt)
        {
            alert("코멘트는 "+char_max+"글자 이하로 쓰셔야 합니다.");
            return false;
        }
    }
    else if (!document.getElementById('wr_content').value)
    {
        alert("코멘트를 입력하여 주십시오.");
        return false;
    }

    if (typeof(f.wr_name) != 'undefined')
    {
        f.wr_name.value = f.wr_name.value.replace(pattern, "");
        if (f.wr_name.value == '')
        {
            alert('이름이 입력되지 않았습니다.');
            f.wr_name.focus();
            return false;
        }
    }

    if (typeof(f.wr_password) != 'undefined')
    {
        f.wr_password.value = f.wr_password.value.replace(pattern, "");
        if (f.wr_password.value == '')
        {
            alert('패스워드가 입력되지 않았습니다.');
            f.wr_password.focus();
            return false;
        }
    }

    if (typeof(f.wr_key) != 'undefined')
    {
        if (hex_md5(f.wr_key.value) != md5_norobot_key)
        {
            alert('자동등록방지용 빨간글자가 순서대로 입력되지 않았습니다.');
            f.wr_key.focus();
            return false;
        }
    }

    return true;
}

function comment_box(comment_id, work)
{
    var el_id;
    // 코멘트 아이디가 넘어오면 답변, 수정
    if (comment_id)
    {
        if (work == 'c')
            el_id = 'reply_' + comment_id;
        else
            el_id = 'edit_' + comment_id;
    }
    else
        el_id = 'comment_write';

    if (save_before != el_id)
    {
        if (save_before)
        {
            document.getElementById(save_before).style.display = 'none';
            document.getElementById(save_before).innerHTML = '';
        }

        document.getElementById(el_id).style.display = '';
        document.getElementById(el_id).innerHTML = save_html;
        // 코멘트 수정
        if (work == 'cu')
        {
            if (typeof char_count != 'undefined')
                check_byte('wr_content', 'char_count');
        }

        save_before = el_id;
    }
}

comment_box("", "<?=$ws?>"); // 코멘트 입력폼이 보이도록 처리하기위해서 추가 (root님)
</script>

<script language="JavaScript" src="<?="$g4[path]/geditor/geditor.js"?>"></script>

<? } ?>

<? if($cwin==1) { ?></td><tr></table><p align=center><a href="javascript:window.close();"><img src="<?=$board_skin_path?>/img/btn_close.gif" border="0"></a><br><br><?}?>





위와 같습니다

문제점이 되는게 두가지가있는데

01.요거를 쓰게되면 답변을 달면
최신답글이 맨위로 올라가더라구요?
원래대로 최신답글이 밑에부터 달리게 하려면 어딜수정해야하나요??

02.그리고 답변을 채택하게 되면
채택된 답변이 답변글중에서 맨위로 올라가게 하려면 어딜 수정해야 하나요??

위수정건은 네이버와 똑같은 방식으로 수정하려고 하는거여서
도움좀 부탁드립니다(__)

댓글 전체

$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by  wr_10, wr_id desc ";

요고를  아래와 같이 해보세요.

$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by  wr_10 DESC, wr_id ASC ";
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT