전체게시판 최근게시물 스크롤 스킨(그누보드 메인처럼 하기) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

전체게시판 최근게시물 스크롤 스킨(그누보드 메인처럼 하기) 정보

전체게시판 최근게시물 스크롤 스킨(그누보드 메인처럼 하기)

첨부파일

new_scroll_latest.lib.php (1.5K) 780회 다운로드 2006-01-03 00:02:11
latest.skin.php (6.4K) 218회 다운로드 2005-12-30 16:22:09

본문

그누보드 메인화면에 있는 최근게시물 스크롤 스킨 기능이 탐나서 급조해서 만들어봤습니다.

extend 디렉토리에 new_scroll_latest.lib.php 화일 저장하고

index.php 에서 include_once("./extend/new_scroll_latest.lib.php"); 추가해주시고

나중을 위해 skin/latest/scroll/latest.skin.php 백업한뒤 덮어씌우면 됩니다.

그런후에 index.php에서
<?=latest_scroll("scroll", 12, 70,"4,25");?> 과 같이 불러오면 완성됩니다.

궁금만땅님의 그룹상관없이 일부 몇 게시판에서만 모아서 최근게시물 추출 - 전광판용
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/1774
을 참고로 했습니다.

최근게시물의 뽑아오는 글 갯수를 쉽게 수정가능하도록 변경했습니다.(06-01-02)
이제 사용하는방법은 <?=latest_scroll("scroll", 뽑아오고싶은 글갯수, 70,"4,25");?> 입니다.

[그룹명/보드명] 제목 이 표현되도록 수정했습니다.
추천
6
  • 복사

댓글 43개

좋은 팁 감사합니다....^^

출력되는 글이 겹치는 부분이 보여서...

latest.skin.php 파일의 121번줄 부근의

$roll_text[$k] .= "<div style=\"height:{$height}px; padding-top:5px;\">"; 

이 부분을

$roll_text[$k] .= "<div style=\"height:{$height}px; padding-top:0px;\">";

이렇게 바꿔주니까 아주 잘 되는군요...
감사합니다...
최신글 뽑는 갯수가 12개 이상은 안뽑히는군요..

new_scroll_latest.lib.php 15번째 항에

$sql = " select a.*, c.gr_subject, c.gr_id
        from $g4[board_new_table] a, $g4[board_table] b,  $g4[group_table] c
where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and  a.wr_id = a.wr_parent
order by a.bn_id  desc limit 0, 12 ";

여기서  limit 0,12; 이 부분을 limit 0, $rows 이렇게 하는게 정상인것 같긴한데 계속 오류가나는군요..
초짜다 보니 여기서 막혀서.....
혹시 해결할 수 있는 방법이 있을까요??
bitmaster 님 거기는 걍 숫자로 필요한만큼 늘려주시면 됩니다...

<?=latest_scroll("scroll", 12, 70,"4,25");?> 이부분도 12부분을 같이 늘려주시구요...
숫자로 해도 마찬가지였습니다..
숫자로 해도 안되고, $rows 로 해도 안되고..
결국 일단 12로 해서 하고 있는데 어디서 잘못됬는지 도통 모르겠군요...
저만 그런건지....쩝
2006년 01월 2일 (월) 13시 47분 02초 이런식으로 시간뽑기코드입니다...
<? $my[time_Hms] = date("H시 i분 s초",time());  echo("$my[time_Hms]"); ?>을 아래로 대체...

-----------------------------------------------------------------------------------------------------
<?
$a = date ("Y년 m월 j일");
$today = date("w");

if($today == 0) $day = "(일)";
else if($today == 1) $day = "(월)";
else if($today == 2) $day = "(화)";
else if($today == 3) $day = "(수)";
else if($today == 4) $day = "(목)";
else if($today == 5) $day = "(금)";
else if($today == 6) $day = "(토)";

echo "$a $day";
?>&nbsp;
<? $my[time_Hms] = date("H시 i분 s초",time());  echo("$my[time_Hms]"); ?>
-----------------------------------------------------------------------------------------------------

여기서 질문합니다...
latest.skin.php의
-----------------------------------------------------------------------------------------------------
        $roll_text[$k] .= "[";
        $roll_text[$k] .= $list[$i][gr_subject];
        $roll_text[$k] .= "] ";
        $roll_text[$k] .= $list[$i][wr_subject];
-----------------------------------------------------------------------------------------------------

을 이렇게 바꿨는데...
-----------------------------------------------------------------------------------------------------
        $roll_text[$k] .= "[";
        $roll_text[$k] .= $list[$i][gr_subject];
        $roll_text[$k] .= "/";
        $roll_text[$k] .= $list[$i][bo_subject];
        $roll_text[$k] .= "] ";
        $roll_text[$k] .= $list[$i][wr_subject];
-----------------------------------------------------------------------------------------------------
$roll_text[$k] .= $list[$i][bo_table];은 잘나타나는데 $roll_text[$k] .= $list[$i][bo_subject];안먹네요...
new_scroll_latest.lib.php을 고쳐야 하나요???
[그룹명/보드명] 제목과 같이 표현이 되도록 new_scroll_latest.lib.php를 재 등록했습니다.

표시하는 방법은 이렇게 하면 되겠지요
        $roll_text[$k] .= "[";
        $roll_text[$k] .= $list[$i][gr_subject];
        $roll_text[$k] .= "/";
        $roll_text[$k] .= $list[$i][bo_subject];
        $roll_text[$k] .= "] ";
        $roll_text[$k] .= $list[$i][wr_subject];
휴일 동안 쉬는 사이에 여러댓글이 올라왔네요..

우선, bitmaster님 위의 자료는 12개의 최신글만 뽑아올 목적으로 만들다 보니, rows값을 12에 고정하고 limit값도 12로 픽스하였던 것인데요.
사용하는분께서 쉽게 변경할수 있도록 new_scroll_latest.lib.php를 재 등록했습니다.

이제 사용하는 방법은 <?=latest_scroll("scroll", 뽑아오고싶은 글갯수, 70,"4,25");?> 입니다.

그리고, 날짜와 요일은 빼고 시간만 출력하도록 한것은 제가 사용하는 홈페이지에는 날짜가 다른곳에 출력되어 빼넣었었는데 시그너스님의 팁을 이용하면 날짜와 요일까지 표시가 됩니다. 감사합니다.
좋은스킨 잘 쓰고 있는데요
잘 돌아가던 스킨이 오늘 내용이 안보여서 소스보기로 봤더니 아래 스크립트가

    var roll_height_<?=$uni?> = <?=$box_height?>;
    var total_area_<?=$uni?> = 0;
    var wait_flag_<?=$uni?> = true;
    var bMouseOver_<?=$uni?> = 1;
    var roll_speed_<?=$uni?> = 1;
    var waitingtime_<?=$uni?> = 3000;

이와 같이 보이던데 이렇게 소스로 보여서 안나오는 건가요??

    var roll_height_340358cbf0e97194a8a27d9b72b38d76 = 100;
    var total_area_340358cbf0e97194a8a27d9b72b38d76 = 0;
    var wait_flag_340358cbf0e97194a8a27d9b72b38d76 = true;
    var bMouseOver_340358cbf0e97194a8a27d9b72b38d76 = 1;
    var roll_speed_340358cbf0e97194a8a27d9b72b38d76 = 1;
    var waitingtime_340358cbf0e97194a8a27d9b72b38d76 = 3000;

아니면 한 게시판을 필드를 바꾸고 여분필드를 활용한 게시판이 생성되고 부터니까 그 게시판을 불러올 수 없어서 오류가 나는건지 인트라넷 홈쥐라 링크도 못걸구 답답하네요.....

혹시 특정게시판만 안 불러오게 할 수 있는지......
var roll_height_340358cbf0e97194a8a27d9b72b38d76 = 100; 이와같이 보이는 이유는 스킨 소스를 보시면 답이 나와있습니다.

유니크값 (최신글은 한페이지에 여러개 둘 수 있으므로... 자바스크립트에서 함수 충돌을 방지)을 랜덤으로 뽑아오는것입니다.

게시판 필드의 어떤 부분을 건들였는지 모르지만, 특정게시판을 안불러오게 하는방법은
new_scroll_latest.lib.php의 sql 구문에 빼고자하는 보드테이블명을 추가하시면 됩니다.
a.bo_table<>'빼고자하는보드테이블명1' and  a.bo_table<>'빼고자하는보드테이블명2' 이런식으로 추가해주면 됩니다.

$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id
            from $g4[board_new_table] a, $g4[board_table] b,  $g4[group_table] c
            where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and  a.wr_id = a.wr_parent
            order by a.bn_id desc limit 0,$rows";를 아래와 같이 수정하시면 됩니다.

$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id
            from $g4[board_new_table] a, $g4[board_table] b,  $g4[group_table] c
            where  a.bo_table<>'빼고자하는 보드테이블명을 입력' and a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and  a.wr_id = a.wr_parent
            order by a.bn_id desc limit 0,$rows";

도움이 되길 바랍니다.
아마도 최신글 제목부분에 ' ' " 가 들어가서 오류가 난듯합니다.

new_scroll_latest.lib.php에서
$list[$i][wr_subject] = cut_str($row2[wr_subject], $subject_len, "…"); 을

$list[$i][wr_subject] = cut_str(get_text($row2[wr_subject]), $subject_len, "…"); 으로 수정하시면 됩니다.
제목에 ' ' " " 이런 문자가 포함되어 있을경우 화면이 표시되지 않습니다.

new_scroll_latest.lib.php에서
$list[$i][wr_subject] = cut_str($row2[wr_subject], $subject_len, "…"); 을

$list[$i][wr_subject] = cut_str(get_text($row2[wr_subject]), $subject_len, "…"); 으로 수정하세요.
new_scroll_latest.lib.php에서
$list[$i][wr_subject] = cut_str($row2[wr_subject], $subject_len, "…"); 을

$list[$i][wr_subject] = cut_str(get_text($row2[wr_subject]), $subject_len, "…"); 으로 수정후

회원가입이나 회원정보 변경등에 오류가 나서 '', ""으로 시작되는 제목같은경우 그냥 수정해야 할것 같습니다.
아래 헐랭이님의 팁으로 보완했더니 잘 작동하네요.
헐랭이님팁이 있는 곳 주소는 http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=36555&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%BD%BA%C5%A9%B7%D1&sop=and&page=2

제가 도움받은 그 내용은 아래와 같습니다.
...........................................................

어제 오늘 글내용중에 ' 또는 " 라는 따옴표가 들어간 글이 있는지 확인하신후
따옴표가 들어간 글이 있다면 수정해 보세요.
그리고 따옴표기 들어간후 자바에러를 방지하는 방법은 스킨의 latest.skin.php 에서
뿌려줄 리스트 데이타를 addslashes 시켜주면 해결이 됩니다.

$k = (int)($i / $line_mod); <- 이라인 바로 아래에
아래의 코드를 추가합니다.

$list[$i][gr_subject] =addslashes($list[$i][gr_subject]);
$list[$i][bo_subject] =addslashes($list[$i][bo_subject]);
$list[$i][wr_subject] =addslashes($list[$i][wr_subject]);
© SIRSOFT
현재 페이지 제일 처음으로