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

최신글 공지체크한 것만 불러오기 채택완료

승승이 7개월 전 조회 2,799

https://www.happyjung.com/lecture/2117

참고해서 그룹을 최신글로 가져왔습니다.

 

메인에

</p>

<p><?php

include_once(G5_LIB_PATH."/latest_group.lib.php");

 echo latest_group2("gallery", "product", 999, 999, 999,"","","");

?></p>

<p>

 

 

latest_group.lib.php는

</p>

<p><?php

if (!defined('_GNUBOARD_')) exit;

@include_once(G5_LIB_PATH.'/thumbnail.lib.php');</p>

<p>function latest_group2($skin_dir="", $gr_id, $rows=10, $subject_len=40, $contents_len=200, $options="", $category="", $orderby="") { 

    global $config; 

    global $g5; 

    

    $list = array(); 

    $limitrows = $rows; 

    

    $sql_groupname = " select gr_subject from {$g5['group_table']} where gr_id='{$gr_id}' ";

    $rowgroup = sql_fetch_array(sql_query($sql_groupname));

    $gr_subject = $rowgroup['gr_subject']; 

    

    $sqlgroup = " select bo_table, bo_subject from {$g5['board_table']} where gr_id='{$gr_id}' and bo_use_search=1 ";

    $rsgroup = sql_query($sqlgroup); 

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

<p>    // 아미나빌더인가요?

    $field_query = "SHOW COLUMNS FROM {$g5['config_table']} WHERE `Field` = 'as_thema';";

    $field_row = sql_fetch( $field_query );

    if($field_row['Field']) { // 아미나빌더가 있으면

        $g5_builder = "amina";

    }

    

    if ($g5_builder == "amina") {

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

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

    } else {

        if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {

            if (G5_IS_MOBILE) {

                $latest_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

                if(!is_dir($latest_skin_path))

                    $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

                $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);

            } else {

                $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

                $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);

            }

            $skin_dir = $match[1];

        } else {

            if(G5_IS_MOBILE) {

                $latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;

                $latest_skin_url  = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;

            } else {

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

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

            }

        }

    }

    

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

        $bo_table = $rowgroup['bo_table'];

        

        // 테이블 이름구함

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

        $board = sql_fetch($sql);

        

        $tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 실제이름

        

        $subqry = "";

        

        // 답변글 출력제외 

        //$subqry = "&& wr_reply = ''";

        

        // 공지사항 출력제외 

        $arr_notice = preg_replace("/\n/",',', trim($board['bo_notice']));

        if($arr_notice) {

            $subqry = $subqry." && wr_id Not in ({$arr_notice}) ";

        }

        

        // 옵션에 따라 정렬

        $sql = "select * from {$tmp_write_table} where wr_is_comment = 0 ";

        $sql .= (!$category) ? "" : " and ca_name = '{$category}' ";

        $sql .= $subqry;

        $sql .= (!$orderby) ? "  order by wr_datetime desc " : "  order by {$orderby} desc, wr_datetime desc ";

        $sql .= " limit ".$limitrows."";

        $result = sql_query($sql);

        

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

            

            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'];

                $op_list[$k] .= $row['wr_name'];

            }

            

            $list[$k] = get_list($row, $board, $latest_skin_path, $subject_len, $wr_name, $wr_10);

            

            $list[$k]['bo_table'] = $board['bo_table'];

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

            $list[$k]['wr_name'] = $board['wr_name'];

            

            $list[$k]['bo_wr_subject'] = cut_str($board['bo_subject'] . $list[$k]['wr_subject'], $subject_len, $wr_name, $wr_10);

        }

    }

    

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

    if($k>$rows) array_splice($list, $rows);

    

    ob_start();

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

    $content = ob_get_contents();

    ob_end_clean();

    return $content;

}</p>

<p>

 

게시글 작성시 공지에 체크한 글만 최신글로 불러오고 싶습니다.

https://sir.kr/bbs/search.php?q=%EC%B5%9C%EC%8B%A0%EA%B8%80+%EA%B3%B5%EC%A7%80%EB%A7%8C

대부분의 방법으로 시도해 봤는데 안되네요..

 

어느부분을 어떻게 해야 할까요 ㅠ

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

답변 1개

채택된 답변
+20 포인트
플라이
7개월 전
        // 공지사항 출력 
        $arr_notice = preg_replace("/\n/",',', trim($board['bo_notice']));
        if($arr_notice) {
            $subqry = $subqry." && wr_id in ({$arr_notice}) ";
        }

이 부분을 이렇게 변경하시면 공지사항만 노출됩니다.
로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

승승이
7개월 전
// 공지사항 출력제외
$arr_notice = preg_replace("/\n/",',', trim($board['bo_notice']));
if($arr_notice) {
$subqry = $subqry." && wr_id Not in ({$arr_notice}) ";
}
일때도 공지사항 제외 안되고 모두 출력되었었습니다.

Not를 지워도 공지글 일반글 모두 출력되네요...
플라이
7개월 전
그건 위에 캐시 파일이 남아서 그렇습니다.
캐시파일 지우시고 확인해 보세요
승승이
7개월 전
해당부분은 수정을 해도 안되네요..다른곳이 문제 인듯 합니다ㅠ;
플라이
7개월 전
// 옵션에 따라 정렬
$sql = "select * from {$tmp_write_table} where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '{$category}' ";
$sql .= $subqry;
$sql .= (!$orderby) ? " order by wr_datetime desc " : " order by {$orderby} desc, wr_datetime desc ";
$sql .= " limit ".$limitrows."";
$result = sql_query($sql);

해당 쿼리에 $sql을 찍어 확인해서 쿼링을 하면서 커스텀을 해야 할듯 합니다.

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

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

로그인