[재질문] 두 게시판의 조회수 높은 글을 하나의 latest skin으로 보여주기. > 그누3질답

그누3질답

[재질문] 두 게시판의 조회수 높은 글을 하나의 latest skin으로 보여주기. 정보

[재질문] 두 게시판의 조회수 높은 글을 하나의 latest skin으로 보여주기.

본문

그제 질문을 드려서 답변을 받았는데, 다른 곳에서 막혀서 다시 질문합니다.
 
내용은 2개의 갤러리 게시판에서 조회수 높은 글들을 latest skin으로 뿌려주는 작업을 하고
있습니다.
 
latest.lib.php에서 latest를 복사하여 약간의 수정을 하여 두개의 게시판에서 조회수 높은
값을 가져오는 것을 만들었습니다.
 
쿼리에서 가져온 나용을 get_list 함수를 사용하여 정렬. 출력해야 하는데, get_list 함수의
인자값에서 보드명($board)을 받아서 처리하네요.
 
이럴 경우 첫번째 보드명만 가져가기 때문에 제대로는 두번째 갤러리 이미지의 링크(뷰페이지)가 무조건 첫번째 갤러리 이미지의 링크(뷰페이지)로 걸리는 현상이 발생합니다.
 
해결 방법은 있을 것 같은데 프로그램 초짜라 잘 모르겠네요..
도와주세요 ^^;
 
function latestImg($skin_dir="", $bo_table01, $bo_table02, $rows=10, $subject_len=40, $options="")
{
    global $g4;
    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/basic";
    $list = array();
    $sql = " select * from $g4[board_table] where bo_table = '$bo_table01' OR bo_table = '$bo_table02'"; // 두개의 게시판 명을 가져옴
    $board = sql_fetch($sql);
    $tmp_write_table01 = $g4['write_prefix'] . $bo_table01; // 게시판 테이블 전체이름
    $tmp_write_table02 = $g4['write_prefix'] . $bo_table02; // 게시판 테이블 전체이름
    $sql = "SELECT * FROM $tmp_write_table01 UNION ALL SELECT * FROM $tmp_write_table02 ORDER BY $options DESC LIMIT 0, $rows";
    //explain($sql);
    $result = sql_query($sql);
    for ($i=0; $row = sql_fetch_array($result); $i++)
        $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
        usort( $list, 'hitcmp');
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();
    return $content;

}
function hitcmp( $a, $b) {
    return intval( $b) - intval( $a); // DESC
}
 
이렇게 수정하고 불러오는 것은
 
      <? echo latestImg("new_img", "charge", "nocharge", 5, 20, "wr_hit"); ?>
 
로 사용하였습니다.
 
그냥 게시판을 분류로 나누어 사용해도 되나, 각각 다른 head 파일을 include 시키고, 상단 코딩부도 다르게 입력이 되어 그냥 깔끔하게 위 코드에서 수정하여 사용하려 합니다.
 
고수님들의 답변 부탁드립니다.
  • 복사

댓글 전체

© SIRSOFT
현재 페이지 제일 처음으로