최근게시물 랜덤 노출 그누5

최근게시물 랜덤 노출 그누5

QA

최근게시물 랜덤 노출 그누5

본문

그누5에서 최근게시물을 불러올떄,  랜덤으로 보이게 하려면 어떻게해야하나요?

다른 최근게시물은 정상적으로 나오고, 아래 해당하는 최근게시물 스킨에서만 랜덤으로 보이게하고싶어요.

 

<?php echo latest("side_latest_main", "job, 5, 15, 6);​ //(스킨명, 게시판명, 출력갯수, 제목길이, wr) ?>

 

이 질문에 댓글 쓰기 :

답변 2


//./lib/latest/lib.php
// 최신글 추출
// $cache_time 캐시 갱신시간
// 이것보다 구체적으로 알려드리면.. 아예 만들어드리는거와 같습니다... 좀 공부를 하시고 하셔야..
// [여기변경]이 함수이름입니다. 이 전체 부분을 복사해서 하단에 추가를 해줍니다. 그리고 변경을합니다.
// 제일 하단쯤에 주석처리해둔 쿼리문이 최신글을 가져오는 쿼리입니다. 그 부분을
// 랜덤으로 가져오는 쿼리로 변경을 해주셔야합니다.
// 그리고 <?php echo 여기변경("side_latest_main", "job, 5, 15, 6);​ //(스킨명, 게시판명, 출력갯수, 제목길이, wr) ?>
// 위 부분에서 latest를 여기변경으로 변경해주시면됩니다.
function 여기변경($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='')
{
    global $g5;
 
    if (!$skin_dir) $skin_dir = 'basic';
 
    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;
        }
    }
 
    $cache_fwrite = false;
    if(G5_USE_CACHE) {
        $cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}.php";
 
        if(!file_exists($cache_file)) {
            $cache_fwrite = true;
        } else {
            if($cache_time > 0) {
                $filetime = filemtime($cache_file);
                if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {
                    @unlink($cache_file);
                    $cache_fwrite = true;
                }
            }
 
            if(!$cache_fwrite)
                include($cache_file);
        }
    }
 
    if(!G5_USE_CACHE || $cache_fwrite) {
        $list = array();
 
        $sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";
        $board = sql_fetch($sql);
        $bo_subject = get_text($board['bo_subject']);
 
        $tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
        $sql = " select * from {$tmp_write_table} where wr_is_comment = 0 order by wr_num limit 0, {$rows} ";//여기 쿼리 변경
        $result = sql_query($sql);
        for ($i=0; $row = sql_fetch_array($result); $i++) {
            $list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);
        }
 
        if($cache_fwrite) {
            $handle = fopen($cache_file, 'w');
            $cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".$bo_subject."';\n\$list=".var_export($list, true)."?>";
            fwrite($handle, $cache_content);
            fclose($handle);
        }
    }
 
    ob_start();
    include $latest_skin_path.'/latest.skin.php';
    $content = ob_get_contents();
    ob_end_clean();
 
    return $content;
}
./lib/latest.lib.php 에 함수를 하나 더추가하셔서 latest 를 latest_2 이런식으로 하셔서 sql 결과값을 랜덤으로 나오게 하시면 됩니다~
답변을 작성하시기 전에 로그인 해주세요.
전체 228
QA 내용 검색

회원로그인

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