전체 최신글 > 그누4 스킨

그누4 스킨

스킨의 저작권은 해당 스킨 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
스킨 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y
그누보드와 관련이 있지만 스킨과 빌더가 아니면 플러그인 게시판에 올려주세요.

전체 최신글 정보

최신글 전체 최신글

첨부파일

전체_최신글.zip (21.5K) 1350회 다운로드 2008-12-18 21:09:51

본문

압축해제하시면 lib 폴더와 skin 폴더가 있습니다.
lib 폴더에는 fixing.lib.php 와 new.lib.php 파일 2개가 있으며
skin 폴더에는 board_new 폴더가 있고 그안에 basic 폴더가 있습니다.


[설치]
압축해제후 그누 폴더에 그대로 업로드 하신후 new.lib.php 파일을 인클루드 하세요.

include_once("$g4[path]/lib/new.lib.php ");


fixing.lib.php 파일을 적용하신분은 중간생략하셔도 됩니다.

common.php 파일 350줄 근처로 보시고 아래와 같이 수정하세요.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 보드 설정값을 불러 저장
include_once("$g4[path]/lib/fixing.lib.php");

if (isset($bo_table)) {
    //$board = sql_fetch(" select * from {$g4['board_table']} where bo_table = '$bo_table' ");
 $num = $g4_board[num][$bo_table];
 $board = $g4_board[$num];
    if ($board['bo_table']) {
        $gr_id = $board['gr_id'];
        $write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
        //$comment_table = $g4['write_prefix'] . $bo_table . $g4['comment_suffix']; // 코멘트 테이블 전체이름
        if ($wr_id)
            $write = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
    }
}

if (isset($gr_id)){
    //$group = sql_fetch(" select * from {$g4['group_table']} where gr_id = '$gr_id' ");
 $num = $g4_group[num][$gr_id];
 $group = $g4_group[$num];
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

위내용에서 실질적으로는 include_once("$g4[path]/lib/fixing.lib.php"); 만있으면됩니다.
그외 내용은 fixing.lib.php 파일에서 저장한 내용을 디비에서 다시 불러들이는 내용이여서 위와 같이 수정하시면 쿼리를 줄일수 있습니다.
그외 latest.lib.php 파일의 수정은 아래 소스를 붙여 넣기 하세요.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<?
if (!defined('_GNUBOARD_')) exit;

// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
    global $g4, $g4_board;

    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_table'";
    //$board = sql_fetch($sql);
    $num = $g4_board[num][$bo_table];
    $board = $g4_board[$num];

    $tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
    //$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
    // 위의 코드 보다 속도가 빠름
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num 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);
   
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
latest.lib.php 파일 또한 수정을 안해도 됩니다.
수정하신경우 다량으로 최신글이 불러지는 페이지에서 불러진최신글의 수만큼 쿼리수가 줄어듭니다.


함수 호출은 head.php 파일 에서 원하시는 위치에서 <?=boardnew("타이틀", "스킨명", 목록수, 제목길이)?> 를 적어주시면 됩니다.


[기능]
1. 전체 최신글 보기
2. 회원 레벨보다 게시판 목록보기 레벨이 높으면 가져오지 않음.
3. 그외 latest 스킨과 동일
추천
22

댓글 전체

그부분은 생각못했는데..ㅠ.ㅜ
현제는 회원이라면 회원레벨보다 목록보기 권한이 높은 게시판은 불러오지 않습니다.
비회원의 경우 레벨1입니다.
전체 댓글만 뽑으려면 어디를 고쳐서 이용을 해야할까요?
메인페이지에 전체글과 전체댓글 세트로 이용을 하고 싶은데요... 초보라 봐도 모르겠다는..
좋은자료 감사드립니다~~~
회원 레벨보다 게시판 목록보기 레벨이 높으면 가져오지 않음.
이걸 해제하고 일단 전체 전부 출력되게 하려면 어떻게 해야할지..
질문있는데요. bo_table 의 아이디를 가져오지 않고 직접 글의 아이디 즉 wr_id 를 가져오네요. 그대로 수정없이 올린 건데요...
어떤 파일을 어떤 폴더에 올려야 하는지 모르겠습니다.

latest 폴더인지 new 폴더인지...두 군데 다 올려도

Fatal error: Call to undefined function boardnew() in 오류만 나네요 ㅜㅜ
해결했습니다. ㅡ,.ㅡ; 이거 저같이 머리나쁜 사람은 정말 고생하겠습니다.

8시간만에 풀었습니다.

1. 우선 lib 파일들은 그대로 그누보드의 lib 폴더에 올린다.

2. 루트의 common.php 파일과 lib 폴더의 latest.lib.php 파일을 위의 설명대로 수정한다.

3. 불러올 페이지의 상단에 include_once("$g4[path]/lib/new.lib.php "); 를 인클루드 한다.

4. 첨부파일의 압축을 해제하면 나오는 board_new 폴더를 (안에 basic폴더가 있는 상태로)

skin 폴더에 그냥 업로드 한다.

skin 폴더의 new나 latest등의 특정 하위폴더에 넣는게 아니라

skin 에 board_new 폴더를 그냥 업로드 하면 됩니다.
저도 좀 버벅댄 끝에 설치했네요..
이치타카님의 설명대로 하신 다음에
마지막에 적용할때 (저같은 경우 index.php에 적용)
<?=boardnew("yo", "basic", 8, 20)?>  이런식으로 적으시면 됩니다 
 맨 앞에 타이틀은 아무거나 붙이셔도 상관없습니다... 예제 스샷에 NEW write라고 적혀있는 부분에 들어갈 문구입니다...  그런데 파일을 그대로 올릴경우에 두번째 자리에 반드시 "basic"을 입력하셔야 합니다 
그렇지 않을경우 boardnew() 가 정의되지 않았다는둥 new.lib.php를 못찾겠다는둥 에러가 뜹니다
제목이나 코멘트를 클릭하면 존재하지않는 게시판이라고 나옵니다.
소스를 봤더니 링크된 부분에 <a href='./bbs/board.php?bo_table=&wr_id=...  '>로 되어있습니다.
bo_table= 다음에 테이블명이 나와서 링크 되야되는데 그렇지 않아서 없는 게시판이라고 나오는 것 같습니다.
어느부분을 어떻게 수정해야 되는건지요? (php는 전혀모르는 그냥 디자이너랍니다. ^^;;;;)

그리고 날짜까지는 출력이 되는데 테이블명이 출력되지 않더라구요.
적용된 사이트는 www.enjoyaqua.com 입니다. 도와주세효~~ ^_______^
항상 도움받고 있는데 링크가 걸리지 않아  맘데로 고쳐봤느데 작동되더라구요.
맞는지는 모르겠지만 도움이되신다면..

new.lib.php

$bo_new[count] = $i;
for($i=0; $i<count($new_bo); $i++){
//배열에서 이름 찾기
$board = $g4_board[$g4_board['num'][$new_bo[$i]]];
$tmp_write_table = $g4['write_prefix'] . $new_bo[$i];
$sql = " select * from $tmp_write_table where wr_id in ( {$new_in[$new_bo[$i]]} ) ";
$result = sql_query($sql);
for ($q=0; $row = sql_fetch_array($result); $q++) {
$num = $new[$new_bo[$i]][$row['wr_id']];
//$num = $new[$board[$i]][$row['wr_id']];
$list[$num] = get_list($row, $board, $new_skin_path, $subject_len);
$list[$num][new_board] = $board[bo_subject];

// 아래부분 수정 ------------------------------------------------------------
$list[$num][new_href] = "{$g4[bbs_path]}/board.php?bo_table={$new_bo[$i]}&wr_id={$row[wr_id]}";

}
}


그리고 최근 스킨에 링크부분을 아래와 같이 수정하니 링크가 걸렸습니다.

 //  echo "<a href='{$list[$i]['href']}'>";
      echo "<a href='{$list[$i]['new_href']}'>";
제가 에러나서 왜 계속 에러나는가 했더니
위에 게시물 중
include_once("$g4[path]/lib/new.lib.php ");
요것을 복사했는데
php 와 " 사이에 빈칸이 생겨서였습니다;;
include_once("$g4[path]/lib/new.lib.php");
요렇게 빈칸없이 복사해서 쓰세용.

리닉스님 스킨 이뻐요 굿~
fixing.lib.php 파일을 적용하신분은 중간생략하셔도 됩니다.
common.php 파일 350줄 근처로 보시고 아래와 같이 수정하세요.
////////////////////////////////////////////////////

fixing.lib.php 파일 불러오시면 common.php 파일 수정 안하셔도 돼요

<? include_once("$g4[path]/lib/fixing.lib.php "); ?>
잘 사용하고 있습니다. 감사합니다.
게시판 설정에서 [검색사용]을 하지 않는 게시판은 제외시키기 위해서
fixing.lib.php 파일을 수정하였습니다.
----------------------------------------------
//if($member[mb_level] < 10)
//    $g4_board_where = " where bo_list_level <= '$member[mb_level]'";
// 검색 비사용 게시판은 제외하기 위해 bo_use_search = '1' 추가하여 수정
if($member[mb_level] < 10) {
    $g4_board_where = " where bo_list_level <= '$member[mb_level]' and bo_use_search = '1' ";
} else {
    $g4_board_where = " where bo_use_search = '1' ";
}
$g4_board_sql = " select $g4_board_select from $g4[board_table] $g4_board_where order by bo_order_search, gr_id, bo_table ";
----------------------------------------------
문제가 있을지는 모르겠지만 아직까진 괜찮네요.
전체 5,853 |RSS
그누4 스킨 내용 검색

회원로그인

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