최근게시물 추출 ⓒⓒⓒ//님의 것 수정 보완 *^^* 정보
HTML 최근게시물 추출 ⓒⓒⓒ//님의 것 수정 보완 *^^*
본문
처음에는 실수를 많이 했습니다.... 이유는 경로상의 문제이죠....저의 경우는 그누보드가 폴더 안으로 들어가지 않고 (http://www.......com/gnu_board/manage/install.php) 계정에 인스톨을 했습니다.(http://www.......com/manage/install.php) 그리고 게시판 스킨 폴더와 최근 게시물 폴더를 나눠었습니다. 최근 게시물 폴더를 skin 폴더 에 넣지 않고 list_skin이란 폴더를 별도로 만들어서 같은 라인에 위치 하였습니다...
http://www.......com/manage
/skin
/list_skin
/data
이러한 형태이죠.....그러기 위해서 config.inc.php파일을 좀 손 봤죠....
$cfg[dir_skin] = "skin";
$cfg[list_skin] = "list_skin"; <============ 요놈을 첨가 시켰습니다....
test.php스크린 샷의 최근 게시물을 뽑는 문서의 예제는 아래의 소스입니다.......##################
<?
require_once "./lib.inc.php";
require_once "./userlib.inc.php";
?>
<table width=100%><tr>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
</tr>
<tr>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
</tr>
<tr>
<td valign=top colspan=2><? echo newlist("photo_list","album", "포토게시판", 5, 25); ?></td>
</tr>
</table>
userlib.inc.php의 내용입니다....######################
<?
// 최신글 추출
function newlist($skins, $bo_table, $subject, $rows, $subjectlen='')
{
global $cfg;
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bd = sql_fetch_array($sql);
if ($subjectlen == '') $subjectlen = $bd[bo_subject_len];
$cfg[board_table_prefix] = "gb_write_"; // 게시판 테이블의 접두사
$cfg[url] = "http://www.ibokzi.com"; // 개인설정그누보드 경로에 맞게수정하세요
$skindir = "$cfg[url]/$cfg[list_skin]/$skins";
$skinimg = "$skindir/images"; // 이미지파일을 images폴더에 넣는걸 기본으로했습니다.
$filedir = "$cfg[url]/data/file"; //파일디렉토리
include "./$cfg[list_skin]/$skins/newlist_head.skin.php"; // Head 출력부분입니다. 글만 출력시는 주석처리하시면됩니다.
$table = "{$cfg[board_table_prefix]}{$bo_table}";
$result = sql_query_error(" select * from $table where wr_comment = 0 order by wr_id desc limit {$rows} ");
for ($i = 0; $row = mysql_fetch_array($result); $i++) {
$wr_subject = get_text(cut_str($row[wr_subject], $subjectlen, '…'));
$wr_content = get_text(cut_str($row[wr_content], 60, '…')); // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_memo = $row[wr_content]; // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_id = $row[wr_id]; // 게시판번호
$wr_name = $row[wr_name]; // 게시자이름 혹 최신글에 이름출력을 위해 변수선언했습니다.
$wr_datetime = $row[wr_datetime]; // 최신글에 날짜까지 출력하고싶을때를 위해 변수선언했습니다.
$wr_commentcnt = $row[wr_commentcnt];
if(0<$wr_commentcnt != ""){
$wr_commentcnt = "($wr_commentcnt)";
}else{
$wr_commentcnt = "";
}
$image = $row[wr_file1]; // 이미지를 뽑을 때 사용
if(0<$image != ""){
$image = "<img src=$filedir/$image height=35 width=35 border=1>";
}else{
$image = "<img src=$filedir/noimage.gif height=35 width=35 border=1>";
}
$icon = $row[wr_icon]; // 아이콘을 뽑을때 사용
if(0<$icon != ""){
$icon = "<img src=$skindir/icon/icon_$icon.gif height=35 width=35 border=1>";
}else{
$icon = "";
}
$mb_icon = $mb_id = ""; // 멤버 아이콘을 뽑을 때 사용
if ($row[mb_id]) {
$sql2 = " select mb_icon from gb_member where mb_id = '$row[mb_id]' ";
$row2 = sql_fetch_array($sql2);
if ($row2[mb_icon])
$mb_icon = "<img src='./$cfg[dir_member]/$row2[mb_icon]' align=absmiddle'>";
}
$ca_name = $wr_id = ""; // 분류를 뽑을 때 사용
if ($row[wr_id]) {
$sql1 = " select ca_name from {$table}_cat where ca_id = '$row[ca_id]'";
$row1 = sql_fetch_array($sql1);
if ($row1[ca_name])
$ca_name = "[$row1[ca_name]]";
}
$icon_file = "";
if ($row[wr_file1] || $row[wr_file2])
$icon_file = "<img src='$skinimg/icon_file.gif' align=absmiddle>";
$icon_link = "";
if ($row[wr_link1] || $row[wr_link2])
$icon_link = "<img src='$skinimg/icon_link.gif' align=absmiddle>";
$a_list_link = "<a href='$cfg[url]/gbview.php?bo_table=$bo_table&wr_id=$row[wr_id]' class=s_a>";
$icon_new = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bd[bo_new] * 3600))
$icon_new = "<img src='$skinimg/icon_new.gif' align=absmiddle'>";
$icon_hot = "";
if ($row[wr_hit] >= $bd[bo_hot])
$icon_hot = "<img src='$skinimg/icon_hot.gif' align=absmiddle'>";
$icon_battle = "";
if ($row[wr_commentcnt] >= $bd[bo_battle])
$icon_battle = "<img src='$skinimg/icon_battle.gif' align=absmiddle'>";
$icon_secret = "";
if ($row[wr_secret])
$icon_secret = "<img src='$skinimg/icon_secret.gif' align=absmiddle'>";
include "./$cfg[list_skin]/$skins/newlist_main.skin.php";
}
mysql_free_result($result);
}
?>
제가 실패 했던 경우를 설명합니다....###########################
최근 게시물을 나타내는 소스의 경로 문제 처음에 아래와 같이 했습니다...
http://www.......com--[manage]
--[skin]
--[list_skin]--[photo_list]
-- test.php
--[data]
-- userlib.inc.php
그런데 에러만 쥘쥘쥘 나더군요...... 그래서 아래와 같이 했습니다....
http://www.......com--[manage]
--[skin]
--[list_skin]--[photo_list]
--[data]
-- userlib.inc.php
-- test.php
그렇게 했더니 에러가 그치더군요.....
이젠 게시판 스킨과 최근 게시물 스킨이 독립할 때가 되었습니다... 왜냐하면 넘 복잡해졌거든요....
좋은 글들 그리고 스킨들 많이 기대하겠습니다..... 감사합니다....
모르시는 부분이 있으시면 코멘트에 글 올리세요.... 아는 부분 한도 내에서 최선을 다하겠습니다.....
http://www.......com/manage
/skin
/list_skin
/data
이러한 형태이죠.....그러기 위해서 config.inc.php파일을 좀 손 봤죠....
$cfg[dir_skin] = "skin";
$cfg[list_skin] = "list_skin"; <============ 요놈을 첨가 시켰습니다....
test.php스크린 샷의 최근 게시물을 뽑는 문서의 예제는 아래의 소스입니다.......##################
<?
require_once "./lib.inc.php";
require_once "./userlib.inc.php";
?>
<table width=100%><tr>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
</tr>
<tr>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
<td valign=top><? echo newlist("photo_list","album", "포토게시판", 5, 17); ?></td>
</tr>
<tr>
<td valign=top colspan=2><? echo newlist("photo_list","album", "포토게시판", 5, 25); ?></td>
</tr>
</table>
userlib.inc.php의 내용입니다....######################
<?
// 최신글 추출
function newlist($skins, $bo_table, $subject, $rows, $subjectlen='')
{
global $cfg;
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bd = sql_fetch_array($sql);
if ($subjectlen == '') $subjectlen = $bd[bo_subject_len];
$cfg[board_table_prefix] = "gb_write_"; // 게시판 테이블의 접두사
$cfg[url] = "http://www.ibokzi.com"; // 개인설정그누보드 경로에 맞게수정하세요
$skindir = "$cfg[url]/$cfg[list_skin]/$skins";
$skinimg = "$skindir/images"; // 이미지파일을 images폴더에 넣는걸 기본으로했습니다.
$filedir = "$cfg[url]/data/file"; //파일디렉토리
include "./$cfg[list_skin]/$skins/newlist_head.skin.php"; // Head 출력부분입니다. 글만 출력시는 주석처리하시면됩니다.
$table = "{$cfg[board_table_prefix]}{$bo_table}";
$result = sql_query_error(" select * from $table where wr_comment = 0 order by wr_id desc limit {$rows} ");
for ($i = 0; $row = mysql_fetch_array($result); $i++) {
$wr_subject = get_text(cut_str($row[wr_subject], $subjectlen, '…'));
$wr_content = get_text(cut_str($row[wr_content], 60, '…')); // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_memo = $row[wr_content]; // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_id = $row[wr_id]; // 게시판번호
$wr_name = $row[wr_name]; // 게시자이름 혹 최신글에 이름출력을 위해 변수선언했습니다.
$wr_datetime = $row[wr_datetime]; // 최신글에 날짜까지 출력하고싶을때를 위해 변수선언했습니다.
$wr_commentcnt = $row[wr_commentcnt];
if(0<$wr_commentcnt != ""){
$wr_commentcnt = "($wr_commentcnt)";
}else{
$wr_commentcnt = "";
}
$image = $row[wr_file1]; // 이미지를 뽑을 때 사용
if(0<$image != ""){
$image = "<img src=$filedir/$image height=35 width=35 border=1>";
}else{
$image = "<img src=$filedir/noimage.gif height=35 width=35 border=1>";
}
$icon = $row[wr_icon]; // 아이콘을 뽑을때 사용
if(0<$icon != ""){
$icon = "<img src=$skindir/icon/icon_$icon.gif height=35 width=35 border=1>";
}else{
$icon = "";
}
$mb_icon = $mb_id = ""; // 멤버 아이콘을 뽑을 때 사용
if ($row[mb_id]) {
$sql2 = " select mb_icon from gb_member where mb_id = '$row[mb_id]' ";
$row2 = sql_fetch_array($sql2);
if ($row2[mb_icon])
$mb_icon = "<img src='./$cfg[dir_member]/$row2[mb_icon]' align=absmiddle'>";
}
$ca_name = $wr_id = ""; // 분류를 뽑을 때 사용
if ($row[wr_id]) {
$sql1 = " select ca_name from {$table}_cat where ca_id = '$row[ca_id]'";
$row1 = sql_fetch_array($sql1);
if ($row1[ca_name])
$ca_name = "[$row1[ca_name]]";
}
$icon_file = "";
if ($row[wr_file1] || $row[wr_file2])
$icon_file = "<img src='$skinimg/icon_file.gif' align=absmiddle>";
$icon_link = "";
if ($row[wr_link1] || $row[wr_link2])
$icon_link = "<img src='$skinimg/icon_link.gif' align=absmiddle>";
$a_list_link = "<a href='$cfg[url]/gbview.php?bo_table=$bo_table&wr_id=$row[wr_id]' class=s_a>";
$icon_new = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bd[bo_new] * 3600))
$icon_new = "<img src='$skinimg/icon_new.gif' align=absmiddle'>";
$icon_hot = "";
if ($row[wr_hit] >= $bd[bo_hot])
$icon_hot = "<img src='$skinimg/icon_hot.gif' align=absmiddle'>";
$icon_battle = "";
if ($row[wr_commentcnt] >= $bd[bo_battle])
$icon_battle = "<img src='$skinimg/icon_battle.gif' align=absmiddle'>";
$icon_secret = "";
if ($row[wr_secret])
$icon_secret = "<img src='$skinimg/icon_secret.gif' align=absmiddle'>";
include "./$cfg[list_skin]/$skins/newlist_main.skin.php";
}
mysql_free_result($result);
}
?>
제가 실패 했던 경우를 설명합니다....###########################
최근 게시물을 나타내는 소스의 경로 문제 처음에 아래와 같이 했습니다...
http://www.......com--[manage]
--[skin]
--[list_skin]--[photo_list]
-- test.php
--[data]
-- userlib.inc.php
그런데 에러만 쥘쥘쥘 나더군요...... 그래서 아래와 같이 했습니다....
http://www.......com--[manage]
--[skin]
--[list_skin]--[photo_list]
--[data]
-- userlib.inc.php
-- test.php
그렇게 했더니 에러가 그치더군요.....
이젠 게시판 스킨과 최근 게시물 스킨이 독립할 때가 되었습니다... 왜냐하면 넘 복잡해졌거든요....
좋은 글들 그리고 스킨들 많이 기대하겠습니다..... 감사합니다....
모르시는 부분이 있으시면 코멘트에 글 올리세요.... 아는 부분 한도 내에서 최선을 다하겠습니다.....
추천
11
11
댓글 전체
감사합니다.
사실하고 싶은데 해골만 있어요 조금더 공부 한다음에 공개 할께요 아마 공개하면 욕먹을거에요 창피합니다.
초보님// 님의 홈피를 함 공개 해보세요....구경가게요....*^^*
예 저도 다 해봤는데 뽑아온글을 클릭하면 에러가 나옵니다......
박갑성님껄 적용시켰더니 최근글을 뽑아온 상태에서 글 목록이 해당 글과 연결이 안돼요.
prelist_main.skin.php파일에서 $wr_id를 $row[wr_id]로 바꾸니깐 되네요..
prelist_main.skin.php파일에서 $wr_id를 $row[wr_id]로 바꾸니깐 되네요..
저기 차근차근 갈켜주시면 감사합겠읍니다........
언제나 하느님 따라........
언제나 하느님 따라........
이곳이 랭키에서 순위3위입니다. 솔루션제공업체중에서요.대단하지요? 이정도일줄을 모르셨조? ㅋㅋ
제가 웹프로그래머로 일하고 있는데요. 제가 제작한 게시판도 꽤 쓸만하다고 생각했는데.. 그누보드를 보고
버전업을 포기했더랬습니다. 공개게시판을 개발하는 목적이야 여러가지가 있겠지만..솔루션을 만들때 필요한 것이 게시판이기는 하지만 이정도일 필요는 없는데에도 .. 관리자님에게 감사 할따름입니다...
님은 하신지 몇달 안됬다고 하시면서 잘 하시네요.노력하였기에 그러하리라 봅니다만..^^
버전업을 포기했더랬습니다. 공개게시판을 개발하는 목적이야 여러가지가 있겠지만..솔루션을 만들때 필요한 것이 게시판이기는 하지만 이정도일 필요는 없는데에도 .. 관리자님에게 감사 할따름입니다...
님은 하신지 몇달 안됬다고 하시면서 잘 하시네요.노력하였기에 그러하리라 봅니다만..^^