[재질문] 게시판 추출 할때 전체 게시판일경우 게시판 하나만하는법
본문
질문내용:
지금은 소스상 모든 게시판에서 추출해서 가져오는 듯하고 제가 원하는 건
test 라는 게시판 하나만 리스트에 띄우고 싶습니다....
제가 참고한 소스 입니다.
lib/latest_popular.lib.php 파일 입니다.
<?php
if (!defined('_GNUBOARD_')) exit;
// 인기글 추출
// $cache_time 캐시 갱신시간
function latest_popular($bo_table, $rows=10, $subject_len=40, $term='', $options='')
{
global $g5;
switch($term){
case '일간': $term_time = date("Y-m-d H:i:s", G5_SERVER_TIME-3600*24); break;
case '주간': $term_time = date("Y-m-d H:i:s", G5_SERVER_TIME-3600*24*7); break;
case '월간': $term_time = date("Y-m-d H:i:s", G5_SERVER_TIME-3600*24*30); break;
}
$list = array();
if($bo_table){ //각 게시판 출력
$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_between = " wr_datetime between '$term_time' and '".G5_TIME_YMDHIS."' ";
$sql = " select * from {$tmp_write_table} where wr_is_comment = 0 and {$sql_between} order by {$options} 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);
}
}else{ //전체 게시판 출력
$sql_between = " a.bn_datetime between '$term_time' and '".G5_TIME_YMDHIS."' ";
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b where a.bo_table = b.bo_table and b.bo_use_search = 1 and a.wr_id = a.wr_parent and {$sql_between} ";
$sql_order = " order by a.bn_datetime desc ";
$sql = " select a.*, count(b.bo_subject) as cnt {$sql_common} {$sql_order} limit 0, {$rows} ";
$row = sql_fetch($sql);
if($row['cnt'] > 0){
$sql = " select a.*, b.bo_subject {$sql_common} {$sql_order} limit 0, {$rows} ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++){
$tmp_write_table = $g5['write_prefix'].$row['bo_table'];
$bo_table = $row['bo_table'];
if($i > 0)
$sql2 .= " union ";
$sql2 .= "(select '{$bo_table}' as bo_table, wr_id, wr_subject, wr_hit, wr_good from {$tmp_write_table} where wr_datetime between '{$term_time}' and '".G5_TIME_YMDHIS."') ";
}
$sql2 .= " order by ".$options." limit 0, 10";
$result2 = sql_query($sql2);
for ($i=0; $row2 = sql_fetch_array($result2); $i++){
$list[$i]['href'] = G5_BBS_URL.'/board.php?bo_table='.$row2['bo_table'].'&wr_id='.$row2['wr_id'];
$list[$i]['subject'] = $row2['wr_subject'];
}
}
}
ob_start();
?>
<div class="tab">
<input type="radio" name="css-tabs" id="tab-1" checked class="tab-switch">
<label for="tab-1" class="tab-label" href="#" jquery16408452460570924265=1>일간 조회수</label>
<div class="tab-content"><?php echo latest_popular($bo_table, 10, 40, '일간', 'wr_hit desc'); ?></div>
</div>
<div class="tab">
<input type="radio" name="css-tabs" id="tab-2" class="tab-switch">
<label for="tab-2" class="tab-label" href="#" jquery16408452460570924265=2>일간 추천수</label>
<div class="tab-content"><?php echo latest_popular($bo_table, 10, 40, '일간', 'wr_good desc'); ?></div>
</div>
<div class="tab">
<input type="radio" name="css-tabs" id="tab-3" class="tab-switch">
<label for="tab-3" class="tab-label" href="#" jquery16408452460570924265=3>주간 조회수</label>
<div class="tab-content"><?php echo latest_popular($bo_table, 10, 40, '주간', 'wr_hit desc'); ?></div>
</div>
<div class="tab">
<input type="radio" name="css-tabs" id="tab-4" class="tab-switch">
<label for="tab-4" class="tab-label" href="#" jquery16408452460570924265=4>주간 추천수</label>
<div class="tab-content"><?php echo latest_popular($bo_table, 10, 40, '주간', 'wr_good desc'); ?></div>
</div>
-------------------------------------------------------------------------------------------------
theme/test/mobile/index.php
바로 밑에 보이는게 불러오는 부분입니다. "히트글 순위" 저부분이 제가 불러온 부분입니다.
<!-- 히트글 순위 -->
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
include_once(G5_LIB_PATH.'/latest_popular.lib.php');
?>
<!-- 배너 최신글 -->
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('theme/about', 'about', 1, 33);
?>
<!-- a메뉴 최신글 -->
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('theme/menu', 'free', 12, 33);
?>
답변 1
<!-- 히트글 순위 -->
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
include_once(G5_LIB_PATH.'/latest_popular.lib.php');
?>
코드 지우시고
<?
// latest(테마명,게시판고유명,출력하소싶은 줄수, 해당줄당 끊고싶은 글자수);
echo latest('theme/basic', 'test', 1, 33);
?>
위 설명대로 바꿔 처리하세요.
이미 /latest_popular.lib.php 라이브러리 끌어온 상태일껍니다. 중복등록 필요없구요,
latest('theme/basic', 'test', 1, 33); 문구 자체가 하나의 게시판만 끌어오는겁니다.
해석하면, 테마/베이직으로 test 게시판을 1줄 가져오고 33글자만 출력한다. 입니다.
!-->!-->