크롬80버전 업데이트 영카트5 주요패치 확인! KCP/이니시스/LGU+ 결제 이슈 대응 패치입니다.

[재질문] 게시판 추출 할때 전체 게시판일경우 게시판 하나만하는법

[재질문] 게시판 추출 할때 전체 게시판일경우 게시판 하나만하는법

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

[재질문] 게시판 추출 할때 전체 게시판일경우 게시판 하나만하는법

본문

질문내용:

 

지금은 소스상 모든 게시판에서 추출해서 가져오는 듯하고 제가 원하는 건 

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

채택됨

MHfac님의 답변

 
<!-- 히트글 순위 --> 
<?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글자만 출력한다. 입니다.

 

주소복사
채택됨
답변의 댓글
wnsah6288님의 댓글
혹시 라이브러리는 끌어오긴 했다면 이미 등록되었기 때문에 다시 불러올 필요가 없고 중요한건 테마는 아무거나 상관이 없는건가요?? 저거 원본소스에는 테마 베이직 이라는게 없는데...

테마 자체가 준게 아니라 lib로만 작동하는거라 불가능해요 디자인이 안나와요
wnsah6288님의 댓글
알려주신대로도 해보고 다해봤지만 소용이 없네요... lib파일안에 순위 리스트 디자인이 그 파일안에 있어서 다른 걸로 끌어다가 쓸수가 없습니다 다른방법이 있어야될거 같습니다...
MHfac님의 댓글
말씀하신 출력부분은 lib파일에 있는게 아니고, 테마파일 스킨에서 적용됩니다.....
lib 파일은 DB쿼리 적용 후 data 출력 또는 기타 function의 모음이거나 class 파일입니다.
따라서 일반적으로 외부출력 자체를 가지고 있지는 않습니다.
기능자체가 data 가공이 목적입니다. html 파싱이 목적이 아닙니다..
데이터 가공 후 출력은 skin 에서 처리합니다. 따라서 다른 디자인을 원하신다면
원하시는 skin을 제작 후 적용하시면 , lib에 적용해서 출력 됩니다.

* 적용방법 *
1. theme/about 이나 theme/menu 중 하나를 복사해서 theme/새로운스킨 으로 만드세요.
    (만약 복사할 스킨이 리스팅 출력의 목적에 맞지않다면,
    목적에 맞는 비슷한 스킨을 복사하시거나 제작 하세요.)
2. theme/새로운스킨 을 적용하세요.(외형적인 모양은 외부 스킨에서 적용합니다.)

위 내용을 이해하지 못하신다면 "제작의뢰" 게시판에 의뢰 하시는게 맞습니다.
답변을 작성하시기 전에 로그인 해주세요.
전체 83,962 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT