태엽푸는새님 최근 게시물에 대한 질문을 드릴까 합니다. > 그누4 질문답변

그누4 질문답변

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

태엽푸는새님 최근 게시물에 대한 질문을 드릴까 합니다. 정보

태엽푸는새님 최근 게시물에 대한 질문을 드릴까 합니다.

본문

먼저 죄송합니다.
 
질문 전에 혼자 검색해보고, 해본다고 밤을 세웠는데 워낙 기초가 없다보니 잘 안되네요.
 
다름이 아니라 태엽푸는 새님이 만드신 최신 게시물을 이용하다보니 생각하지 않았던 것이 있어서요.
 
 
위의 스킨을 제 사이트에 적용시켜 보고 있는데 원글에 코맨트가 달리는 경우 코맨트줄이 하나 새로이 생기더군요.
 
위의 스킨을 코맨트는 나오지 않도록 하고 그냥 원글만 출력되어 나타나도록 만들고 싶은데 어디를 수정해야 할지 모르겠습니다.
 
먼저 제가 잘은 모르지만
 
extend_new.lib.php 파일을 수정해야 할 것 같아서 이것 저것 삭제해보고 수정하면서 해봤는데 잘 안됩니다.
 
혹 아시는 분 있으시면 좀 가르쳐 주시길 부탁드립니다.
 
 
<< extend_new.lib.php >>
 
 
<?
function get_new_($rows, $maxstr)
{
 global $g4, $gr_id, $config;
 $sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
       where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' ";
 if ($gr_id)
  $sql_common .= " and b.gr_id = '$gr_id' ";
 if ($view == "w")
  $sql_common .= " and a.wr_id = a.wr_parent ";
 else if ($view == "c")
  $sql_common .= " and a.wr_id <> a.wr_parent ";

 $sql_order = " order by a.bn_id desc ";
 $sql = " select count(*) as cnt $sql_common ";
 $row = sql_fetch($sql);
 $total_count = $row[cnt];
// $rows = $config[cf_new_rows];
 $total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
 if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
// $from_record = ($page - 1) * $rows; // 시작 열을 구함
 $from_record = 0;  //*
/*
 $group_select = "<select name=gr_id id=gr_id onchange='select_change();'><option value=''>전체그룹";
 $sql = " select gr_id, gr_subject from $g4[group_table] order by gr_id ";
 $result = sql_query($sql);
 for ($i=0; $row=sql_fetch_array($result); $i++)
 {
  $group_select .= "<option value='$row[gr_id]'>$row[gr_subject]";
 }
 $group_select .= "</select>";
*/
 $list = array();
 $sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id
     $sql_common
     $sql_order
     limit $from_record, $rows ";
 $result = sql_query($sql);
 $a = "";
 for ($i=0; $row=sql_fetch_array($result); $i++)
 {
  $tmp_write_table = $g4[write_prefix] . $row[bo_table];
//  if ($row[wr_id] == $row[wr_parent]) // 원글
//  {
//   $comment = "";
//   $comment_link = "";
   $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_id]' ");
   $list[$i] = $row2;
//   $name = get_sideview($row2[mb_id], cut_str($row2[wr_name], $config[cf_cut_name]), $row2[wr_email], $row2[wr_homepage]);
   // 당일인 경우 시간으로 표시함
   $datetime = substr($row2[wr_datetime],0,10);
   $datetime2 = $row2[wr_datetime];
   if ($datetime == $g4[time_ymd])
    $datetime2 = substr($datetime2,11,5);
   else
    $datetime2 = substr($datetime2,5,5);
//  }
//  else // 코멘트
//  {
//   $comment = "[코] ";
//   $comment_link = "#c_{$row[wr_id]}";
//   $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_parent]' ");
//   $row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from $tmp_write_table where wr_id = '$row[wr_id]' ");
//   $list[$i] = $row2;
//   $list[$i][mb_id] = $row3[mb_id];
//   $list[$i][wr_name] = $row3[wr_name];
//   $list[$i][wr_email] = $row3[wr_email];
//   $list[$i][wr_homepage] = $row3[wr_homepage];
//
//   $name = get_sideview($row3[mb_id], cut_str($row3[wr_name], $config[cf_cut_name]), $row3[wr_email], $row3[wr_homepage]);
//   // 당일인 경우 시간으로 표시함
//   $datetime = substr($row3[wr_datetime],0,10);
//   $datetime2 = $row3[wr_datetime];
//   if ($datetime == $g4[time_ymd])
//    $datetime2 = substr($datetime2,11,5);
//   else
//    $datetime2 = substr($datetime2,5,5);
//  }
//  $list[$i][gr_id] = $row[gr_id];
//  $list[$i][bo_table] = $row[bo_table];
//  $list[$i][name] = $name;
//  $list[$i][comment] = $comment;
  $list[$i][href] = "./board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]{$comment_link}";
//  $list[$i][datetime] = $datetime;
  $list[$i][datetime2] = $datetime2;
//  $list[$i][gr_subject] = $row[gr_subject];
//  $list[$i][bo_subject] = $row[bo_subject];
  $list[$i][wr_subject] = $row2[wr_subject];
  $a[$i] = array(
   "wr_subject"=>get_text($list[$i][wr_subject]),
   "wr_subject_cut"=>get_text(cut_str($list[$i][wr_subject], $maxstr)),
   "wr_subject_href"=>$g4[bbs_path]."/board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]{$comment_link}",
   "wr_date"=>$datetime2
   );
 }
 return $a;
};
 
 
제가 생각했을 때 빨간색 부분을 어떻게 수정하면 될것 같다는 생각은 드는데 정확히 잘 모르겠습니다.
 
빨간색 부분을 수정하면 코맨트는 나오지 않도록 할수 있는게 아닌가요?
 
제가 처음부터 잘못 잡고 있었던 것은 아닌지 모르겠습니다.
 
혹 아시는 분이 있으시거나 해보신 분이 있으면 좀 가르쳐 주세요.
 
고맙습니다.
  • 복사

댓글 전체

예전 소스를 좀 간략히 정리해봤습니다. (코멘트수+원글로 출력됩니다.)
아래 소스를 extended 폴더에 my_new.php 로 저장한 후
<?php echo my_new("10", "20", "120px"); // "줄수", "글자수" ,"최대허용너비" ?> 로 출력하면 됩니다.
"줄수", "글자수", "최대허용너비" 는 뒤에서 부터 생략 가능하며 기본값은 10,20,"100%" 입니다.
밑에 부분의 <div></div> 부분을 이쁘게 꾸며서 사용하세요 ^^

<?php
function get_new($rowCnt, $maxStr)
{
        global $g4, $gr_id, $config;

        $maxRow = 100;
       
        $s = "
                select
                        a.*, b.bo_subject, c.gr_subject, c.gr_id
                from
                        $g4[board_new_table] a,
                        $g4[board_table] b,
                        $g4[group_table] c
                where
                        a.bo_table = b.bo_table
                        and b.gr_id = c.gr_id
                        and b.bo_use_search = '1'
                order by a.bn_id desc
                limit $maxRow
                ";

        $i = 0;
        $res = mysql_query($s);

        while ($row = mysql_fetch_array($res))
        {
                if ($i >= $rowCnt) break;
               
                if ($row[wr_id] == $row[wr_parent]) // 원글이라면
                {
                        $s = "
                                select wr_id, wr_subject, wr_comment, wr_datetime
                                from $g4[write_prefix]$row[bo_table]
                                where wr_id = '$row[wr_id]'
                                ";
                        $list[$i] = mysql_fetch_array(mysql_query($s));
                        $list[$i][commentCnt] = $list[$i][wr_comment];
                        $list[$i][subject] = cut_str(get_text($list[$i][wr_subject]), $maxStr);
                        $list[$i][href] = "$g4[bbs_path]/board.php?bo_table=$row[bo_table]&wr_id={$list[$i][wr_id]}";
                        $list[$i][title] = addslashes(get_text($list[$i][wr_subject])." / ".$list[$i][wr_datetime]);

                        $i++;
                }
        }
       
        return $list;
}

function my_new($rowCnt = 10, $maxStr = 20, $maxWidth = "100%") { global $g4; $list = get_new($rowCnt, $maxStr); ?>

<div style="padding:5px; border:1px solid lightgrey">
        <?php $n = count($list); for ($i = 0; $i < $n; $i++) { ?>
        <div style="width:<?php echo $maxWidth; ?>; text-overflow:ellipsis; overflow:hidden; white-space:nowrap">
                <a href="<?php echo $list[$i][href]; ?>" title="<?php echo $list[$i][title]; ?>">
                <span style="font-weight:normal;">
               
                <!-- 코멘트 수 -->
                <?php if ($list[$i][commentCnt]) { ?>
                <font color="tomato">(<?php echo $list[$i][commentCnt]; ?>)</font>
                <?php } ?>
                <!-- // 코멘트 수 -->
               
                <!-- 제목 -->
                <?php echo $list[$i][subject]; ?>
                <!-- // 제목 -->
               
                </span>
                </a>
        </div>
        <?php } ?>
</div>

<?php } ?>
태엽푸는새님 관심 가져주셔서 정말 고맙습니다.

님께서 알려주신대로 했더니 코맨트, 내용 출력이 잘됩니다.

근데 이상한 점이 있어 한가지 더 여쭙겠습니다.

다름이 아니라 에러가 출력이 되어서요.

Warning: Cannot modify header information - headers already sent by (output started at /home3/ismarketing/www/extend/my_new.php:74) in /home3/ism/www/head.sub.php on line 32

Warning: Cannot modify header information - headers already sent by (output started at /home3/ismarketing/www/extend/my_new.php:74) in /home3/ism/www/head.sub.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at /home3/ismarketing/www/extend/my_new.php:74) in /home3/ism/www/head.sub.php on line 35

Warning: Cannot modify header information - headers already sent by (output started at /home3/ismarketing/www/extend/my_new.php:74) in /home3/ism/www/head.sub.php on line 36

Warning: Cannot modify header information - headers already sent by (output started at /home3/ismarketing/www/extend/my_new.php:74) in /home3/ism/www/head.sub.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /home3/ismarketing/www/extend/my_new.php:74) in /home3/ism/www/head.sub.php on line 38

가르쳐 주신대로 했더니 위와 같은 에러메시지가 출력됩니다.

에러메시지에 해당하는 head.sub.php 입니다.

32: header("Content-Type: text/html; charset=$g4[charset]");
33: $gmnow = gmdate("D, d M Y H:i:s") . " GMT";
34: header("Expires: 0"); // rfc2616 - Section 14.21
35: header("Last-Modified: " . $gmnow);
36: header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
37: header("Cache-Control: pre-check=0, post-check=0, max-age=0"); // HTTP/1.1
38: header("Pragma: no-cache"); // HTTP/1.0

이렇게 수고스럽게 가르쳐 주셨는데 다시 여쭤봐서 죄송합니다.

혹 어찌된건지 아시면 가르쳐 주셨으면 합니다.

다시 한번 감사드립니다.
my_new.php 파일의 가장 윗줄(<?php)전에 출력문자(공백,개행,..)가 하나도 없어야 합니다.


  <?php
function get_new($rowCnt, $maxStr)

위 처럼 공백문자나 개행문자등이 하나라도 있으면 안됩니다.
태엽푸는새님 너무 너무 감사합니다.

제가 너무 실력이 없다보니 많이 귀찮게 해드리네요.

다시 태엽푸는새님 한번 관심과 자세한 설명에 감사하단 말 전합니다.

많은 분들의 도움을 이렇게 받을 수 있어 지금 너무 행복합니다.

즐거운 하루 보내시구요.

건강하시구요.
© SIRSOFT
현재 페이지 제일 처음으로