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

그룹최신글 게시판설정에 의해 순서로 출력하는 방법

블레스 7년 전 조회 1,915

아래소스는 그누보드 그룹최신글 추출라이브러리입니다.

원하는 것은,

그룹최신글을 추출하면 최신순으로 출력되는데

이것을, 그룹에 속한 게시판의 최신글을 게시판속성(bo_order)에 따라 출력순서를 정할려고 합니다.

bo_order는 숫자로 되어 있으며, 이 숫자를 asc정렬로 우선순으로 출력하고자 합니다.

 

===========================================================



</strong></p>

<p>function latest_group_search($skin_dir="", $gr_id, $rows=10, $subject_len=40, $content_len=40, $order, $thumb_width, $thumb_height)

{

global $g5;</p>

<p>$s = explode(' ', strip_tags($order));

  for ($i=0; $i<count($s); $i++) {

  $search_str = $s[$i];

  if ($i == 0) { $search_or .= " and (INSTR(wr_subject, '$search_str'))"; }

  else { $search_or .= " or (INSTR(wr_subject, '$search_str'))"; }

 }</p>

<p>$list = array();

$limitrows = $rows;</p>

<p>$sql_gr = " select gr_subject, gr_10 from {$g5['group_table']} where gr_id = '$gr_id' ";

$gr = sql_fetch($sql_gr);

$gr_subject = $gr[gr_subject];

$gr_color = $gr[gr_10];</p>

<p>

$sqlgroup = " select bo_table, bo_subject, bo_order from {$g5['board_table']} where gr_id = '$gr_id' and bo_use_search = '1'  <span style="color:#ff0000">order by bo_order asc "; </span>

$rsgroup = sql_query($sqlgroup);</p>

<p>    if (!$skin_dir) $skin_dir = 'basic';

        $latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;

        $latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;

  $lib_thumb_width = $thumb_width; // 썸네일 넓이를 정의함

        $lib_thumb_height =  $thumb_height; // 썸네일 높이를 정의함</p>

<p>for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {

$bo_table = $rowgroup[bo_table];</p>

<p>

// 테이블 이름구함

$sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";

$board = sql_fetch($sql);

$tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름</p>

<p> </p>

<p>// 옵션에 따라 정렬

<span style="color:#0055ff">$sql3 = " select * from {$tmp_write_table} where wr_is_comment = 0 $search_or"; </span>

$sql3 .= " order by wr_id desc";

$sql3 .= " limit $limitrows";

$result3 = sql_query($sql3);</p>

<p> </p>

<p>for ($i=0; $row = sql_fetch_array($result3); $i++, $k++) {</p>

<p>if(!$orderby) $op_list[$k] = $row[wr_datetime];

else  {

$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);

$op_list[$k] .= $row[wr_datetime];

}</p>

<p>$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len);</p>

<p>$list[$k][bo_table] = $board[bo_table];

$list[$k][bo_subject] = $board[bo_subject];

$list[$k][bo_order] = $board[bo_order];</p>

<p>$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len);

}

}

if($k>0) array_multisort($op_list, SORT_DESC, $list);

if($k>$rows) array_splice($list, $rows);</p>

<p> ob_start();

    include $latest_skin_path.'/latest.skin.php';

    $content = ob_get_contents();

    ob_end_clean();</p>

<p>    return $content;

}</p>

<p><strong>

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

답변 1개

7년 전

root/index.php 에 있는 최신글 부분 확인해 보세요.

</strong></p>

<p><h2 class="sound_only">최신글</h2>

<!-- 최신글 시작 { -->

<?php

//  최신글

$sql = " select bo_table

            from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id)

            where a.bo_device <> 'mobile' ";

if(!$is_admin)

    $sql .= " and a.bo_use_cert = '' ";

$sql .= " order by b.gr_order, a.bo_order ";

$result = sql_query($sql);

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

    if ($i%2==1) $lt_style = "margin-left:20px";

    else $lt_style = "";

?>

    <div style="float:left;<?php echo $lt_style ?>">

        <?php

        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.

        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);

        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정

        echo latest("basic", $row['bo_table'], 5, 25);

        ?>

    </div>

<?php

}

?>

<!-- } 최신글 끝 --></p>

<p><strong>

 

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

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

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

로그인